[Dreamhack] Find the USB
문제 요약
문제 링크: 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

2. 하이브 파일들을 registry 디렉터리에 모두 저장해주고, PowerShell을 관리자 권한으로 실행한다.
이 과정을 진행하려면 RLA 실행파일이 필요하다. ZimmermanTools 에서 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의 VID, PID, Serial Number를 찾을 수 있다.

이 정보가 저장되는 가장 대표적인 위치는 SYSTEM 하이브의 SYSTEM\ControlSet001\Enum\USBSTOR 키 이다. 이 키 아래에는 지금까지 컴퓨터에 연결되었던 모든 USB 저장 장치의 정보(VID-제조사, PID-제품ID, 고유 시리얼 넘버)가 흔적으로 남아있다. 이 정보를 통해 어떤 USB가 언제 연결되었는지 특정할 수 있다.
마무리
1. 핵심 전략
- FTK Imager 활용하여 하이브파일 추출
- RLA 도구로 하이브파일 Clean (사실 이 문제에선 Dirty 상태에서도 USB 데이터를 확인할 수 있다.)
- Registery Explorer 도구로 레지스트리 값 확인
2. 다음 문제
- Autoruns에서 위의 하이브 파일을 그대로 사용한다.