Windows Prefetch 분석 (Python)은(는) 무엇을 하나요?
개요
Windows Prefetch 파일(.pf)에는 실행 파일 이름, 실행 횟수, 타임스탬프, 로드된 DLL 및 접근된 디렉토리 등 애플리케이션 실행 데이터가 기록됩니다. 이 스킬은 windowsprefetch Python 라이브러리를 사용하여 Prefetch 파일을 파싱하고, 실행 타임라인을 재구성하며, 실행 파일 이름과 로드된 리소스를 비교하여 이름이 변경되었거나 위장된 바이너리를 탐지하고, 맬웨어 실행 또는 측면 이동을 나타낼 수 있는 의심스러운 프로그램을 식별하는 방법을 다룹니다.
사용 시기
- 보안 인시던트 조사 시 Windows Prefetch를 Python으로 분석해야 하는 경우
- 이 도메인에 대한 탐지 규칙 또는 위협 헌팅 쿼리를 구축하는 경우
- SOC 분석가가 이 분석 유형에 대한 체계적인 절차를 필요로 하는 경우
- 관련 공격 기술에 대한 보안 모니터링 적용 범위를 검증하는 경우
사전 요구 사항
- Python 3.9+ 및
windowsprefetch라이브러리 (pip install windowsprefetch) - C:\Windows\Prefetch\ 디렉토리의 Windows Prefetch 파일 (버전 17-30 지원)
- Windows Prefetch 파일 이름 규칙 이해 (EXECUTABLE-HASH.pf)
단계
1단계: Prefetch 파일 수집
대상 시스템의 C:\Windows\Prefetch\ 디렉토리에서 .pf 파일을 수집합니다.
2단계: 실행 기록 파싱
실행 파일 이름, 실행 횟수, 마지막 실행 타임스탬프 및 볼륨 정보를 추출합니다.
3단계: 의심스러운 실행 탐지
알려진 공격 도구(mimikatz, psexec 등), 이름이 변경된 바이너리 및 비정상적인 실행 패턴을 플래그로 표시합니다.
4단계: 실행 타임라인 구축
모든 Prefetch 파일에서 시간순 실행 타임라인을 재구성합니다.
예상 출력
JSON 보고서: 실행 기록, 의심스러운 실행 파일, 이름 변경 바이너리 지표 및 타임라인 재구성 결과를 포함합니다.
출력 예시
$ python3 prefetch_analyzer.py --dir /evidence/Windows/Prefetch --output /analysis/prefetch_report
Windows Prefetch Analyzer v2.1
================================
Source: /evidence/Windows/Prefetch/
Prefetch Format: Windows 10 (MAM compressed, version 30)
Files Found: 234
--- Execution Timeline (Incident Window: 2024-01-15 to 2024-01-18) ---
Last Executed (UTC) | Run Count | Filename | Hash | Path
------------------------|-----------|-----------------------------|----------|------------------------------------------
2024-01-15 14:33:15 | 1 | Q4_REPORT.XLSM-2A1B3C4D.pf | 2A1B3C4D | C:\Users\jsmith\Downloads\Q4_Report.xlsm
2024-01-15 14:35:44 | 1 | POWERSHELL.EXE-A2B3C4D5.pf | A2B3C4D5 | C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
2024-01-15 14:36:30 | 3 | UPDATE_CLIENT.EXE-B3C4D5E6.pf| B3C4D5E6| C:\ProgramData\Updates\update_client.exe
2024-01-15 15:10:22 | 1 | NETSCAN.EXE-C4D5E6F7.pf | C4D5E6F7 | C:\Users\jsmith\Downloads\netscan.exe
2024-01-16 02:28:00 | 1 | PROCDUMP64.EXE-D5E6F7A8.pf | D5E6F7A8 | C:\Windows\Temp\procdump64.exe
2024-01-16 02:30:15 | 2 | MIMIKATZ.EXE-E6F7A8B9.pf | E6F7A8B9 | C:\Windows\Temp\mimikatz.exe
2024-01-16 02:40:00 | 4 | PSEXEC.EXE-F7A8B9C0.pf | F7A8B9C0 | C:\Users\jsmith\AppData\Local\Temp\psexec.exe
2024-01-17 02:45:00 | 1 | SDELETE64.EXE-A8B9C0D1.pf | A8B9C0D1 | C:\Windows\Temp\sdelete64.exe
2024-01-18 03:00:45 | 1 | WEVTUTIL.EXE-B9C0D1E2.pf | B9C0D1E2 | C:\Windows\System32\wevtutil.exe
--- Renamed Binary Detection ---
ALERT: UPDATE_CLIENT.EXE loaded DLLs consistent with Cobalt Strike beacon:
Referenced DLLs: wininet.dll, ws2_32.dll, advapi32.dll, dnsapi.dll, netapi32.dll
Volume: \VOLUME{01d94f2a3b5c7d8e-A4E73F21} (C:)
Directories referenced:
C:\ProgramData\Updates\
C:\Windows\System32\
--- Execution Frequency Analysis ---
Most Executed (Top 5):
1. SVCHOST.EXE (267 runs)
2. CHROME.EXE (189 runs)
3. EXPLORER.EXE (156 runs)
4. RUNTIMEBROKER.EXE (134 runs)
5. OUTLOOK.EXE (98 runs)
First-Time Executions (Never seen before incident window):
6 executables first run between 2024-01-15 and 2024-01-18
Summary:
Total prefetch files: 234
Suspicious executables: 6
Renamed binary indicators: 1 (update_client.exe)
Anti-forensics tools: 2 (sdelete64.exe, wevtutil.exe)
JSON report: /analysis/prefetch_report/prefetch_timeline.json