Windows Forensics

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
1 NTFS Internals

NTFS (New Technology File System) adalah file system default untuk Windows. Memahami strukturnya sangat penting untuk analisis forensik.

Komponen Utama NTFS:

KomponenKeterangan
$MFTMaster File Table – indeks setiap file/direktori
$LogFileTransaction log untuk file system journal
$UsnJrnlChange journal yang melacak modifikasi file
$BootBoot sector dan bootstrap code
$BitmapStatus alokasi cluster
$SecureSecurity 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
2 Master File Table (MFT)

MFT adalah inti dari NTFS. Setiap file dan direktori memiliki setidaknya satu entry (biasanya 1024 byte).

Struktur MFT Entry:

AtributType IDKeterangan
$STANDARD_INFORMATION0x10Timestamp dibuat, dimodifikasi, diakses, dan entry dimodifikasi
$FILE_NAME0x30Nama file dan referensi direktori induk + timestamp
$DATA0x80Isi file (resident jika kecil, non-resident jika besar)
$INDEX_ROOT0x90Directory index untuk direktori kecil
$INDEX_ALLOCATION0xA0Directory index untuk direktori besar

Nilai Forensik:

⚠️ Deteksi Timestomping: Bandingkan timestamp $STANDARD_INFORMATION vs $FILE_NAME. Penyerang sering memodifikasi $SI namun lupa memodifikasi $FN.
  • 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>
3 Windows Registry

Registry adalah database hierarkis yang menyimpan konfigurasi OS dan aplikasi. Ini merupakan salah satu artifact forensik paling berharga.

File Registry Hive:

HiveLokasiIsi
SAMC:\Windows\System32\config\SAMAkun pengguna dan password hash
SECURITYC:\Windows\System32\config\SECURITYKebijakan keamanan dan LSA secret
SYSTEMC:\Windows\System32\config\SYSTEMKonfigurasi hardware, service, driver
SOFTWAREC:\Windows\System32\config\SOFTWARESoftware terinstal, pengaturan OS
NTUSER.DATC:\Users\<user>\NTUSER.DATPengaturan dan aktivitas per pengguna
UsrClass.datC:\Users\<user>\AppData\Local\Microsoft\Windows\UsrClass.datPengaturan shell dan COM pengguna

Artifact Registry Forensik Penting:

ArtifactRegistry PathEvidence
Last ShutdownSYSTEM\CurrentControlSet\Control\Windows\ShutdownTimeWaktu shutdown terakhir
Computer NameSYSTEM\CurrentControlSet\Control\ComputerName\ComputerNameIdentitas sistem
Time ZoneSYSTEM\CurrentControlSet\Control\TimeZoneInformationOffset time zone
USB DevicesSYSTEM\CurrentControlSet\Enum\USBSTORRiwayat perangkat USB
Network InterfacesSYSTEM\CurrentControlSet\Services\Tcpip\Parameters\InterfacesKonfigurasi jaringan
Recent DocsNTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocsFile yang baru dibuka
Run KeysSOFTWARE\Microsoft\Windows\CurrentVersion\RunProgram auto-start (persistence)
UserAssistNTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssistEksekusi program (terenkripsi ROT13)
Typed URLsNTUSER.DAT\Software\Microsoft\Internet Explorer\TypedURLsURL 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
4 Prefetch

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
Nilai Forensik:
  • 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
5 Event Logs

Windows Event Log disimpan dalam format EVTX sejak Windows Vista.

Lokasi C:\Windows\System32\winevt\Logs\

Event Log Kritis:

LogEvent Penting
Security.evtxLogon/logoff (4624/4634), logon gagal (4625), penggunaan privilege (4672)
System.evtxInstalasi service (7045), perubahan waktu sistem (4616), shutdown/startup
Application.evtxError aplikasi, instalasi program
PowerShell/Operational.evtxEksekusi script PowerShell (4104), module logging
Sysmon/Operational.evtxPembuatan process, koneksi jaringan, perubahan waktu pembuatan file
TaskScheduler/Operational.evtxEksekusi scheduled task

Kode Tipe Logon (Event 4624):

TipeKeterangan
2Interactive (keyboard/layar lokal)
3Network (SMB, mapped drive)
4Batch (scheduled task)
5Service (logon akun service)
7Unlock (membuka kunci layar)
8Network Cleartext (IIS basic auth)
9New Credentials (RunAs /netonly)
10Remote Interactive (RDP)
11Cached 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
6 Amcache & Shimcache

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)
Nilai Forensik:
  • 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
7 LNK (Shortcut) Artifacts

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)
Nilai Forensik:
  • 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

tags