이번엔 2번째 Hack the box.. 난이도는 역시 Easy 이다.
Medium 이상으로 누르기가 겁나는 듯
이걸 풀면 다음으로 Medium도 한번 도전해보고 싶다.
포트 스캐닝
포트 스캐닝을 때려보니 22, 80 번이 오픈되어있었다.
ssh는 metasploit의 enumuser로 brute force를 해보았으나
아무 반응이 없어서 firefox를 통해 ip를 호출하니 sea 페이지가 나왔다.
participate 페이지가 있는데 여기에 contact를 누르면 sea.htb라는 도메인의 contact.php로 연결이 되지만
에러만 뜨는 이상한 페이지였다..
10.10.11.28을 프록시 태워서
burp suite으로 보니 서버 버전 정보 apache 2.4.41이 노출되고 있었다.
apache 2.4.41 버전의 CVE나 취약점을 검색했으나 유효한 게 없었다.
HOW TO PARTICIPATE를 클릭하면 contact라는 글자가 보인다. 요런 문제에선 이런거 무조건 클릭해줘야할듯
클릭하면 sea.htb 라는 도메인의 contact.php로 연결이 된다. 근데 에러가 난다 뭐지?
이 웹사이트는 sea.htb라는 도메인인데 현재 아이피로만 접근이 가능하고 저 contact 버튼은 코딩에 문제가 있었던 것 같다.
그래서 ip를 통해 contact.php를 호출하자 페이지가 떴다.
디렉토리 브루트포싱 (gobuster, ffuf)
근데 사실 뭘 알아야하는질 모르겠다. 페이지를 3개밖에 안봤는데 이걸 위해 80번 포트를 열었을 리가 없다.
그래서 gobuster로 처음에 디렉토리 브루트포싱을 해보았다.
사전파일은 칼리리눅스의 경우 /usr/share/wordlists 안에 대부분 담겨있다.
gobuster는 여기 링크에 정리해놓았다.
https://seahippocampus.tistory.com/240
gobuster dir -u "target ip" -w /usr/share/wordlists/dirbuster/사전 파일
디렉토리 브루트포싱결과 themes와 data, plugins, messages가 추가로 발견됐다.
themes 디렉토리에서 gobuster를 한번 더 돌리니 bike 디렉토리가 나왔다.
어라? bike 디렉토리에서 gobuster를 돌리니 파일들이 몇 개 보인다.
version은 3.2.0 인 것 같다.
summary는 잘 모르겠다...
뭔가 파일에 대한 탐색이 부족한 것 같아 github에서 seclists 관련 파일 이름 텍스트 파일을 다운받았다. 이름하야 quickhits.txt 이다.
이걸 gobuster로 돌려주니 여전히 결과는 나오지 않았다.
!!! 그러나 gobuster 말고 ffuf 라는 툴을 돌리니 README.md가 읽혀졌다. 여러가지 툴을 혼용할 줄 알아야할 듯..
그렇게 README.md를 읽어보니 wondercms라는 걸 사용하고 있나보다. 아까 version에서 확인된 3.2.0을 이용해 CVE를 검색해보자.
뭔가 쓸만한 하나가 있는 것 같다.
github에서 CVE-2023-41425 exploit.py 코드를 받아준다.
리버스 쉘 획득
python3 -c "import pty;pty.spawn('/bin/bash')";
USER FLAG 획득
자 이제 flag를 어디서 찾아야할지 모르겠으니 find 명령어를 사용해보자.
아래 명령을 사용하면 파일 이름 내 database가 들어가는 모든 파일을 찾아준다. 하위 디렉토리 포함
find . -name "*database*"
오오 검색결과 중 의미있을 법한 하나가 나왔다.
cat으로 읽어주니 password를 획득할 수 있었다. 형식을 보니 bcrypt로 해시된 값인 것 같으니 hashcat을 돌려주자. 물론 이스케이프 슬래시를 제거해줘야 한다. 근데 hashcat을 돌리려면 메모리가 필요해서 메모리도 늘려줌...
먼저 위에 획득한 해시값에 \ 를 제거하고 hash.txt로 저장해준다.
-m 옵션으로 3200을 넣고 rockyou.txt를 guess base로 사용해서 hash를 크랙해준다.
조금 기다리면 3060번째에서 해시가 크랙되었다!
이게 누구의 계정일까 하고 리버스 쉘을 통해 home 디렉토리로 가보니 amay와 geo가 있다.
그런데 geo는 Permission denied가 뜬다.
반면 amay디렉토리는 접근이 가능했으며 root.txt와 user.txt가 존재한다. amay 계정으로 로그인하면 될 것 같다.
su amay를 통해 로그인이 가능했다!
cat을 통해 user.txt값을 읽어 flag를 획득했다
획득한 flag를 입력해주면 user flag는 끝!
Root flag 획득
리버스 쉘을 끊고 ssh로도 접속해보니 로그인이 되었다!
대박
근데 이건 아니었고 netstat -nap로 한번 확인해보자
8080 포트에 뭔가 돌아가고 있다.
이것도 Forum과 writeup을 뒤져서 알아낸 건데, 이 명령어를 통하면 내 웹브라우저를 통해 저 localhost 웹에 연결할 수 있다고 한다.
ssh -L "내 포트":localhost:8080 amay@10.10.11.28
tmux 다른 세션으로 9001 포트를 nc로 열어두면 이렇게 반응이 온다.
그러고 9001 포트로 localhost를 입력하면..! 로그인 창이 뜬다.
Sign in 을 누르면..!
대박
access.log 를 analyze 했더니 주루룩 뜬다. 이걸 통해 root.txt를 읽을 수 있을 것 같다.
그래서 이 파라미터를 변조하기 위해 burpsuite을 켰는데 firefox 브라우저로는 아무리해도 localhost 패킷이 안잡히는 것이었다.
심지어는 about:config에 들어가서 network.proxy.allow 어쩌구를 true로 변경하라는 외국인 유튜브 형님 말도 따랐지만 응답이 오지 않았음.
어쩔 수 없이 최후의 수단 Open browser를 사용했더니..!
크흡 ㅠㅠㅠ드디어 잡혔다
그런데 이 문제는 마지막까지 방심해선 안 된다. Repeater로 보내서 /root/root.txt를 읽으려 했지만 조회되지 않음.
이런 식으로 명령을 추가로 입력해줘야 작동한다.
어찌저찌 해결..!
'워게임,CTF > Hack the box' 카테고리의 다른 글
[Hack the box] #6 UnderPass (0) | 2024.12.25 |
---|---|
[Hack the box] #5 EvilCUPS (0) | 2024.11.30 |
[Hack the box] #4 Cap (0) | 2024.11.27 |
[Hack the box] #3 Cicada (0) | 2024.11.25 |
[Hack the box] #1 Chemistry (0) | 2024.11.07 |