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

[HTB] TwoMillion - Guided Mode

by CH@3M 2024. 2. 17.

오늘 풀이할 문제는 TwoMillion이라는 문제이다.

진단 대상의 IP에 모든 포트에 대해 nmap 스캔을 해보니, 22, 80 포트가 오픈되어 있다.

 
웹에 접속하면, HTB와 비슷한 컨셉의 사이트가 나온다.

시도) join메뉴에 가면 invide code를 입력하라고 나온다. 코드를 보니 invite code를 클라이언트단에서 확인하고 있으므로, 그냥 제거하여 invide code 입력을 우회할 수 있었다. 

강제로 register로 넘겨서 Local Storage에 inviteCode가 생성된 것도 확인했으나, 여기서 더이상 넘어갈 방법을 찾지 못해서 막막했다. 뒤에서 inviteCode를 다시 검증해서... 아무래도 특정 inviteCode를 찾아내야하는게 맞는 것 같았으나 방법을 못찾겠다...

결국, 가이드 모드의 도움을 받기로 했다. 가이드 모드 질문을 보면 다음과 같다.

Task2의 질문에 대한 답을 찾다보니, http://2million.htb/js/inviteapi.min.js 코드에서 makeInviteCode() 함수를 이용해 코드를 생성하고 있다.

콘솔에서 해당 함수를 실행시켜 보면, ROT13으로 암호화 되어 있는 데이타가 나온다.
ROT13 디코더를 찾아서 돌리면, 다음과 같이 나온다.

invite code를 생성하기 위해서 POST 메소드로 요청을 보내면 다음과 같이 코드가 오는 것을 볼 수 있다.

해당코드로 계정을 등록하고 로그인하면, 드디어 로그인이 가능하다.

이제 로그인 완료! 쉽지않네..

다시 가이드 모드를...

Lab > Access 에 가면 "Connection Pack" 이라는 것이 존재한다. 거기서 ovpn 파일을 받을 수 있는데, 링크를 보면 /api/v1/user/vpn/generate 이다.

/api/v1 까지만 호출하여 API를 조회해보니, 다음과 같은 API 목록이 조회된다.

/admin/setting/update API를 보면, content type이 유효하지 않다고 나온다.

content-type을 넣어주면 email 파라미터가 없다고 나오고, 이런식으로 에러에 맞춰서 형식을 넣어준다

하다보면 이런식으로 패킷이 완성된다.

admin으로 업데이트 된것으로 보이고, 다른 admin API들을 호출해 보면 응답 값들이 바뀐것을 알 수 있다.

/admin/vpn/generate 도 에러에 맞춰 넣어주면 키가 응답으로 온다. 

가이드를 보면, command Injection이 가능한 경로가 어디냐고 물어보는데 그것이 바로 여기이다. username에 구분자(;)를 통해 원하는 입력 명령어를 넣을 수 있다. (여기서 아예 Command Injection으로 리버스 쉘로 붙어서 진행도 가능!)

이어서 가이드를 보고 마져 해보기로 한다.

PHP에서 환경 변수를 저장하는 파일인 .env 찾기

.env에서 계정 정보를 습득할 수 있다.

해당 계정정보 접속을 하면 admin 계정으로 로그인된다. 로그인하면 바로 user.txt를 찾을 수 있다.

admin@2million:~$ sudo su
[sudo] password for admin: 
admin is not in the sudoers file.  This incident will be reported.
admin@2million:~$ sudo -l
[sudo] password for admin: 
Sorry, user admin may not run sudo on localhost.

sudo가 안되어서,, 결국 다시 가이드를 보았다. mail 을 확인하라고 한다. (ssh 접속 시 You have mail. 하면서 메일을 확인하라는 말이 나온다.)

메일에 따르면 OverlayFS vulnerability 존재. 해당 취약점으로 검색해 본 결과 CVE-2023-0386 발견. exploit 시도. 

 

GitHub - sxlmnwb/CVE-2023-0386: Vulnerabilities Exploitation On Ubuntu 22.04

Vulnerabilities Exploitation On Ubuntu 22.04. Contribute to sxlmnwb/CVE-2023-0386 development by creating an account on GitHub.

github.com

* CVE-2023-0386 : OverlayFS에서 발생하는 취약점.  사용자가 nosuid 마운트에서 다른 마운트로 사용 가능한 파일을 복사할 때 발생하며, 이로 인해 uid 매핑에 문제가 발생합니다. 로컬 사용자가 이 취약점을 악용하여 시스템에 대한 권한을 에스컬레이션할 수 있습니다.

* OverlayFS  : https://blog.naver.com/alice_k106/221530340759

SCP로 파일 전송하여 실행

scp CVE-2023-0386.zip  admin@2million.htb:/tmp/

PoC를 실행하면 root 계정 획득하여 끝~
어렵다 어려워~ 갈 길이 멀구먼~ 그래두 아직 재밌다~~~
 
가이드모드에 추가로 있는 미션) CVE-2023-4911 를 이용해서도 root 권한을 획득할 수 있다고 한다. 

* CVE-2023-4911( Looney Tunables 취약점) : 리눅스 기반 시스템에 필수적인 핵심 라이브러리로, 열기, 읽기, 쓰기 등과 같은 기본 기능을 제공하는 glibc의 ld.so 동적 로더에 존재. GLIBC_TUNABLES 환경 변수 처리 과정에서 발생하는 취약점

가이드에서 참조해 놓은 poc 를 이용하여도 다음과 같이 root권한 획득이 가능한 것을 확인하였다.

반응형

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

[HTB] Forest (Windows) - 보류 중...  (0) 2024.03.07
[HTB] Wifinetic - Guided Mode  (0) 2024.02.18
[HTB] Keeper  (0) 2024.02.04
[HTB] Devvortex  (0) 2024.01.24
[HTB] CozyHosting  (0) 2024.01.23