
TryHackMe DFIR 챌린지에 대한 네트워크 포렌식 분석 글 + 도구: PCAP 트래픽에서 hex→Base64→XOR 방식의 외부 유출(exfiltration) 체인을 역분석한 다음, CVE-2023-32784를 통해 프로세스 메모리 덤프에서 KeePass 마스터 비밀번호를 복구합니다.
실제 DFIR CTF 시나리오(TryHackMe)에서 사용된 hex → Base64 → XOR 난독화 체인을 역산하여 PCAP 트래픽에서 유출된 데이터를 복구한 다음, CVE-2023-32784를 악용해 프로세스 메모리 덤프에서 KeePass 마스터 비밀번호를 곧바로 복구합니다.
Victim workstation Attacker C2 Server
------------------- -------------------
Malicious .ps1 downloaded over HTTP
|
v
Downloads ProcDump (legit Sysinternals tool)
|
v
Dumps KeePass process memory ----------------------> port 1337
(XOR 0x41 + Base64 encoded first)
Steals Database1337.kdbx --------------------------> port 1338
(XOR 0x42 + Base64 encoded first)
| 경로 | 설명 |
|---|---|
docs/writeup.md | 단계별 전체 조사 기록 |
decoder.py | hex → Base64 → XOR 체인을 역산하는 범용 도구 |
evidence/xxxmmdcclxxxiv.ps1 | 복구된 악성 PowerShell 스크립트 |
# 1. tshark로 pcap에서 원시 유출 스트림 추출
tshark -r capture.pcapng -T fields -e data \
-Y "ip.dst == <C2_IP> and tcp.port == <PORT>" > payload.txt
# 2. 난독화 역산
python3 decoder.py payload.txt recovered_file.bin --xor-key 0x41
tshark를 이용한 빠르고 스크립팅 가능한 PCAP 추출(GUI 도구는 수백 MB를 넘어서면 확장성이 좋지 않음)이 조사는 TryHackMe 룸 Extracted을 기반으로 합니다. 비밀번호 복구 기법은 vdohney의 원본 CVE-2023-32784 연구를 기반으로 한 JorianWoltjer의 keepass-dump-extractor 덕분에 가능했습니다.
이 저장소는 교육 목적의 CTF/랩 실습을 문서화한 것입니다. 실제 자격 증명, 시스템 또는 데이터는 포함되지 않았습니다. CTF 룸의 플래그 값과 특정 캡처 비밀번호는 TryHackMe의 플랫폼 지침을 존중하여 의도적으로 생략했습니다.