Panduan praktis untuk forensic investigator dan incident responder dalam melakukan live data acquisition pada sistem Windows: mengumpulkan data yang hilang begitu sistem dimatikan.
ABSTRACTVolatile information adalah data yang berada di RAM, cache, dan registry - hilang begitu sistem di-power off atau reboot. Sifatnya dinamis dan berubah tiap detik, sehingga harus dikumpulkan secara real-time saat sistem masih hidup.
playbook ini cocok untuk
- Forensic Investigator / DFIR Analyst
- Security Operation Center (SOC)
- System Administrator yang menangani insiden aktif
Apa yang Bisa Didapat dari Volatile Data?
- Logged-on users - siapa yang sedang login (lokal & remote)
- Command history - perintah yang diketik attacker
- Network connections & process-to-port mapping
- Process information, modules, dan process memory
- Open files, shared resources, mapped drives
- Clipboard contents & state of the system
Data ini menjadi potential source of evidence untuk malware analysis, rekonstruksi timeline insiden, identifikasi program/library yang terlibat, dan password recovery.
Langkah pertama setiap investigasi. System time (dalam UTC) adalah reference point yang memberi konteks waktu bagi seluruh bukti yang dikumpulkan setelahnya. Tanpa waktu yang akurat, semua artefak lain kehilangan makna.
Data yang Dicatat
| Data | Fungsi Forensik |
|---|---|
| System time (UTC) | Titik acuan utama timeline insiden |
| System uptime | Membantu rekonstruksi system events |
| Real time / wall time | Dibandingkan dengan system time untuk menguji akurasi system clock (deteksi jam yang melenceng atau di-tamper) |
:: Tanggal dan waktu sistem
date /t & time /t

:: System uptime
net statistics server
net statistics workstation

