드림핵 문제풀이/forensics

[Dreamhack] Find the USB

무빙건입니다 2025. 7. 30. 13:26

문제 요약

문제 링크: Find the USB - Dreamhack wargame

문제 설명

드림이의 컴퓨터에 누군가가 USB 저장장치를 연결했다가 해제한 것 같아요.
사건이 발생한 시간은 2024년 4월이라고 합니다. Windows 레지스트리를 분석해 연결된 USB 정보를 찾아낼 수 있을까요?
FLAG = DH{VID_PID_DeviceSerialNumber}
예를 들어 VID가 1111, PID가 2222, 그리고 DeviceSerialNumber가 AAAABBBB이면 플래그는 DH{1111_2222_AAAABBBB} 입니다.

접근 방법

1. 문제에서 주어진 이미지 파일(DiskImage.E01)에서 아래의 하이브 파일(레지스트리 파일)들을 모두 추출한다. 

  • SYSTEM: 악성코드가 시스템 '서비스'로 등록되지는 않았는가?
  • SOFTWARE: 모든 사용자를 대상으로 하는 '자동 실행 프로그램'으로 설치되지는 않았는가?
  • SAM: 공격자가 새로운 '관리자 계정'을 만들지는 않았는가?
  • SECURITY: 시스템의 '보안 정책'을 변경하지는 않았는가?
  • NTUSER.DAT: 특정 사용자가 '로그인했을 때만' 악성 행위를 하도록 숨어있지는 않은가

필요할 하이브 파일 추출

 

추출 경로는 이곳이다.

[root]\Windows\Users\victim\NTUSER.DAT   여기서 victim이 이 문제에서의 username으로 추정된다.

[root]\Windows\System32\config\DEFAULT

[root]\Windows\System32\config\SAM

[root]\Windows\System32\config\SECURITY

[root]\Windows\System32\config\SOFTWARE

[root]\Windows\System32\config\SYSTEM

 

FTK Imager 에서 하이브파일 추출

 

2. 하이브 파일들을 registry 디렉터리에 모두 저장해주고, PowerShell을 관리자 권한으로 실행한다. 

이 과정을 진행하려면 RLA 실행파일이 필요하다. ZimmermanTools 에서 RLA 를 설치해서 경로를 기억해둔다. 

rla 실행파일

 

여기서 나의 RLA 실행파일 경로는 C:\Users\dkms6\OneDrive\Desktop\드림핵\net9\rla.exe 이다.

C:\Users\dkms6\Downloads\tmp 경로에 registry 디렉터리 안의 하이브 파일들은 현재 Dirty 상태이다.

따라서 이 실행파일 절대경로를 활용해서 아래 명령어로 레지스트리를 Clean 상태로 바꿔준다.

 

여기서 dirty 하이브 파일의 의미는 아직 레지스트리에 반영된 변경 사항이 남아있을 수 있는 상태를 의미한다. 따라서 포렌식을 진행하기 전 모든 트랜잭션 로그파일을 하이브 파일에 적용시키는 Clean 상태로 적용해 줄 필요가 있다. 

 

& "C:\Users\dkms6\OneDrive\Desktop\드림핵\net9\rla.exe" -d "C:\Users\dkms6\Downloads\tmp\registry" --out "C:\Users\dkms6\Downloads\tmp\registry_clean"

 

 

3. 이제 Registry Explorer 2.0을 활용해 registry_clean 디렉터리의 Clean 하이브 파일을 확인한다. 

USB 키 검색

 

USB 키워드를 검색하면 각종 레지스트리를 확인할 수 있다. 그 중 마지막 연결 기록이 있는 USB의 VID, PID, Serial Number를 찾을 수 있다.

문제의 USB 발견

 

이 정보가 저장되는 가장 대표적인 위치는 SYSTEM 하이브의 SYSTEM\ControlSet001\Enum\USBSTOR 키 이다. 이 키 아래에는 지금까지 컴퓨터에 연결되었던 모든 USB 저장 장치의 정보(VID-제조사, PID-제품ID, 고유 시리얼 넘버)가 흔적으로 남아있다. 이 정보를 통해 어떤 USB가 언제 연결되었는지 특정할 수 있다.

 


마무리

1. 핵심 전략

  • FTK Imager 활용하여 하이브파일 추출
  • RLA 도구로 하이브파일 Clean (사실 이 문제에선 Dirty 상태에서도 USB 데이터를 확인할 수 있다.)
  • Registery Explorer 도구로 레지스트리 값 확인

2. 다음 문제

  • Autoruns에서 위의 하이브 파일을 그대로 사용한다.