본문 바로가기
STUDY/HTB(Hack The Box)

[HTB] Builder

by CH@3M 2024. 3. 30.

port 스캔 수행

8080포트에 Jenkins 웹서비스가 올라가 있음

사이트를 여기저기 훑어보고... jenkins 2.441 버전의 CVE가 존재하는 지 검색해 보다가, CVE-2024-23897 취약점을 발견하여 exploit 하였다.

python CVE-2024-23897.py -u http://10.129.26.132:8080 -f /proc/self/environ

/etc/passwd 파일이 일부 출력되어 나오는 것을 확인. 근데 더이상 어떤 파일을 봐야하는지, 어떻게 풀어나가야하는지 모르겠다. 그래서 가이드 확인. Task 4의 질문에서 막혔는데 해당CVE의 설명을 읽어보니 풀 수 있었다.

According to Jenkins Security Advisory 2024-01-24 : Jenkins uses the args4j library to parse command arguments and options on the Jenkins controller when processing CLI commands. This command parser has a feature that replaces an @ character followed by a file path in an argument with the file’s contents (expandAtFiles). This feature is enabled by default and Jenkins 2.441 and earlier, LTS 2.426.2 and earlier does not disable it. This allows attackers to read arbitrary files on the Jenkins controller file system using the default character encoding of the Jenkins controller process.

기존 사용했던 PoC코드가 자꾸 exploit 됐다 안됐다 말썽이었다. 그리고 다른 PoC코드에서는 전체 결과가 다 나온다고 하여, 다른 PoC 코드를 이용하였다.
> https://github.com/godylockz/CVE-2024-23897

훨씬 좋네~~~ 홈디렉토리를 알아내기 위해 /proc/self/environ 파일을 조회하였다.

홈디렉터리 내에 있는 플래그 파일을 조회하니 출력되는 것을 확인 할 수 있었다.

이제 root 권한을 회득해야 한다. exploit git에서 다음과 같은 경로의 예시를 적어놨길래 실행해 보았다.

왜 안되는지 헤매다가 디렉토리 경로를 잘못 준 것을 알았다. 

맨 아래보면, 패스워드 해시값이 있다. bcrypt로 되어 있어 -m 3200 옵션을 사용해서 해시를 크랙해보자

hashcat -m 3200 hash.txt /usr/share/wordlists/rockyou.txt

발견한 패스워드로 웹에 로그인해본다. 메뉴를 이것저것 다 사용해보다가, credentials 에 root계정에 대한 것이 있아서 해당 기능과 관련이 있을것 같았다.

가이드를 보니 html을 보며 해결할 수 있는 방법이 있다해서 찾아보니 다음과 같은 정보를 획득할 수 있었다.

 서비스를 볼때 뭔가 사용해야할 것 같았던 스크립트 콘솔을 이용해서 디크립트 했다.

디크립트하니 키가 나오고, 이걸 이용해서 ssh로그인을 하니 로그인이 가능했다!
root 획득!

반응형

'STUDY > HTB(Hack The Box)' 카테고리의 다른 글

[HTB] StreamIO (Windows, Medium)  (0) 2024.04.29
[HTB] Hospital  (0) 2024.04.11
[HTB] Forest (Windows) - 보류 중...  (0) 2024.03.07
[HTB] Wifinetic - Guided Mode  (0) 2024.02.18
[HTB] TwoMillion - Guided Mode  (0) 2024.02.17