GetSystemTime Function
GetSystemTime adalah Windows API function yang mengembalikan tanggal & waktu sistem dalam UTC. Hasilnya disalin ke struktur SYSTEMTIME yang berisi month, day, year, weekday, hour, minute, second, hingga millisecond - jauh lebih presisi dibanding command biasa, dan ideal untuk membangun event timeline.
Kumpulkan semua user yang sedang logged-on, mencakup local logon (via console/keyboard) maupun remote access (via net use atau mapped share).
Kenapa penting? Informasi ini memberi konteks kepemilikan bagi bukti lain: siapa user context dari sebuah running process, siapa owner sebuah file, dan siapa yang terkait last access time.
PsLoggedOn (Sysinternals)
Menampilkan user yang login secara lokal maupun remote. Jika input yang diberikan adalah username (bukan nama komputer), PsLoggedOn akan menelusuri network neighborhood untuk mencari di mana user tersebut sedang login.
psloggedon [-] [-l] [-x] [\\computername | username]
| Parameter | Fungsi |
|---|---|
-l | Hanya local logon (tanpa network resource logon) |
-x | Tidak menampilkan logon time |
\\computername | Target komputer yang ingin dilihat info logon-nya |
username | Cari di jaringan: komputer mana saja tempat user tsb login |
net session
Menampilkan semua logged-in session ke komputer lokal: computer name dan username. Berguna untuk mengetahui apakah user memiliki open files dan berapa lama session berada dalam kondisi idle.
net session net session [\\<ComputerName>] [/delete] [/list]
| Parameter | Fungsi |
|---|---|
/list | Output dalam bentuk list, bukan table |
/delete | Mengakhiri session & menutup semua open file untuk session tsb |
LogonSessions (Sysinternals)
Menampilkan logged-on session aktif. Dengan opsi -p, ia juga menampilkan process yang berjalan di setiap session - menghubungkan session → process, sehingga investigator tahu proses mencurigakan berjalan di bawah user mana.
logonsessions64.exe
logonsessions [-c[t]] [-p]
:: -c = output CSV
:: -ct = output tab-delimited
:: -p = tampilkan process per session
net session /delete saat live acquisition. Command ini destruktif - memutus koneksi dan menutup file, sehingga mengubah state sistem yang sedang Anda dokumentasikan.
Mengetahui file apa saja yang sedang terbuka dan terkunci saat insiden berlangsung - berguna untuk memetakan file yang diakses atau di-share selama serangan.
net file
Menampilkan nama semua file yang open di server beserta jumlah file lock-nya. Tanpa parameter, ia melakukan listing saja (read-only).
net file net file [ID [/close]]
| Parameter | Fungsi |
|---|---|
ID | Nomor identifikasi file |
/close | Menutup open file & melepas locked records (destruktif) |
net file hanya melihat file yang di-share via jaringan, sedangkan Handle melihat semua handle lokal.
Setelah mendapatkan remote access, intruder biasanya mencari sistem lain di jaringan yang terlihat dari host yang sudah di-compromise - melalui batch file atau command net view yang dijalankan lewat SQL injection.
Saat sistem berkomunikasi via NetBIOS, ia menyimpan daftar host lain yang terlihat di NetBIOS name table cache (berisi remote system name + IP address). Isi cache inilah yang mengungkap sistem lain yang berpotensi ikut terdampak.
Jenis Network Information yang Dikumpulkan
- Data content - header information & payload
- Session information yang relevan dengan insiden
- Log data - IDS/IPS, firewall, server, application logs
- Secure file transfers dan aktivitas transfer lainnya
- Network packets (raw traffic)
- Port scan results
nbtstat
Menampilkan statistik protokol NetBIOS over TCP/IP (NetBT), NetBIOS name table (lokal & remote), dan NetBIOS name cache.
nbtstat -c nbtstat -a [IP Remote] nbtstat [-a RemoteName] [-A IPaddress] [-c] [-n] [-r] [-R] [-RR] [-s] [-S] [interval]
| Parameter | Fungsi |
|---|---|
-c | Isi NetBIOS remote name cache - mapping NetBIOS name ↔ IP address (paling bernilai) |
-n | Nama yang teregistrasi lokal oleh aplikasi NetBIOS (server, redirector) |
-r | Jumlah NetBIOS name yang di-resolve via broadcast dan WINS server |
-S | Daftar NetBIOS session aktif beserta statusnya |
-a | Detail NetBIOS remote machine name table |
nbtstat -c memberi Anda peta host lain yang pernah dihubungi dari mesin ter-compromise - indikator kuat adanya lateral movement. Command ini hanya tersedia bila TCP/IP terpasang di network adapter properties.
Informasi koneksi jaringan sangat volatile - bisa basi atau hilang dalam hitungan detik. Kumpulkan segera setelah insiden dilaporkan.
Pertanyaan yang Harus Terjawab
- Apakah attacker sudah logged-out, atau masih memiliki akses aktif?
- Apakah ada malware yang sedang melakukan data exfiltration keluar sistem?
- Adakah sistem lain yang terinfeksi? → segera take offline untuk mencegah penyebaran.
netstat
Tool bawaan Windows untuk melihat koneksi TCP dan UDP, state-nya, dan statistik traffic.
:: Kombinasi paling penting untuk forensik netstat -ano :: Sekalian dengan nama executable pembuat koneksi netstat -anob :: Routing table + cek persistent route netstat -r :: Save File netstat -anob > netstat -anob > "C:\Users\%USERNAME%\Downloads\logonSessions\Output.txt"
| Parameter | Fungsi |
|---|---|
-a | Semua active TCP connection + TCP/UDP listening port |
-n | Tampilkan address & port secara numerik (tanpa DNS resolve) |
-o | Tampilkan PID pemilik tiap koneksi |
-b | Executable yang membuat koneksi/listening port |
-r | Isi IP routing table - deteksi persistent route yang ditanam attacker |
-p <Protocol> | Filter berdasarkan protokol tertentu |
-e / -s | Ethernet statistics / statistik per-protokol |
<Interval> | Refresh output tiap N detik |
Kumpulkan status NIC (Network Interface Card) sebelum sistem di-acquire. Banyak perangkat memiliki wireless NIC built-in, sehingga jenis koneksi dan IP address yang digunakan tidak langsung terlihat.
ipconfig /all
ipconfig /all
Menampilkan seluruh konfigurasi TCP/IP: IP address, subnet mask, default gateway, konfigurasi WINS & DNS, serta state dari NIC dan DHCP. Ini yang memungkinkan investigator mengorelasikan network traffic log dengan sistem yang terlibat.
Deteksi Network Sniffer
Adversary sering menanam network traffic sniffer di host ter-compromise untuk mencegat traffic - termasuk login credentials dan informasi service dari sistem lain di jaringan.
Kuncinya: NIC hanya dapat menangkap traffic milik host lain jika berada dalam promiscuous mode.
Promqry
Mendeteksi apakah ada network interface dalam promiscuous mode pada sistem Windows. Jika ditemukan → indikasi kuat adanya network sniffer yang aktif. Tersedia versi command line dan GUI; output dapat di-dump ke text file.
promqrycmd.exe
cd "C:\promqry"
promqry
| Tool | Catatan |
|---|---|
| Promqry | Deteksi promiscuous mode di Windows. Tidak dapat mendeteksi standalone sniffer atau sniffer yang berjalan di OS non-Windows |
| Nmap | NSE script untuk deteksi promiscuous mode dari sisi jaringan |
| NetScanTools Pro | Analisis status NIC dan enumerasi jaringan |
Task Manager tidak cukup - ia tidak menampilkan informasi yang dibutuhkan investigator secara langsung. Berikut detail yang wajib dikumpulkan untuk setiap process:
| Informasi | Nilai Forensik |
|---|---|
| Full path ke executable image (.exe) | Deteksi binary yang dijalankan dari lokasi tidak wajar (%TEMP%, %APPDATA%) |
| Command line saat process di-launch | Mengungkap argumen, payload, atau encoded command attacker |
| Running duration | Mengaitkan process dengan timeline insiden |
| Security / user context | Siapa pemilik process → deteksi privilege escalation |
| Modules (DLL) yang di-load | Deteksi DLL injection / library berbahaya |
| Memory contents | Ekstraksi credential, string, konfigurasi C2 |
tasklist
Menampilkan daftar application dan service beserta PID, baik di komputer lokal maupun remote.
:: Verbose - user context, session, status, window title tasklist /v :: Mapping service ke PID (deteksi service palsu / svchost mencurigakan) tasklist /svc :: Cari process yang me-load module/DLL tertentu tasklist /m <ModuleName> :: Target remote host tasklist /s <computer> /u <domain>\<user> /p <password>
tasklist /v menampilkan image name, PID, session, status, username, dan window title - tapi tidak menampilkan full path maupun command line. Lengkapi dengan wmic process get name,processid,commandline,executablepath atau Process Explorer.
PsList (Sysinternals)
Menampilkan info process termasuk running duration di kernel mode dan user mode.
:: Menampilkan informasi semua proccess yang berjalan di system
pslist
:: Menampilkan Informasi Proccess, Memory dan Threads
pslist -x
| Parameter | Fungsi |
|---|---|
-t | Process tree - hubungan parent–child |
-x | Gabungan: process + memory + thread |
-d / -m | Detail thread / detail memory |
-s [n] / -r n | Mode task manager / refresh rate (default 1 detik) |
-e | Exact match nama process |
\\computer | Target remote (gunakan -u dan -p untuk kredensial) |
pslist -t adalah salah satu quick win terbaik. Relasi parent–child yang tidak wajar - misalnya winword.exe → cmd.exe → powershell.exe - adalah indikator kuat eksekusi payload.
ListDLLs (Sysinternals)
Melaporkan DLL yang di-load ke dalam process, lengkap dengan full path, versi, dan digital signature.
listdlls [-r] [-v | -u] [processname|pid] listdlls [-r] [-v] [-d dllname]
| Parameter | Fungsi |
|---|---|
-u | Tampilkan unsigned DLL - kandidat utama malware |
-r | Tandai DLL yang relocated (tidak di-load pada base address-nya) - indikasi injection |
-d <dllname> | Tampilkan process mana saja yang me-load DLL tertentu |
-v | Version information DLL |
listdlls -u (cari unsigned) → listdlls -r (cari relocated) → periksa full path yang mencurigakan.
Handle (Sysinternals)
Menampilkan open handle milik setiap process. Object type mencakup bukan hanya file, tetapi juga port, registry key, synchronization primitive (mutex), thread, dan process.
handle -a -u -p <pid>
handle -p <pid> SYSTEM
:: -a = semua tipe handle (bukan hanya file)
:: -u = tampilkan owner username
:: -p = batasi ke process/PID tertentu
:: -s = hitung jumlah tiap tipe handle
:: -c = TUTUP handle (DESTRUKTIF - hindari saat live acquisition)
Setiap network connection dan open port yang aktif pasti terikat ke sebuah running process. Jika ada koneksi mencurigakan, pasti ada process di baliknya. Ini adalah teknik penghubung antara network artifact dan process artifact.
netstat -a -n -o
Alur Korelasi
1. Dapatkan PID dari koneksi mencurigakan netstat -ano 2. Terjemahkan PID menjadi nama process tasklist | findstr <PID> 3. Gali lebih dalam process tersebut listdlls -u <PID> handle -a -u -p <PID>
netstat -o hanya memberi angka PID, bukan nama process. Korelasi dengan tasklist adalah langkah wajib - dan ini cara tercepat menemukan backdoor atau C2 beacon.
Menentukan apakah sebuah running process bersifat malicious, lalu mengambil isi memory-nya untuk analisis mendalam.
Process Explorer
Menampilkan handle dan DLL dari process, dilengkapi built-in VirusTotal support untuk langsung mengecek reputasi hash process.
| Window | Isi |
|---|---|
| Atas | Daftar active process beserta nama owner account (selalu tampil) |
| Bawah - Handle mode | Handle yang dibuka oleh process yang dipilih |
| Bawah - DLL mode | DLL dan memory-mapped file yang di-load process tersebut |
ProcDump
Command-line utility untuk membuat memory dump / crash dump dari sebuah process. Awalnya dirancang untuk memantau CPU spike, tetapi sangat berguna dalam forensik untuk mengekstrak isi memory process mencurigakan.
Kemampuan: memantau CPU spike, unresponsive window (hung app), unhandled exception, dan trigger berdasarkan performance counter threshold.
procdump explorer :: Full memory dump - paling lengkap untuk forensik procdump.exe -ma <PID> C:\Evidence\suspect.dmp :: Dump saat CPU melewati ambang tertentu selama N detik procdump.exe -ma -c 80 -s 5 <ProcessName> :: Dump saat terjadi unhandled exception procdump.exe -ma -e <PID>
| Opsi | Fungsi |
|---|---|
-ma | Full memory dump (rekomendasi forensik) |
-mm | Mini dump |
-c <CPU> | Trigger saat CPU melewati ambang |
-p <Counter> <Threshold> | Trigger berdasarkan performance counter |
-e | Trigger saat unhandled exception |
-n / -s | Jumlah dump / durasi kondisi sebelum dump dibuat |
procdump -ma <PID> → analisis dump dengan strings, Volatility, atau YARA untuk mengungkap payload ter-decrypt yang hanya ada di memory.
Print spool mengelola semua print job di Windows, menyimpan data yang akan dicetak secara sementara sampai printer selesai. File-file ini dihapus otomatis setelah job selesai - karena itu bersifat volatile dan harus segera diamankan.
File yang Dihasilkan
Local print provider (Localspl.dll) menulis:
| File | Isi |
|---|---|
.spl (spool file) | Konten dokumen yang akan dicetak |
.emf | File grafis terpisah untuk setiap halaman |
.shd (shadow file) | METADATA PRINT JOB - nama file yang dicetak, lokasi, nama printer, username, dan timestamp |
Format penamaan: xxx.spl dan xxx.shd, di mana xxx = print job number.
Lokasi
Verifikasi lokasi sebenarnya melalui registry value DefaultSpoolDirectory di:
Analisis
Metadata pada .spl dan .shd tersimpan dalam format Unicode, sehingga memerlukan hex editor:
- Free Hex Editor Neo - binary file editor untuk view, modify, analyze data heksadesimal pada file & disk berukuran sangat besar
- wxHexEditor - alternatif lintas platform
.shd: ia memberitahu siapa mencetak dokumen apa, di printer mana, dan jam berapa - bukti kuat untuk kasus data exfiltration melalui jalur fisik. Sangat relevan jika ada printer yang terhubung saat insiden atau dicabut setelahnya. Tergantung konfigurasi, print job juga bisa ter-spool ke virtual memory.
Clipboard adalah area penyimpanan sementara untuk operasi copy/cut & paste. Selama komputer tidak kehilangan daya dan user tidak log out, sistem tidak menambah maupun menghapus isi clipboard - data terakhir yang disalin masih tersimpan di memory.
Tool Ekstraksi
| Tool | Kemampuan |
|---|---|
| Free Clipboard Viewer | Menampilkan isi clipboard saat ini; dapat save ke file dan load dari file untuk transfer antar komputer - berguna untuk pengumpulan bukti |
| RecentX | Alternatif untuk menelusuri clipboard & recent activity |
Downloads Free Clipboard Viewer
Service dan driver otomatis berjalan saat sistem start berdasarkan registry entries. Berbeda dengan process biasa, keduanya berjalan di background tanpa indikasi jelas - user umumnya tidak menyadarinya.
Pengumpulan Data
:: Mapping service ke PID tasklist /svc wmic service list brief | more :: Daftar service lengkap: PID, startmode, state, status wmic service get name,displayname,pathname,processid,startmode,state,status #save File wmic service get name,displayname,pathname,processid,startmode,state,status > "C:\Users\%Username%\Downloads\wmic-full.txt" :: Driver yang ter-load driverquery /v wmic sysdriver get name,pathname,state,startmode
Yang Dicari Investigator
| Indikator | Penjelasan |
|---|---|
| Nama menyerupai service sah | Typosquatting - misal svch0st, lsassa, Windows Defender Servlce |
| StartMode = Auto pada service tak dikenal | Tanda mekanisme persistence |
| PathName tidak wajar | Executable berada di %TEMP%, %APPDATA%, C:\Users\Public, atau path acak |
| Unsigned / unquoted service path | Potensi privilege escalation maupun jejak malware |
Command History Information
Command yang diketik user - ping, whoami, net view, nslookup - sering menyimpan clue berharga tentang aktivitas reconnaissance attacker.
Scroll bar command prompt memang bisa digulirkan ke atas. Namun jika user menjalankan cls untuk membersihkan layar, riwayat tersebut tidak lagi terlihat. Solusinya:
doskey /history
Command ini menampilkan seluruh history yang diketik di prompt tersebut - termasuk yang sudah "terhapus" oleh cls.
cmd.exe tersebut masih terbuka. Begitu window ditutup, riwayatnya hilang permanen. Kumpulkan sebelum menutup apa pun di layar target.
Locally Shared Resource Information
Shared resource adalah network resource yang dapat diakses dari komputer remote melalui LAN.
net share
| Kolom Output | Isi |
|---|---|
| Share name | Nama share |
| Resource / Directory | Path direktori yang di-share |
| Remark | Keterangan tipe share |
$ (hidden share seperti C$, ADMIN$, IPC$) tidak muncul saat komputer diakses secara remote - tetapi tetap terlihat lewat net share secara lokal. Administrative share ini adalah jalur klasik yang disalahgunakan untuk lateral movement dan penyebaran malware antar host.
File Signature Verification
Sigverif (File Signature Verification) adalah utilitas bawaan Windows yang digunakan untuk memverifikasi apakah file sistem Windows memiliki digital signature (tanda tangan digital) yang valid dari Microsoft atau vendor terpercaya. Dalam konteks Incident Response dan Digital Forensics, Sigverif membantu mengidentifikasi file yang tidak ditandatangani (unsigned), yang dapat menjadi indikator adanya malware atau file yang telah dimodifikasi.
:: Jalankan WIN + R
Sigverif -> Start (Tunggu Proccess Selesai) -> Advance -> Viw Log
Collection Menggunakan Script
Skrip batch untuk otomatisasi pengumpulan. Jalankan dari removable media (write-blocked) Flashdisk/External HDD/SSD, jangan pernah dari disk target, dan simpan output ke media eksternal.
:: ============================================ :: Filename : volatile-collect.bat :: Jalankan sebagai Administrator dari USB forensik :: Semua binary (Sysinternals) berada di folder yang sama :: ============================================ @echo off set OUT=E:\Evidence\%COMPUTERNAME% mkdir "%OUT%" 2>nul :: --- 1. System Time (WAJIB PERTAMA) --- echo [*] Collecting system time... (date /t ^& time /t) > "%OUT%\01_systemtime.txt" net statistics workstation >> "%OUT%\01_systemtime.txt" :: --- 2. Network Connections --- echo [*] Collecting network connections... netstat -anob > "%OUT%\02_netstat.txt" netstat -r >> "%OUT%\02_netstat.txt" :: --- 3. Command History --- doskey /history > "%OUT%\03_cmdhistory.txt" :: --- 4. Processes, DLL, Handles --- echo [*] Collecting process information... tasklist /v > "%OUT%\04_tasklist_v.txt" tasklist /svc > "%OUT%\04_tasklist_svc.txt" wmic process get Name,ProcessId,ParentProcessId,CommandLine,ExecutablePath /format:csv > "%OUT%\04_process_full.csv" pslist.exe -accepteula -t > "%OUT%\04_pslist_tree.txt" listdlls.exe -accepteula -u > "%OUT%\04_listdlls_unsigned.txt" handle.exe -accepteula -a -u > "%OUT%\04_handles.txt" :: --- 5. Logged-on Users & Sessions --- echo [*] Collecting user sessions... psloggedon.exe -accepteula > "%OUT%\05_loggedon.txt" logonsessions.exe -accepteula -p > "%OUT%\05_logonsessions.txt" net session > "%OUT%\05_netsession.txt" :: --- 6. Network Status & NetBIOS --- ipconfig /all > "%OUT%\06_ipconfig.txt" nbtstat -c > "%OUT%\06_nbtstat_cache.txt" nbtstat -S >> "%OUT%\06_nbtstat_cache.txt" arp -a > "%OUT%\06_arp.txt" route print > "%OUT%\06_route.txt" :: --- 7. Open Files & Shares --- net file > "%OUT%\07_netfile.txt" net share > "%OUT%\07_netshare.txt" net use >> "%OUT%\07_netshare.txt" :: --- 8. Services & Drivers --- wmic service get Name,PathName,ProcessId,StartMode,State,Status /format:csv > "%OUT%\08_services.csv" driverquery /v > "%OUT%\08_drivers.txt" :: --- 9. Hashing untuk integritas bukti --- echo [*] Hashing evidence... for %%f in ("%OUT%\*.*") do certutil -hashfile "%%f" SHA256 >> "%OUT%\HASHES.txt" echo [+] Collection complete. Output: %OUT%
Prinsip Non-Negotiable
- Memory dump dulu, command kemudian. Tool yang mengumpulkan volatile data juga memodifikasi memory - ini fakta yang harus Anda sadari dan dokumentasikan.
- Hindari command destruktif saat live acquisition:
net session /delete,net file /close,handle -c. Gunakan hanya operasi read-only. - Jalankan tool dari media eksternal, bukan dari disk target - untuk meminimalkan penulisan ke media bukti.
- Hash semua output (SHA-256) segera setelah akuisisi dan catat di chain of custody.
- Catat waktu setiap tindakan, beserta selisih system clock terhadap waktu referensi.
- Dokumentasikan setiap perubahan yang Anda sebabkan pada sistem - transparansi lebih baik daripada kontaminasi tersembunyi.




























