Hack_ing

[HTB]Hack The Box - Love :: Write up

Ate1es 2021. 9. 1. 23:47

Hack the box 라는 재밌는 워게임 사이트를 발견해서, 몇개를 풀어보려고 합니다.

 

해당 사이트는 가상 머신에 접속해 ip만 주어지고 실제 침투처럼 정보수집부터 취약점 탐색 익스플로잇까지 스스로 이루어낸 다음, 쉘과 루트 권한까지 취득하여 플래그를 가져오는 형식입니다.

 

모의해킹을 하는 사람들에게 굉장히 재밌을 것 같습니다.

 

사이트 주소 : https://www.hackthebox.eu/

 

Hacking Training For The Best

From beginners to experts, this is where hackers level up! Join today and learn how to hack.

www.hackthebox.eu

 

오늘은 그중에 love 라는 easy 난이도의 box를 풀어보겠습니당.

 

가상 IP는 10.10.10.239이며, SSRF, 윈도우 CVE, Applocker bypass 등의 취약점이 있는 것 같네요. 한번 볼까요 ?!

 

먼저 nmap을 돌려 스캐닝을 진행했습니다.

 

명령어 : nmap -sS -sV -Pn --script=vuln -oN nmap_scan.txt -vv 10.10.10.239

 

만들어진 스캐닝 결과인 nmap_scan.txt 를 열어보면~

 

80/tcp, 443/tcp port 즉, 웹서버가 열려있고 /admin 페이지까지 존재하는 것 일단 캐치해두고

우선 해당 웹사이트로 접속해보겠습니다

로그인 페이지가 뜨는군요, 관리자의 아이디와 비밀번호를 알아내야 될 것 같습니다.

(sql injection이 터질줄 알았지만, 아니였던거 같습니다. 라업이기때문에 삽질은 생략하고~)

 

443 port가 열려있어서, 접속해보니 이런 인증서를 띄우더군요. 잘 보면 staging.love.htb라는 서브도메인으로 보이는 도메인 네임이 보입니다.

해당 서브도메인을 찾아갈 수 있게, hosts 파일에 해당 머신 ip로 매핑해주었습니다.

이제 브라우저에 http://staging.love.htb 를 치면? -> 10.10.10.239 에 있는 서브도메인을 접속할 것입니다.

 

접속해보면, file scanner라는 페이지가 나옵니다.

Demo 페이지로 가보면, url을 입력받는 칸이 있고, 해당 url 에 있는 파일을 스캔하는 동작을 하는 것 같습니다.

ssrf가 여기서 터질 것 같은 느낌이 쎄게 들어서, http://localhost:5000를 입력해보겠습니다.

 

(nmap 스캐닝 때 5000포트가 열려있었는데, 브라우저로 접속시 forbidden 떴었음)

 

Admin 계정의 비밀번호가 적혀있는 서비스 였군요. 내부에서만 접근가능하게 해놨지만, ssrf 취약점이 터지면서 외부에서 접근이 가능해졌기때문에 공격자에게 노출되었습니다. 

 

이제 처음 봤던 admin 로그인을 하면?

 

관리자 페이지가 등장하고, 여기엔 파일 업로드 기능이 있습니다! (여길 이용해야 될 것 같은 느낌이죠?)

웹쉘을 올려보겠습니다.

 

아래처럼 photo 부분에 원래는 사진파일이 들어가야하지만, 악의적인 실행을 하는 웹쉘 파일을 첨부해주었고 딱히 업로드에 필터링이 걸려있지는 않는 것 같습니다.

아차 웹쉘을 실행시키려면 해당 파일이 어느 위치로 올라가는지 경로를 알아내야 하는데요, 경로는 dirsearch 라는 파이썬 툴을 이용하겠습니다.

 

사이트 주소 : https://github.com/maurosoria/dirsearch

 

GitHub - maurosoria/dirsearch: Web path scanner

Web path scanner. Contribute to maurosoria/dirsearch development by creating an account on GitHub.

github.com

 

명령어 : python3 dirsearch.py -u http://공격주소/ -e php 

 

옵션 -e는 php 파일만 보겠다는 의미입니다.

찾은 디렉터리중 중간에 images 라는 디렉터리가 있군요! 가능성이 높겠습니다.

그럼 이제 http://10.10.10.239/images/webshell.php 를 요청하면. 아래와 같이 웹쉘이 실행되어, user 권한의 쉘이 따졌습니다!

저 웹쉘은 디렉터리 이동이 안되는거라, 중간에 b374k 웹쉘로 바꿔서 진행했습니다 ㅎㅎ

 

해당 유저의 바탕화면에 user.txt안에 flag가 있군요. 이걸로 user 권한은 성공! 

 

이제 root 권한으로 privilege escalation을 해야합니다!

 

여러가지 테스트를 해보던 중,

 

C:\ > reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

 

AlwaysInstallElevated 라는 레지스트리가 활성화 되있는것을 발견했습니다.

 

해당 레지스트리가 활성화 되어있으므로, 우리는 .msi (msi 패키지 파일)을 관리자 권한이 아니더라도 

설치를 할 수 있습니다.

메타스플로잇으로 리버스 쉘을 열어주는 악성 msi 패키지를 만들고, 웹쉘을 이용해 해당 서버에 업로드 했습니다.

 

 

 

C:\ > msiexec /quiet /qn /i ate1es.msi

악성 msi를 실행시켜줍니다.

4444 포트로 대기하던 중 msi 파일이 실행되자 리버스 쉘이 열렸고, system 권한을 얻을 수 있었습니다.

난이도가 easy 임에도 불구하고, 제 부족한 실력으로인해 좀 오래걸렸습니다..ㅠㅠㅠ빡공하자 나자신