Hack The Box - TwoMillion 라이트업
개요
이 저장소에는 Hack The Box - TwoMillion 머신에 대한 제 라이트업이 포함되어 있습니다. 이 라이트업의 목표는 제 방법론을 기록하고, 정보 수집(Enumeration) 프로세스를 설명하며, User 및 Root 액세스에 도달하기까지의 익스플로잇 체인을 보여주는 것입니다.
면책 조항: 이 라이트업은 교육 목적으로만 제공됩니다. 모든 행위는 Hack The Box가 제공하는 합법적인 실습 환경에서 수행되었습니다.
머신 정보
| 플랫폼 | 난이도 | 운영 체제 |
|---|
| Hack The Box | 쉬움 | Linux |
다룬 기술
- 정보 수집 (Enumeration)
- 웹 애플리케이션 테스트
- JavaScript 분석
- API 정보 수집
- IDOR 취약점
- 명령 주입 (Command Injection)
- 자격 증명 발견
- 로컬 권한 상승
- CVE 익스플로잇
정보 수집
대상 머신에서 어떤 포트와 서비스가 열려 있는지 확인하기 위해 정보 수집을 시작했습니다.

HTTP 서비스가 존재하고 다른 호스트로 리다이렉트하려 한다는 것을 확인했습니다. 하지만 이 호스트명에 대한 IP가 없어서 /etc/host 파일을 수정했습니다.

링크를 열어 보니 이 페이지가 나왔고, 관심 있는 페이지로 이동하여 내용을 확인해 보았습니다.

이 웹페이지를 발견했고, Join HTB를 클릭했습니다.

그런 다음 이 페이지를 열 때 로드되는 파일들을 확인했고, 흥미로운 JS 파일을 발견했습니다.

파일의 내용은 난독화되어 있어서, 코드를 이해하기 위해 난독화를 해제하고자 했습니다.

코드를 확인해 보니 조사할 URL들이 있는 것 같습니다.

여기서 초대 키(invite key)를 생성하는 방법을 알아보기 위해 이 인코딩된 데이터를 가져와 디코딩했습니다.

로컬 CyberChef를 사용해 디코딩했고, 키를 생성하기 위한 경로를 얻었습니다.

URL 경로를 수정했고, 초대 코드(invitation code)를 얻었지만 인코딩되어 있는 것 같습니다.

base64를 시도했고 성공했습니다!! 초대 키(invitation key)를 얻었습니다.

초대 코드를 사용해 세부 정보를 입력하고 등록했습니다.

이 페이지를 확인한 뒤 유용한 정보를 찾기 시작했습니다.

VPN 파일 생성기를 발견했습니다. 권한 있는 계정에 대한 정보를 얻을 수 있다면 아주 좋을 것입니다.

이전 페이지의 링크를 따라가며 엔드포인트를 찾아보던 중, 관리자 관련 매우 흥미로운 경로들을 발견했습니다.

여기서 제 계정에 대한 관리자 인증을 얻기 위해 시도하기 시작했습니다.



마침내 ID를 얻었고, 관리자 권한을 획득한 것 같습니다. 이제 인증 상태를 확인하려고 합니다.

예상대로 관리자 액세스 권한을 얻었습니다. 이제 다음 단계로 관리자로서 VPN을 생성해 보겠습니다.

여기서 응답에서 요청된 항목을 입력하기 시작합니다.

VPN 파일을 얻었지만, 명령 주입(Command Injection)을 시도해 보는 건 어떨까요?!!

예상대로 성공했습니다!!!

.env와 같은 흥미로운 파일을 확인한 후, admin의 비밀번호를 획득했습니다.

그리고 마침내 시스템 내부에 진입했습니다.

user flag 읽기

여기서 Root 플래그를 얻기 위해 모든 시도를 하고 있습니다.



여기서 매우 중요한 취약점을 알려주는 이메일을 확인했습니다.

커널 버전을 확인한 후, 해당 커널에 영향을 미치는 공개적으로 알려진 취약점을 검색하여 CVE-2023-0386을 발견했습니다. 이는 Linux 커널의 OverlayFS 구현에 존재하는 로컬 권한 상승(LPE) 취약점입니다. OverlayFS가 Linux capabilities를 가진 파일을 처리할 때 발생하는 결함을 악용하여 로컬 공격자가 root 권한을 얻을 수 있습니다. 대상 머신이 취약한 커널을 실행 중이었기 때문에, 이 취약점은 현재 사용자에서 root로 권한을 상승시키기에 적합한 경로를 제공했습니다.

취약점을 익스플로잇하는 방법을 검색했고, 이 PoC를 발견하여 직접 만들어 보았습니다.

VM에서 저장소를 다운로드하고, scp를 사용해 TwoMillion 머신으로 복사한 다음, README 파일을 읽고 익스플로잇을 실행했습니다.




여기서 Root 액세스 권한을 얻었고 Root 플래그를 읽었습니다.

완료!!

감사합니다 <3
Abdullah Rawashdeh