Operating System Forensics
Windows Forensics
Tujuan
- Memahami internal NTFS yang relevan untuk forensik
- Menganalisis Master File Table (MFT)
- Mengekstrak evidence dari Windows Registry
- Menginterpretasikan artifact Prefetch, Event Log, Amcache, Shimcache, dan LNK
NTFS (New Technology File System) adalah file system default untuk Windows. Memahami strukturnya sangat penting untuk analisis forensik.
Komponen Utama NTFS:
| Komponen | Keterangan |
|---|---|
| $MFT | Master File Table – indeks setiap file/direktori |
| $LogFile | Transaction log untuk file system journal |
| $UsnJrnl | Change journal yang melacak modifikasi file |
| $Boot | Boot sector dan bootstrap code |
| $Bitmap | Status alokasi cluster |
| $Secure | Security descriptor untuk file |
Fitur NTFS Penting untuk Forensik:
- Alternate Data Streams (ADS): Data tersembunyi yang terlampir pada file
- File Slack: Data sisa di cluster yang hanya terpakai sebagian
- $MFT Slack: Ruang kosong di dalam MFT entry
- Timestamp: Empat MACB timestamp per atribut (Standard Info + File Name)
Mendeteksi ADS:
# Menampilkan alternate data stream
Get-Item -Path file.txt -Stream *
dir /r file.txt
# Membaca konten dari ADS
Get-Content -Path file.txt -Stream hidden_stream
more < file.txt:hidden_stream
MFT adalah inti dari NTFS. Setiap file dan direktori memiliki setidaknya satu entry (biasanya 1024 byte).
Struktur MFT Entry:
| Atribut | Type ID | Keterangan |
|---|---|---|
| $STANDARD_INFORMATION | 0x10 | Timestamp dibuat, dimodifikasi, diakses, dan entry dimodifikasi |
| $FILE_NAME | 0x30 | Nama file dan referensi direktori induk + timestamp |
| $DATA | 0x80 | Isi file (resident jika kecil, non-resident jika besar) |
| $INDEX_ROOT | 0x90 | Directory index untuk direktori kecil |
| $INDEX_ALLOCATION | 0xA0 | Directory index untuk direktori besar |
Nilai Forensik:
- Resident Data: File kecil disimpan langsung di MFT entry (bisa diakses meski sudah dihapus)
- MFT Entry Reuse: Entry file yang dihapus dapat ditimpa oleh file baru
Tool Analisis:
# Parse MFT dengan analyzeMFT
analyzeMFT.py -f \$MFT -o mft_output.csv
# Menggunakan MFTECmd (Eric Zimmerman)
MFTECmd.exe -f "\$MFT" --csv output_dir
# Menggunakan istat (Sleuth Kit)
istat -f ntfs image.dd <inode_number>
Registry adalah database hierarkis yang menyimpan konfigurasi OS dan aplikasi. Ini merupakan salah satu artifact forensik paling berharga.
File Registry Hive:
| Hive | Lokasi | Isi |
|---|---|---|
| SAM | C:\Windows\System32\config\SAM | Akun pengguna dan password hash |
| SECURITY | C:\Windows\System32\config\SECURITY | Kebijakan keamanan dan LSA secret |
| SYSTEM | C:\Windows\System32\config\SYSTEM | Konfigurasi hardware, service, driver |
| SOFTWARE | C:\Windows\System32\config\SOFTWARE | Software terinstal, pengaturan OS |
| NTUSER.DAT | C:\Users\<user>\NTUSER.DAT | Pengaturan dan aktivitas per pengguna |
| UsrClass.dat | C:\Users\<user>\AppData\Local\Microsoft\Windows\UsrClass.dat | Pengaturan shell dan COM pengguna |
Artifact Registry Forensik Penting:
| Artifact | Registry Path | Evidence |
|---|---|---|
| Last Shutdown | SYSTEM\CurrentControlSet\Control\Windows\ShutdownTime | Waktu shutdown terakhir |
| Computer Name | SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName | Identitas sistem |
| Time Zone | SYSTEM\CurrentControlSet\Control\TimeZoneInformation | Offset time zone |
| USB Devices | SYSTEM\CurrentControlSet\Enum\USBSTOR | Riwayat perangkat USB |
| Network Interfaces | SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces | Konfigurasi jaringan |
| Recent Docs | NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs | File yang baru dibuka |
| Run Keys | SOFTWARE\Microsoft\Windows\CurrentVersion\Run | Program auto-start (persistence) |
| UserAssist | NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist | Eksekusi program (terenkripsi ROT13) |
| Typed URLs | NTUSER.DAT\Software\Microsoft\Internet Explorer\TypedURLs | URL yang diketik di browser |
Tool Analisis:
# RegRipper
rip.exe -r NTUSER.DAT -p userassist
rip.exe -r SYSTEM -p compname
rip.exe -r SAM -p samparse
# Registry Explorer (Eric Zimmerman)
# Berbasis GUI, mendukung transaction log replay
# RECmd (Eric Zimmerman)
RECmd.exe -d "C:\path\to\hives" --bn BatchExamples\BasicSystemInfo.reb --csv output_dir
File Windows Prefetch mencatat data eksekusi aplikasi untuk mengoptimalkan waktu loading.
Lokasi C:\Windows\Prefetch\
Format <NAMA_EXECUTABLE>-<HASH>.pf
Informasi yang Tersimpan:
- Nama dan path executable
- Run count (jumlah eksekusi)
- 8 waktu eksekusi terakhir (Windows 8+)
- File dan direktori yang diakses dalam 10 detik pertama
- Informasi volume
- Membuktikan eksekusi program (meskipun file sudah dihapus)
- Menyediakan timestamp eksekusi
- Menunjukkan file yang diakses (dapat mengungkap payload dan sumber data)
- Run count menunjukkan frekuensi penggunaan
Tool Analisis:
# PECmd (Eric Zimmerman)
PECmd.exe -d "C:\Windows\Prefetch" --csv output_dir
# WinPrefetchView (NirSoft)
# Viewer prefetch berbasis GUI
Windows Event Log disimpan dalam format EVTX sejak Windows Vista.
Lokasi C:\Windows\System32\winevt\Logs\
Event Log Kritis:
| Log | Event Penting |
|---|---|
| Security.evtx | Logon/logoff (4624/4634), logon gagal (4625), penggunaan privilege (4672) |
| System.evtx | Instalasi service (7045), perubahan waktu sistem (4616), shutdown/startup |
| Application.evtx | Error aplikasi, instalasi program |
| PowerShell/Operational.evtx | Eksekusi script PowerShell (4104), module logging |
| Sysmon/Operational.evtx | Pembuatan process, koneksi jaringan, perubahan waktu pembuatan file |
| TaskScheduler/Operational.evtx | Eksekusi scheduled task |
Kode Tipe Logon (Event 4624):
| Tipe | Keterangan |
|---|---|
| 2 | Interactive (keyboard/layar lokal) |
| 3 | Network (SMB, mapped drive) |
| 4 | Batch (scheduled task) |
| 5 | Service (logon akun service) |
| 7 | Unlock (membuka kunci layar) |
| 8 | Network Cleartext (IIS basic auth) |
| 9 | New Credentials (RunAs /netonly) |
| 10 | Remote Interactive (RDP) |
| 11 | Cached Interactive (domain controller tidak dapat dijangkau) |
Tool Analisis:
# EvtxECmd (Eric Zimmerman)
EvtxECmd.exe -d "C:\Windows\System32\winevt\Logs" --csv output_dir
# Menggunakan PowerShell
Get-WinEvent -FilterHashtable @{LogName='Security';ID=4624} | Select-Object TimeCreated, Message
# Menggunakan wevtutil
wevtutil qe Security "/q:*[System[(EventID=4624)]]" /f:text
Amcache (Amcache.hve)
Lokasi C:\Windows\appcompat\Programs\Amcache.hve
Mencatat informasi tentang executable dan program yang terinstal:
- Path file lengkap
- Hash SHA-1 dari executable
- Timestamp eksekusi pertama
- Ukuran dan versi file
- Informasi publisher
Shimcache (AppCompatCache)
Lokasi SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache
Mencatat metadata executable untuk kompatibilitas aplikasi:
- Path file lengkap
- Ukuran file
- Waktu modifikasi terakhir
- Flag eksekusi (Windows 7/8 saja; Windows 10+ tidak melacak ini secara andal)
- Membuktikan keberadaan file di sistem (meskipun sudah dihapus)
- Menyediakan hash untuk identifikasi malware
- Entry Shimcache tersimpan dalam urutan last-modified (LIFO)
Tool Analisis:
# AmcacheParser (Eric Zimmerman)
AmcacheParser.exe -f Amcache.hve --csv output_dir
# AppCompatCacheParser (Eric Zimmerman)
AppCompatCacheParser.exe -f SYSTEM --csv output_dir
Windows secara otomatis membuat file LNK sebagai shortcut yang menyimpan metadata tentang file target.
Lokasi:
- C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Recent\
- C:\Users\<user>\Desktop\
- C:\Users\<user>\AppData\Roaming\Microsoft\Office\Recent\
Informasi yang Tersimpan:
- Path file target (termasuk network path dan drive yang sudah dilepas)
- Timestamp file target (dibuat, dimodifikasi, diakses)
- Ukuran file target
- Volume serial number dan label
- NetBIOS name dari mesin asal
- MAC address host (pada beberapa kasus)
- Membuktikan akses file (meskipun file ada di drive eksternal/jaringan)
- Mengungkap path network share
- Mengaitkan aktivitas pengguna dengan file tertentu
- Tetap ada meskipun file target sudah dihapus
Tool Analisis:
# LECmd (Eric Zimmerman)
LECmd.exe -d "C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Recent" --csv output_dir
# Menggunakan Sleuth Kit
# Ekstrak dan parse file LNK dari disk image
Referensi
- SANS Windows Forensic Analysis Poster
- Eric Zimmerman's Tools: https://ericzimmerman.github.io
- NTFS Documentation: https://flatcap.github.io/linux-ntfs/
