#

Tomghost 본문

3.1 THM/Linux

Tomghost

0x470x45 2026. 6. 11. 15:19
 
TryHackMe · Writeup
PLATFORM TryHackMeOS LinuxDIFFICULTY Easy
AJP Ghostcat → web.xml 자격증명 → SSH(skyfuck) → GPG 크랙 → merlin → sudo zip → root
스캔: 22/ssh · 53/dns · 8009/ajp13 · 8080/tomcat  |  도구: nmap · ghostcat · gpg2john · john · gpg · zip
개요  Tomcat의 AJP(8009) 커넥터가 외부에 노출돼, Ghostcat(CVE-2020-1938)으로 보호된 WEB-INF/web.xml을 읽어 평문 계정(skyfuck)을 얻는다. SSH 접속 뒤 홈의 PGP 개인키 패스프레이즈를 John으로 크랙해 credential.pgp를 복호화, merlin으로 전환한다. 끝으로 merlin이 비밀번호 없이 쓰는 sudo zip의 -TT 옵션(GTFOBins)으로 root 셸을 획득한다.
 

 

이 글은 THM의 Thompson 방 기반으로 작성 하였습니다

1. Compromise this machine and obtain user.txt
2. Escalate privileges and obtain root.txt

 

포트 스캔 결과 SSH(22), DNS(53), AJP13(8009), HTTP(8080) 가 활성화되어 있는 것을 확인.
이 중 8009번 AJP 포트가 열려 있는 것을 보고 Tomcat의 Ghostcat(CVE-2020-1938) 취약점 의심

 

AJP 커넥터를 통해 WEB-INF/web.xml 파일이 그대로 읽히는 것을 확인
<description> 부분에서 자격증명 노출

skyfuck / 8730281lkjlkjdqlksalk

 

획득한 계정으로 SSH 접근 시도 시 정상적으로 로그인 가능한 것을 확인

 

/home/merlin 디렉터리의 user.txt 플래그 값 확인 및 출력

 

skyfuck 홈에서 PGP 개인키(tryhackme.asc) 와 암호화된 파일(credential.pgp) 이 노출되어 있는 것을 확인.

 

scp 명령어를 통해 asc, pgp 파일 가져오기

 

gpg2john으로 tryhackme.asc에서 해시를 추출한 뒤 john에 rockyou 사전을 통해 진행한  결과

패스워드가 alexandru 가 나오는 것을 확인

 

개인키를 임포트해 credential.pgp를 복호화하니 merlin 계정 자격증명이 노출되는 것을 확인

 

merlin 계정으로 ssh 접근 시도 후, sudo -l 명령어 시

(root) NOPASSWD: /usr/bin/zip 권한을 가지고 있어 zip을 root 권한으로 비밀번호 없이 실행할 수 있는 것을 확인

(권한 상승)

 

zip을 root로 실행할 수 있으므로 GTFOBins에서 zip의 권한 상승 기법 확인

 

앞서 확인한 명령어 사용 시 root 셸로 접근이 가능한 것을 확인

/root 디렉터리내 root.txt 플래그 값 확인 및 출력

 

공격 체인 상세

  1. 정찰 — nmap 전수 스캔에서 8009/ajp13와 8080/tomcat 확인. AJP(8009)가 외부로 열려 있는 것이 Ghostcat의 핵심 전제다.
  2. Ghostcat (CVE-2020-1938) — AJP가 요청 속성을 검증 없이 신뢰하는 결함을 악용해 WEB-INF/web.xml을 읽자, 에 skyfuck:8730281lkjlkjdqlksalk가 평문 노출 → SSH 로그인으로 user.txt.
  3. GPG 패스프레이즈 크랙 — 홈의 tryhackme.asc(개인키)와 credential.pgp 발견 → gpg2john + rockyou로 패스프레이즈 alexandru 복구 → 키 임포트·복호화로 merlin 자격증명 확보.
  4. sudo zip → root (GTFOBins) — sudo -l이 (root) NOPASSWD: /usr/bin/zip. 압축 테스트 옵션 -T -TT 'sh #'로 root 셸 → root.txt.

대응 방안

  • Tomcat 패치 & AJP 차단 — CVE-2020-1938 수정판 적용, 미사용 AJP 커넥터는 server.xml에서 제거하거나 secretRequired="true"로 보호하고 8009 외부 비노출.
  • 설정 파일에 비밀정보 금지 — web.xml 등 배포물에 계정·비밀번호 하드코딩 금지.
  • 키 관리 — 개인키에 긴 패스프레이즈, 서버 공용 경로에 개인키 방치 금지.
  • sudo 최소 권한 — zip·tar·find·vi 등 쉘 탈출 가능한 바이너리에 NOPASSWD 지양.

'3.1 THM > Linux' 카테고리의 다른 글

Lazy admin  (0) 2026.06.11
RootMe  (0) 2026.05.15
Thompson  (0) 2026.04.03
Overpass  (0) 2025.12.23
Anonymous  (0) 2025.12.23