Hack The Box: Layover 풀이 과정
요약
본 글은 Hack The Box의 Layover 머신을 루트 권한으로 탈취하는 과정을 상세히 기록한 내용입니다. RDP 접속 후 Wi-Fi 트래픽 분석을 통해 추가 자격 증명을 확보하고, 이를 이용해 내부 포털과 웹 애플리케이션 취약점(Craft CMS)을 거쳐 최종적으로 시스템의 root 권한을 획득하는 공격 체인을 설명합니다.
핵심 포인트
- RDP 초기 진입 후 Wi-Fi 트래픽 분석이 핵심 단서 제공
- 공격 체인은 정보 수집 → 자격 증명 확보 → 취약점 악용 순으로 진행됨
- Craft CMS의 RCE와 CUPS LPE 등 다양한 취약점을 활용함
작성자: Badathala Jaisurya
최근 Hack The Box의 Layover 머신을 루트 권한으로 탈취했습니다. 이 머신은 각 단계가 이전 단계에서 발견된 정보에 의존하는 매우 흥미로운 공격 체인을 가지고 있었습니다.
전체 경로는 다음과 같았습니다:

RDP → Wi-Fi 트래픽 분석 → 자격 증명 발견 → 내부 포털 → Craft CMS → RCE → SSH → CUPS LPE → Root
본 글은 초기 정보 수집부터 루트 권한 획득까지 제가 따라간 경로를 문서화합니다.
HTB 달성:
[https://labs.hackthebox.com/achievement/machine/1830127/984]
초기 정보 수집 (Initial Enumeration)
저는 대상에 대해 기본적인 Nmap 스캔으로 시작했습니다.
nmap -sC -sV -p- <TARGET_IP>
노출된 중요한 서비스는 다음과 같았습니다:
22/tcp SSH
3389/tcp RDP
SSH 서비스는 OpenSSH가 실행 중이었고, 포트 3389는 원격 데스크톱(Remote Desktop)을 노출하고 있었습니다.
RDP를 사용할 수 있었고 유효한 자격 증명이 있었기 때문에, 이를 초기 진입점으로 사용했습니다.
RDP 접속 (RDP Access)
사용 가능한 RDP 자격 증명을 이용해 머신에 연결했습니다:
Username: contractor
Password: Contractor2026!
로그인한 후, 저는 Windows 점프 호스트(jump host)에 접속하게 되었습니다.
호스트 이름은 다음과 같았습니다:
airside-ws01
이 시점에서 흥미로운 부분은 시스템이 공격 머신에서 직접 도달할 수 없는 내부 무선 네트워크에 접근할 수 있었다는 점입니다.
내부 네트워크 및 Wi-Fi (Internal Network & Wi-Fi)
사용 가능한 네트워크 인터페이스를 확인했습니다.
무선 인터페이스 중 하나는 다음 네트워크에 연결되어 있었습니다:
HTB International WiFi
이 인터페이스는 내부 주소를 가지고 있었습니다:
10.13.37.182/24
이는 또 다른 가능한 공격 경로를 열어주었습니다.
즉시 서비스를 악용하려고 하기보다는, 저는 침해된 환경에서 사용 가능한 무선 트래픽을 살펴보기 시작했습니다.
Wi-Fi 트래픽 분석
무선 트래픽을 분석함으로써, 저는 또 다른 사용자 계정 정보 세트를 복구할 수 있었습니다.
복구된 자격 증명은 다음과 같습니다:
Username: jenny
Password: Fl1ghtDeck2026!
이 자격 증명들은 내부 웹 애플리케이션에 유용하게 사용되었습니다.
이는 중간 시스템에 접근한 후 트래픽 분석이 얼마나 가치 있을 수 있는지 보여주는 좋은 예시였습니다. 초기 RDP(원격 데스크톱 프로토콜) 접근은 최종 목표가 아니었으며, 제가 내부 환경을 발견할 수 있는 위치를 제공했을 뿐입니다.
내부 포털
저는 다음 주소에서 내부 포털을 발견했습니다:
복구된 Jenny 자격 증명을 사용하여 로그인했습니다.
대시보드는 다음과 같은 정보를 포함하는 Jenny Crawford의 정보였습니다:
Member ID: HA-4471880
Membership: Gold Member
Miles: 48,250
...
애플리케이션을 열거(enumerate)하던 중, 저는 또 다른 흥미로운 엔드포인트를 발견했습니다:
/admin
이것은 다음 주소로 리디렉션되었습니다:
/admin/login
해당 애플리케이션은 Craft CMS로 실행되고 있었습니다.
Craft CMS 열거(Enumeration)
CMS는 다음과 같이 자신을 식별했습니다:
Craft CMS
버전은 다음과 같았습니다:
5.9.8
이 시점에서 저는 해당 버전과 그 공격 표면(attack surface)에 대해 조사했습니다.
중요한 점은 제가 이미 CMS에 인증된 접근 권한을 가지고 있었다는 것이었고, 이는 인증된 취약점(authenticated vulnerabilities)을 특히 중요하게 만들었습니다.
적용 가능한 Craft CMS 공격 경로를 거친 후, 저는 원격 코드 실행(remote code execution, RCE)을 달성할 수 있었습니다.
Craft CMS RCE
성공적인 악용은 근본적인 서버에서 명령어 실행 권한을 저에게 주었습니다.
결과적으로 생성된 셸은 다음과 같은 사용자로 실행되고 있었습니다:
www-data
이제 저는 Linux 서버에서 코드 실행 권한을 갖게 되었습니다.
여기서 공격은 웹 애플리케이션 악용에서 로컬 열거 및 자격 증명 발견으로 전환되었습니다.
SSH 접근
손상된 시스템과 그 파일을 열거하는 동안, 저는 내부 서버에 대해 SSH(Secure Shell)를 통해 접근할 수 있는 자격 증명을 복구했습니다.
내부 서버는 다음과 같았습니다:
10.13.37.10
저는 다음 명령어를 사용하여 연결했습니다:
이로써 저는 aporter 사용자로서 적절한 SSH 세션을 얻었습니다.
사용자 플래그는 해당 사용자의 홈 디렉토리에서 획득했습니다.
로컬 열거 (Local Enumeration)
SSH 접근을 확보한 후, 가능한 권한 상승(privilege-escalation) 경로를 찾기 위해 시스템을 열거하기 시작했습니다.
흥미로운 로컬 서비스 중 하나는 CUPS였습니다.
서비스 상태를 확인해 보았습니다:
systemctl status cups
이 서비스는 다음으로 실행되고 있었습니다:
/usr/sbin/cupsd -f
또한 사용자 정의 systemd 서비스 구성 파일도 존재했습니다:
/etc/systemd/system/cups.service
이 서비스에는 다음 내용이 포함되어 있었습니다:
Environment=LD_LIBRARY_PATH=/usr/lib64
CUPS는 또한 로컬에서 다음 주소로 수신 대기하고 있었습니다:
127.0.0.1:631
CUPS 버전 식별 (Identifying the CUPS Version)
설치된 CUPS 버전을 확인했습니다:
cups-config --version
결과는 다음과 같았습니다:
2.4.16
설치된 버전은 로컬 권한 상승 취약점에 노출되어 있었습니다.
관련 취약점은 다음과 같습니다:
CVE-2026-34990
이것은 제가 조사할 명확한 권한 상승 경로를 제공했습니다.
CUPS 권한 상승 (CUPS Privilege Escalation)
적용 가능한 개념 증명(proof-of-concept) 코드를 준비하여 대상 시스템으로 전송했습니다.
익스플로잇은 처음에 Python 스크립트에 필요한 임포트가 누락되어 오류를 반환했습니다:
NameError: name 'os' is not defined
필요한 임포트를 추가하여 스크립트를 수정했습니다:
sed -i '2i import os' /tmp/exploit.py
그런 다음 실행했습니다:
python3 /tmp/exploit.py
익스플로잇은 성공적으로 제 권한을 상승시켰습니다.
저는 root 셸을 얻었습니다.
Root
이 시점에서, 시스템은 완전히 장악되었습니다.
최종 권한 상승 경로는 다음과 같았습니다:
aporter
↓
CUPS 2.4.16
...
전체 공격 체인 (Complete Attack Chain)
Layover를 통해 제가 따랐던 전체 경로는 다음과 같습니다:
Internet
│
▼
...
발견된 자격 증명 (Credentials Discovered)
이 시스템을 진행하는 동안, 저는 다음 자격 증명들을 발견했습니다:
| Username | Password | Purpose |
|---|---|---|
contractor | Contractor2026! | RDP 접근 |
| ... |
주요 시사점 (Key Takeaways)
Layover를 통해 얻은 가장 큰 시사점은 적절한 정보 수집(enumeration)과 환경에 대한 이해가 중요했다는 것입니다.
초기 RDP 접근만으로는 충분하지 않았습니다. 이는 내부 네트워크를 볼 수 있는 시스템에 대한 접근 권한을 제공했을 뿐입니다.
이후 Wi-Fi 트래픽 분석을 통해 자격 증명(credentials)이 노출되었고, 이것이 내부 포털로 이어졌습니다.
포털은 Craft CMS로 연결되었으며, 이곳에서 원격 코드 실행(RCE) 경로를 얻었습니다.
마지막으로 SSH 접근 권한을 확보한 후, 로컬 정보 수집 과정에서 취약한 CUPS 설치가 발견되었고, 이것이 root로 가는 경로를 제공했습니다.
결국 이 머신은 단 하나의 명백한 취약점이라기보다는 여러 작은 발견들이 연결된 사슬(chain)과 같았습니다.
최종 결과
머신: Layover
플랫폼: Hack The Box
난이도: [HTB 난이도를 여기에 추가하세요]
상태: Rooted
HTB 성취:
https://labs.hackthebox.com/achievement/machine/1830127/984
GitHub:
https://github.com/jaisurya93945
작성자:
Badathala Jaisurya
마무리하며
또 하나의 머신을 root 했고, 또 하나의 공격 체인을 이해했습니다.
Layover는 네트워크 정보 수집, 무선 트래픽 분석, 웹 애플리케이션 보안, 인증된 RCE, 리눅스 정보 수집, 권한 상승(privilege escalation)에 걸친 좋은 실습 기회였습니다.
저는 프로젝트를 구축하고 실질적인 기술을 향상시키면서 사이버 보안, 침투 테스트(penetration testing), 공격 보안(offensive security), AI 보안 분야의 실습 시간을 늘려가고 있습니다.
만약 여러분도 HTB나 CTF로 공부하고 계신다면, 현재 어떤 것을 하고 있는지 자유롭게 공유해주세요.
#사이버보안 #HackTheBox #침투테스트 #윤리해킹 #공격보안 #리눅스 #정보보안 #CTF
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기