Uploaded by pancenoyeaenjeaye

Michael Hale Ligh Andrew Case Jamie Levy Aaron Walters The Art of-291-306

advertisement
Machine Translated by Google
9 Log Peristiwa
Log peristiwa
berisi
banyak
informasi
merupakan
bahan
pokok
di hampir
investigasi.
Mereka
berisi
rincianforensik
tentang dan
kesalahan
aplikasi
(seperti
ketika
Word semua
lumpuhjenis
setelah mengeksploitasi heap-spray), login interaktif dan jarak jauh, perubahan dalam kebijakan
firewall, dan peristiwa lain yang terjadi pada sistem. Dikombinasikan dengan stempel waktu yang
disertakan dengan setiap peristiwa, log dapat membantu Anda menentukan dengan tepat apa yang
terjadi pada sistem, atau setidaknya memberi Anda kerangka waktu untuk memfokuskan sisa upaya Anda.
Bab ini membahas cara menemukan log kejadian di RAM dan menguraikannya untuk tujuan
forensik. Banyak dari file log dipetakan ke dalam memori selama waktu berjalan sistem, sehingga
biasanya ditemukan ratusan, bahkan ribuan, catatan individu dalam dump memori.
Dalam beberapa kasus, Anda bahkan mungkin dapat mengekstrak entri setelah ditandai untuk
dihapus oleh administrator atau dibersihkan secara jahat oleh penyerang.
Log Peristiwa di Memori
Karena rekaman kejadian direkam selama waktu berjalan sistem, masuk akal jika Anda akan
menemukan rekaman ini, atau bahkan file log kejadian, di memori. Untuk menemukan rekaman atau
log peristiwa, pertama-tama Anda perlu mengetahui strukturnya—seperti apa tampilannya dan di
mana menemukannya secara konsisten—karena metodologi sangat bervariasi bergantung pada
sistem operasi target.
Tujuan Analisis
Tujuan Anda adalah ini:
• Temukan log peristiwa di memori: Dimulai dengan Vista, Microsoft membuat beberapa
perubahan penting pada fasilitas log peristiwa. Untuk bekerja dengan log peristiwa di berbagai
versi Windows, Anda perlu memahami dan memperhitungkan perbedaannya.
Machine Translated by Google
266 Bagian II: Forensik Memori Windows
• Memproses log peristiwa: Pelajari kapan mengurai rekaman dari memori dengan Volatilitas dan kapan
mengekstrak file log untuk dianalisis dengan alat eksternal. • Deteksi login brute force: Pelajari cara
mengidentifikasi upaya login brute force
menganalisis pesan kegagalan di log peristiwa.
• Identifikasi pintu belakang: Mendeteksi perubahan pada kebijakan firewall dan konflik port server,
yang seringkali dapat menunjukkan aktivitas pintu belakang.
• Identifikasi log peristiwa yang dihapus: Pelajari apa yang terjadi ketika log peristiwa dihapus dan cara
menentukan apakah kode berbahaya atau penyerang telah mencoba menghapus log.
Struktur data
Keluaran berikut menunjukkan anggota terpilih dari struktur log peristiwa Windows XP dan 2003. Harlan Carvey juga
mendokumentasikan struktur log peristiwa di blognya (http://windowsir.blogspot.com/2007/06/eventlog-analysis.html).
EVTLogHeader adalah struktur yang digunakan sebagai header file log peristiwa, sedangkan EVTRecordStruct adalah
untuk rekaman individual.
>>> dt("EVTLogHeader")
'EVTLogHeader' (48 byte) 0x0 :
HeaderSize
['unsigned int'] ['int']
0x4
: Sihir
0x10 : OffsetLama
['unsigned int'] ['unsigned
0x14 : OffsetBerikutnyaMenulis
int'] ['int'] ['unsigned int']
int'] ['int'] ['int'] ['unsigned
0x18 : ID Berikutnya
0x1c : ID Terlama
0x20 : Ukuran Maks
0x28 : Waktu Retensi
0x2c : Ukuran Rekam
>>> dt("EVTRecordStruct")
'EVTRecordStruct' (56 byte)
0x0 : Panjang Rekaman
0x4
: Sihir
0x8
['unsigned int'] ['int'] ['int']
: Nomor Rekam
0xc : Dihasilkan Waktu
['UnixTimeStamp', {'is_utc': Benar}]
0x10 : Waktu Tertulis
['UnixTimeStamp', {'is_utc': True}] ['unsigned short']
0x14 : ID Peristiwa
0x18 : EventType 0x1a :
['Enumerasi', [snip] ['unsigned
NumStrings [snip]
short']
Poin Kunci
Poin-poin utamanya adalah sebagai berikut:
• OldestID: ID dari catatan log peristiwa terlama dalam file.
Machine Translated by Google
Log Peristiwa 267
• Sihir: Tanda tangan log peristiwa dan rekamannya. Tanda tangan ini
adalah LfLe. • NextID: ID dari rekaman log peristiwa berikutnya yang akan
ditulis. • RecordLength: Panjang record log peristiwa, yang dapat bervariasi,
tergantung pada record, karena string pesan berbeda untuk setiap jenis pesan.
• RecordNumber: ID dari record dalam event log. • TimeGenerated:
Stempel waktu yang menunjukkan kapan peristiwa dihasilkan (UTC). • TimeWritten: Stempel
waktu yang menunjukkan kapan catatan peristiwa ditulis (UTC). • EventID: ID yang menjelaskan
jenis peristiwa apa yang telah terjadi. • NumStrings: Jumlah pesan yang disertakan dengan
catatan yang membantu mendeskripsikan kejadian. Anda mungkin memerlukan templat pesan
yang sesuai untuk menginterpretasikan arti string dengan benar. Untuk informasi
selengkapnya tentang cara menemukan template, lihat catatan di akhir bagian "Log Kejadian
Windows 2000, XP, dan 2003" di bab selanjutnya.
Log Peristiwa Windows 2000, XP, dan 2003
Di Windows 2000, XP, dan 2003, log peristiwa memiliki format rekaman biner yang sama. Log default
adalah Aplikasi, Sistem, dan Keamanan, dan lokasi penyimpanan default pada disk untuk log ini ada
di %systemroot%\system32\config. Log peristiwa ini juga dipetakan di ruang alamat proses
services.exe .
Menemukan File Log
Peristiwa Anda dapat mengetahui dengan tepat segmen memori mana yang menyimpan data file
dengan menemukan proses service.exe dan mencari nama file log peristiwa (ekstensi .Evt), seperti
yang ditunjukkan pada output berikut.
$ python vol.py -f XPSP3.vmem --profile=WinXPSP3x86 pslist | layanan grep Volatility Foundation Volatility
Framework 2.4 0x81d97020 services.exe
692
648
16 352 0 0 27-12-2010 21:34:32
$ python vol.py -f XPSP3.vmem --profile=WinXPSP3x86 vadinfo -p 692
[menggunting]
Node VAD @ 0x8230af40 Mulai 0x009c0000 Akhir 0x009cffff Tag Vad
Bendera: Perlindungan: 4
Perlindungan: PAGE_READWRITE
ControlArea @82040f50 Segmen e16ad7d8
Daftar dereferensi: Kedip 00000000, Kedip 00000000
Referensi NumberOfSection:
1 NumberOfPfnReferensi:
NumberOfMappedViews:
1 NumberOfUserReferences:
WaitingForDeletion Acara: 00000000 Bendera
Kontrol: Diakses: 1, File: 1, HadUserReference: 1 FileObject @82040ed8, Nama:
\WINDOWS\system32\config\SecEvent.Evt [snip]
1
2
Machine Translated by Google
268 Bagian II: Forensik Memori Windows
Anda sekarang tahu cara menemukan log peristiwa di memori, tetapi apa yang Anda lakukan
selanjutnya? Anda dapat membuang bagian VAD dan mengurainya dengan alat di luar Volatilitas,
tetapi Anda sebaiknya mengurai log peristiwa langsung dari memori.
CATATAN
Log peristiwa Windows XP/2003 memiliki ukuran maksimum dan diperlakukan sebagai buffer cincin.
Ini berarti bahwa saat ukuran maksimum tercapai, penunjuk untuk menulis ke log membungkus
catatan terlama dan menimpanya dengan data baru. Metodologi ini dapat merusak beberapa alat
karena catatan parsial dapat merusak apa yang diharapkan alat untuk dilihat—belum lagi fakta
bahwa beberapa potongan file log mungkin tidak tersedia karena paging.
Mengekstrak Log Peristiwa
Plugin evtlogs (hanya Windows XP dan 2003) menemukan dan mem-parsing catatan log peristiwa
untuk Anda secara otomatis. Itu juga dirancang untuk menangani log peristiwa yang rusak dengan data
yang hilang atau ditimpa. Plugin ini bekerja dengan terlebih dahulu menemukan proses services.exe
dan kemudian mencari memorinya untuk log peristiwa. Itu kemudian memecah setiap log berdasarkan
sihirnya (LfLe) dan mem-parsing setiap catatan menggunakan struktur yang ditentukan di awal bab ini.
Plugin evtlogs juga memiliki opsi untuk membuang log mentah jika Anda ingin memprosesnya
menggunakan alat di luar Volatilitas. Berikut ini menunjukkan kepada Anda contoh output dari
menjalankan plugin terhadap sampel memori publik (http://sempersecurus.blogspot.com/2011/04/ usingvolatility-to-study-cve-2011-6011.html) diperoleh setelah mengakses Dokumen Word dengan eksploit
Flash tertanam:
$ python vol.py -f cve2011_0611.dmp --profile=WinXPSP3x86 evtlogs -v --save-evt -D output/ Volatility Foundation
Volatility Framework 2.4 Menyimpan file .evt mentah ke osession.evt
Data yang diurai dikirim ke osession.txt
Menyimpan file .evt mentah ke internet.evt
Data yang diurai dikirim ke internet.txt
File .evt mentah disimpan ke appevent.evt Data di-parsing
dikirim ke appevent.txt File .evt mentah disimpan ke odiag.evt
Data di-parsing dikirim ke odiag.txt File .evt mentah disimpan ke
sysevent.evt Data di-parsing dikirim ke sysevent.txt Disimpan
mentah file .evt ke secevent.evt
Data yang diurai dikirim ke secevent.txt
Machine Translated by Google
Log Peristiwa 269
Karena contoh ini menggunakan opsi --save-evt , plugin membuat file .evt (log peristiwa
biner mentah) dan file .txt (catatan yang diuraikan dalam format teks) untuk setiap file log.
Output dari file teks yang diurai adalah dalam format berikut:
Tanggal/Waktu | Nama Log | Nama Komputer | SID | Sumber | ID Acara | Jenis Acara
| Rangkaian Pesan
Mengetahui hal ini, Anda dapat memeriksa keluaran dari log osession.evt .
$ cat osession.txt
10-04-2011 09:14:22 UTC+0000|osession.evt|FINANCE1|T/A| Microsoft
Office 12 Sesi|7000|Info| 0;Microsoft Office
Word;12.0.4518.1014;12.0.4518.1014;1368;0
10-04-2011 09:33:40 UTC+0000|osession.evt|FINANCE1|T/T| Microsoft
Office 12 Sesi|7000|Info| 0;Microsoft Office
Word;12.0.6425.1000;12.0.6425.1000;1086;60
[menggunting]
10-04-2011 22:29:44 UTC+0000|osession.evt|FINANCE1|T/T| Microsoft
Office 12 Sesi|7000|Info| 0;Microsoft Office
Word;12.0.6545.5000;12.0.6425.1000;80;60
10-04-2011 22:30:18 UTC+0000|osession.evt|FINANCE1|T/T| Microsoft
Office 12 Sesi|7003|Peringatan| 0;Microsoft Office
Word;12.0.6545.5000;12.0.6425.1000
[menggunting]
Perhatikan bahwa ada catatan level Peringatan dengan ID 7003, yang berarti bahwa aplikasi
Microsoft Office tiba-tiba berhenti. Informasi ini relevan dengan penyelidikan karena vektor
infeksi adalah eksploit Flash yang disematkan. Di Bab 18, Anda belajar bagaimana membuat
garis waktu dan melihat bagaimana kejadian ini digabungkan dengan kejadian lain melukiskan
gambaran yang jelas tentang serangan itu.
Kebijakan Logging
Secara default, log peristiwa Keamanan dimatikan di Windows XP. Oleh karena itu, Anda harus
memeriksa pengaturan audit di registri (HKLM\SECURITY\Policy\PolAdtEv) untuk memverifikasi
jenis kejadian yang diharapkan. Perintah berikut menunjukkan cara melakukan pemeriksaan
dengan menggunakan plugin auditpol (S berarti "operasi yang berhasil dicatat", dan F berarti
"operasi yang gagal dicatat"):
$ python3 vol.py -f XPSP3x86.vmem auditpol --profile=WinXPSP3x86 Fondasi
Volatilitas Kerangka Kerja Volatilitas 2.4 Audit Diaktifkan Peristiwa Sistem Audit: S/F
Peristiwa Logon Audit: S/F
Machine Translated by Google
270 Bagian II: Forensik Memori Windows
Akses Objek Audit: Tidak Dicatat
Penggunaan Hak Istimewa Audit: Tidak Dicatat
Pelacakan Proses Audit: Tidak Dicatat
Perubahan Kebijakan Audit: S
Manajemen Akun Audit: S/F
Akses Layanan Dir Audit: S/F
Peristiwa Logon Akun Audit: S/F
CATATAN
Referensi yang bagus untuk mencari ID log peristiwa dan string pesan adalah
sebagai berikut: http://go.microsoft.com/fwlink/events.asp http://www.eventid.net/
http://blogs.msdn.com/b /ericfitz/ http://www.ultimatewindowssecurity.com/securitylog/
encyclopedia/Default.aspx
Windows Vista, 2008, dan 7 Log Peristiwa
Log peristiwa Windows Vista, 2008, dan 7 (yang akan kami sebut "Evtx", berdasarkan ekstensinya)
disimpan dalam format file yang sama sekali berbeda dari yang dijelaskan di bagian sebelumnya.
Secara khusus, log ini dimuat dalam format biner XML. Pada mesin biasa, Anda dapat menemukan
lebih dari 60 log ini pada disk di %systemroot%\system32\ winevt\Logs. Jumlah log yang begitu
tinggi meningkatkan peluang untuk menemukan catatan yang menarik pada mesin yang disusupi.
Selain itu, string deskripsi terdapat dalam log peristiwa ini (tidak seperti log XP/2003), yang
membuatnya lebih mudah untuk diselidiki tanpa memiliki akses ke disk mesin target.
CATATAN
Untuk menemukan ID keamanan yang setara untuk mesin Windows Vista, 2008, dan 7,
tambahkan 4096 ke ID yang digunakan untuk Windows XP/2003. Misalnya, untuk menemukan
kejadian yang terkait dengan seseorang yang masuk ke mesin Windows 7, ID yang diinginkan
adalah 4624, bukan 528. Untuk informasi lebih lanjut, lihat http://blogs.msdn.com/b/ericfitz/
archive/2007/04/18/vista-security-events-get-noticed.aspx.
Log peristiwa yang lebih baru tidak dipetakan dalam memori dengan cara yang sama seperti
yang lama. Oleh karena itu, metodologi untuk menangani log ini sangat berbeda—Anda harus
mengekstrak log dari memori menggunakan plugin dumpfiles (lihat Bab 16) dan kemudian
mengurainya dengan alat di luar Volatilitas. Anda dapat memilih metodologi yang ditargetkan
(menemukan dan membuang log peristiwa pilihan) atau Anda dapat memilih untuk membuang
semua log peristiwa dengan memanfaatkan kemampuan pencocokan pola (ekspresi reguler) plugin dumpfiles . Milikm
Machine Translated by Google
Log Peristiwa 271
pendekatan tergantung pada apa yang Anda cari dan seberapa banyak konteks yang Anda berikan sebelum
penyelidikan Anda. Misalnya, jika Anda mencoba membuktikan bahwa seseorang masuk ke mesin, Anda mungkin
hanya memeriksa log kejadian Keamanan. Namun, jika Anda tidak yakin apa masalah yang mendasari mesin, Anda
mungkin membuang semua log peristiwa.
CATATAN
Beberapa alat yang kami gunakan sebelumnya untuk mem-parsing log peristiwa Evtx meliputi:
• Evtxparser: http://computer.forensikblog.de/en/2011/11/evtx-parser-1-1-1
.html
• EVTXtract: https://github.com/williballenthin/EVTXtract • Python-evtx: http://
www.williballenthin.com/evtx/index.html • Libevtx: http://code.google.com/p/libevtx /
Proyek EVTXtract sangat berguna, karena akan mencoba menggunakan templat pesan yang dikenal untuk
merekonstruksi pesan yang rusak atau hilang. Dengan kata lain, pembuat alat berupaya menangani file yang
dibuang dari memori dengan data yang hilang karena paging.
Untuk membuang semua file Evtx dari sampel memori, Anda dapat menggunakan perintah berikut:
$ python3 vol.py –f Win7SP1x86.vmem --profile=Win7SP1x86 file dump
--regex .evtx$ --ignore-case --dump-dir
output Volatility Foundation Volatility
Framework 2.4 DataSectionObject 0x8509eba8 756
\Device\HarddiskVolume1\Windows\System32\
winevt\Logs\Microsoft-Windows-Diagnostics-Performance%4Operational.evtx
SharedCacheMap 0x8509eba8 756
\Device\HarddiskVolume1\Windows\System32\
winevt\Logs\Microsoft-Windows-Diagnostics-Performance%4Operational.evtx \Device
0x83eaec48 756 winevt\Logs\Microsoft-Windows-Kernel-WHEA%4Errors.evtx
\HarddiskVolume1\Windows\System32\
\Device\HarddiskVolume1\Windows\System32\
DataSectionObject
SharedCacheMap 0x83eaec48 756 winevt\Logs\Microsoft-Windows-Kernel-WHEA% .evtx DataSectionObject
0x845bcab0 756 [snip]
Semua file yang diekstraksi akan berada di direktori keluaran Anda. Anda kemudian dapat menggunakan file Linux
utilitas untuk memverifikasi bahwa log dibuang:
$ file output/* output/
file.756.0x83f92518.vacb: output data/
file.756.0x83f95ea0.vacb: output data/
file.756.0x8404b008.vacb: MS Windows Vista Event Log, 2 potongan
(no. 1 sedang digunakan), catatan berikutnya no. 82
output/file.756.0x8408fa60.vacb: data output/
file.756.0x84090418.dat: MS Windows Vista Event Log, 1 potongan
Machine Translated by Google
272 Bagian II: Forensik Memori Windows
(no. 0 sedang digunakan), catatan berikutnya no. 5
output/file.756.0x840a2e38.vacb: Log Peristiwa MS Windows Vista, 1 potongan
(no. 0 sedang digunakan), catatan berikutnya no. 2
[potong]
Beberapa file yang diekstraksi mungkin mengatakan data alih-alih MS Windows Event Vista Event Log
karena header untuk log atau log itu sendiri ditukar dari memori pada saat akuisisi. Apa pun kasusnya, Anda
harus menyelidiki file ini untuk melihat apakah Anda dapat menemukan rekaman sebagian. Berikut ini
menunjukkan cara menyelidiki salah satu log ini dengan utilitas evtxdump.pl dari Evtxparser :
$ evtxdump.pl output/file.756.0x8404b008.vacb <?xml version="1.0"
encoding="utf-8" standalone="yes" ?>
<Acara>
<Acara xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<Sistem>
<Nama Penyedia = "Microsoft-Windows-Application-Experience"
Guid="{EEF54E71-0661-422D-9A98-82FD4940B820}" />
<EventID>900</EventID>
<Versi>0</Versi>
<Tingkat>4</Tingkat>
<Tugas>0</Tugas>
<Opcode>0</Opcode>
<Kata Kunci>0x0800000000000000</Kata Kunci>
<TimeCreated SystemTime="1341520633" />
<EventRecordID>1</EventRecordID>
<Korelasi />
<Eksekusi ProcessID="3336" ThreadID="3580" /> [snip]
Seperti yang Anda lihat, output berisi semua informasi tentang peristiwa yang terjadi
dihasilkan. Secara khusus, Anda dapat melihat bidang-bidang berikut:
• Nama Penyedia: Memberi tahu Anda dari log mana informasi ini diambil. • ID Peristiwa :
Berisi ID peristiwa yang akan Anda cari secara online untuk mencari tahu peristiwa apa yang terjadi. •
TimeCreated: Stempel waktu saat acara dibuat. • EventRecordID: ID rekaman, yang membantu
Anda mengetahui pengurutan
record yang dihasilkan.
Peringatan Tentang Log Peristiwa di Memori
Seperti disebutkan sebelumnya, meskipun catatan kejadian ditemukan di memori, seluruh file log tidak akan
tersedia dalam banyak kasus. Ini berarti bahwa secara teoritis Anda dapat memiliki catatan yang relevan
dengan kasus Anda di log peristiwa pada disk, tetapi tidak di memori. Seperti kebanyakan artefak dalam
memori, rekaman log peristiwa memiliki peluang retensi yang lebih tinggi jika memang demikian
Machine Translated by Google
Log Peristiwa 273
baru saja dibuat atau diakses. Ini adalah kabar baik jika Anda mendapatkan memori dekat dengan
waktu kompromi, tetapi kabar buruk sebaliknya.
Selain itu, musuh dapat menghapus log peristiwa pada mesin menggunakan fungsi
ClearEventLog . Fungsi ini menangani log peristiwa dan lokasi cadangan sebagai parameter.
Jika lokasi cadangan tidak diberikan (yaitu, NULL), log akan dihapus dari disk dan memori. Definisi
fungsi yang diperoleh dari MSDN (http://msdn.microsoft.com/en-us/ library/windows/desktop/
aa363637%28v=vs.85%29.aspx) ditampilkan dalam kode berikut:
BOOL ClearEventLog(
_Dalam_ HANDLE hEventLog,
_In_ LPCTSTR lpBackupFileName );
CATATAN
Berikut adalah contoh skrip Visual Basic (sumber aslinya adalah http://technet .microsoft.com/
library/ee176696.aspx) yang kami modifikasi untuk menghapus log Keamanan.
Baris yang dimulai dengan apostrof adalah komentar di Visual Basic:
strKomputer = "."
' Dapatkan izin yang tepat untuk mengakses log dan mencadangkannya Atur
objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Security)}!
_
\\" &
_
strKomputer & "\root\cimv2")
' Temukan log peristiwa yang ingin kami hapus dan dapatkan pegangannya. Dalam
'
hal ini Anda ingin menghapus log peristiwa Keamanan.
Tetapkan colLogFiles = objWMIService.ExecQuery
("Pilih * dari Win32_NTEventLogFile "
_
_
& "Di mana LogFileName='Keamanan'")
' Karena kami tidak menetapkan BackupEventLog() kami kehilangan '
log saat dihapus di bawah ' Untuk setiap log yang dikumpulkan di atas
(dalam hal ini hanya Keamanan)
Untuk Setiap objLogfile di colLogFiles ' Hapus log
objLogFile.ClearEventLog()
' Cetak pernyataan bahwa itu telah dihapus.
WScript.Echo "Berkas log peristiwa yang dihapus"
Lanjut
Jika Anda menempatkan kode sebelumnya ke dalam file bernama clearevt.vbs, Anda dapat menjalankannya
seperti ini:
C:\> cscript clearevt.vbs
Microsoft (R) Windows Script Host Versi 5.7 Hak Cipta (C) Microsoft
Corporation. Seluruh hak cipta.
File log peristiwa dihapus
Machine Translated by Google
274 Bagian II: Forensik Memori Windows
Karena Anda harus menentukan masing-masing log yang ingin Anda hapus, penyerang terkadang
lupa untuk menghapus log yang diinginkan, seperti yang akan Anda lihat di salah satu contoh kasus
di akhir bab ini. Namun, ada solusi untuk menghapus semua log (lihat http://blogs.msdn.com/b/
jjameson/archive/2011/03/01/script-to-clear-and-save-event-logs.aspx). Di sisi lain, tindakan ini
membuat sangat jelas bahwa ada sesuatu yang salah jika tiba-tiba semua log kosong atau jika
seseorang melihat ada lonjakan tambahan dalam aktivitas mesin saat menghapus log ini. Sebagian
besar penyerang yang kami temui biasanya tidak menghapus semua log peristiwa.
Hanya karena log peristiwa dihapus bukan berarti Anda harus putus asa. Jika log Keamanan
kosong atau jarang, dan Anda tahu bahwa peristiwa harus dicatat karena Anda menggunakan plugin
auditpol , itu sendiri merupakan indikasi bahwa log peristiwa telah dihapus. Jika Anda memiliki image
disk forensik dari mesin yang dicurigai, Anda mungkin dapat mengambil catatan log peristiwa yang
berguna dari titik pemulihan, salinan bayangan volume, atau bahkan dari ruang yang tidak terisi.
Jika Anda tidak memiliki gambar disk, maka Anda dapat memindai ruang alamat fisik
dump memori untuk catatan menggunakan tanda tangan LfLe (Evt ) atau ElfChnk (Evtx),
dan Anda mungkin cukup beruntung untuk memulihkan catatan sejarah. Willi Ballenthin
menulis alat yang dapat Anda gunakan di luar Volatilitas untuk kedua kasus; mereka
secara tepat disebut LfLe (https://github.com/williballenthin/LfLe) dan EVTXtract (https://
github.com/williballenthin/EVTXtract).
CATATAN
Menghapus log peristiwa sebenarnya juga membuat artefak baru. Misalnya, peristiwa baru (ID
517) akan ditambahkan ke log Keamanan untuk menunjukkan bahwa Log Keamanan telah dihapus.
Ini berguna karena juga berisi stempel waktu kapan log dibersihkan:
05-12-2013 00:07:10 UTC+0000|secevent.evt|NAMA-KOMPUTER|S-1-5-18 (Sistem Lokal)
|Keamanan|517|Sukses|SISTEM; OTORITAS NT;(0x0,0x3E7);
Administrator;DOMAIN;(0x0,0x11544)
Berikut ini adalah pesan yang direkonstruksi:
Log audit telah dihapus
Nama Pengguna Utama: SYSTEM
Domain Utama: OTORITAS NT
ID Masuk Utama: (0x0,0x3E7)
Nama Pengguna Klien: Administrator
Domain Klien: DOMAIN
ID Masuk Klien: (0x0,0x11544)
Machine Translated by Google
Log Peristiwa 275
Contoh Kasus Nyata
Log peristiwa yang diambil dari memori sering kali terbukti bermanfaat dalam penyelidikan kami. Untuk
contoh di bagian ini, beberapa informasi, seperti alamat IP dan tanggal, telah disunting untuk
melindungi identitas korban.
Kasus Pendengar yang Tidak Berhasil
Penyerang sering kali suka memasang pintu belakang pada mesin yang disusupi. Ini membantu
mereka dengan mudah terhubung ke mesin di waktu senggang mereka. Output berikut adalah dari
plugin evtlogs pada log peristiwa Keamanan mesin yang dicurigai yang menunjukkan upaya aplikasi
yang gagal untuk menyiapkan port mendengarkan (ID peristiwa 861):
XXXX-XX-XX 23:18:46 UTC+0000|secevent.evt|XXXX|
S-1-5-21-1417001333-1647877149-682003330-500(Administrator)|Keamanan| 861|Kegagalan|wauclt;C:
\WINDOWS\system32\wauclt.exe;1900;Administrator; XXXX;Tidak;Tidak;IPv4;TCP;9999;Tidak;Tidak
XXXX-XX-XX 23:36:36 UTC+0000|secevent.evt|XXXX|
S-1-5-21-1417001333-1647877149-682003330-500(Administrator)|Keamanan| 861|Kegagalan|wauclt;C:
\WINDOWS\system32\wauclt.exe;2312;Administrator; XXXX;Tidak;Tidak;IPv4;TCP;9999;Tidak;Tidak
Dalam hal ini, kejadian ini mencurigakan karena file yang dapat dieksekusi (wauclt.exe) sebenarnya
tidak ada di mesin Windows secara default. Namanya telah dipilih sehingga tampak seperti proses
yang sah, wuauclt.exe, yaitu untuk pembaruan Windows (perhatikan bagian yang hilang ). Juga, jika
aplikasi yang dimaksud adalah sesuatu seperti notepad.exe (yang seharusnya tidak membuka port
sama sekali), log mungkin menunjukkan injeksi kode. Anda dapat membuat seluruh string pesan
dengan mencari template pesan secara online (http://www.eventid.net/ display.asp?
eventid=861&eventno=4615&source=Security&phase=1):
Nama: wauclt.exe
Jalur: C:\WINDOWS\system32\wauclt.exe
Pengidentifikasi proses: 2312
Akun pengguna: Administrator
Domain pengguna: XXXX (dihapus)
Layanan: Tidak
Server RPC: Tidak
Versi IP: IPv4
Protokol IP: TDP
Nomor pelabuhan: 9999
Diizinkan: Tidak
Pengguna diberitahu: Tidak.
Machine Translated by Google
276 Bagian II: Forensik Memori Windows
Kasus Logon yang Tidak Berhasil
Seperti yang telah Anda pelajari, peristiwa logon dan logoff dikumpulkan di log peristiwa Keamanan.
Dalam contoh berikut, dari server Windows 2003 yang disusupi, Anda melihat dua ID peristiwa 529
(upaya logon gagal) dan ID peristiwa 680. ID Peristiwa 680 bervariasi tergantung pada sistem
operasi mesin, tetapi melacak logon NTLM yang berhasil dan gagal untuk Windows 2003 mesin.
XXXX-XX-XX 15:19:20 UTC+0000|secevent.evt|XX|S-1-5-18 (Sistem Lokal)|Keamanan
|529|Gagal|administrator;ZZZZZ;3;NtLmSsp ;NTLM;ZZZZZ;-;-;-;-;-; 222.186.XX.XX;3054
XXXX-XX-XX 15:19:20 UTC+0000|secevent.evt|XX|S-1-5-18 (Sistem Lokal)|Keamanan
|680|Kegagalan|MICROSOFT_AUTHENTICATION_PACKAGE_V1_0;
administrator;ZZZZZ;0xC000006A
XXXX-XX-XX 15:19:20 UTC+0000|secevent.evt|XX|S-1-5-18 (Sistem Lokal)|Keamanan
|529|Gagal|administrator;ZZZZZ;3;NtLmSsp ;NTLM;ZZZZZ;-;-;-;-;-; 222.186.XX.XX;3061
Jika Anda mencari template pesan untuk event ID 529 (beberapa tautan dikutip sebelumnya di
bab ini), Anda mendapatkan lebih banyak konteks terkait peristiwa ini. String pesan lengkap yang
ditampilkan di penampil log peristiwa adalah teks berikut:
Kegagalan Logon
Alasan: Nama pengguna tidak dikenal atau kata sandi salah
Nama Pengguna: administrator
Domain: ZZZZZ (dihapus)
Tipe Logon: 3
Proses Logon: NtLmSsp
Paket Otentikasi: NTLM
Nama Workstation: ZZZZZ (dihapus)
Nama Pengguna Penelepon:-
Domain Penelepon:ID Logon Penelepon:ID Proses Penelepon:-
Layanan Transit:Alamat Jaringan Sumber: 222.186.XX.XX (dihapus)
Pelabuhan Sumber: 3061
Anda dapat melihat bahwa seseorang mencoba masuk sebagai administrator melalui jaringan
(Logon Type: 3), dan alamat IP jarak jauh berasal dari China (222.186.XX.XX). Karena mesin korban
berlokasi di Amerika Serikat, dan perusahaan pemilik tidak memiliki personel yang berlokasi di
China, aman untuk mengatakan bahwa ini bukan upaya logon yang valid. Jika Anda memeriksa
catatan peristiwa lain dengan ID 680 dengan cara yang sama, Anda akan mendapatkan lebih banyak
konteks mengapa logon ini tidak berhasil:
Upaya logon oleh: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
Machine Translated by Google
Log Peristiwa 277
Masuk akun: administrator
Workstation Sumber: ZZZZZ (dihapus)
Kode Kesalahan: 0xC000006A
Kode kesalahan untuk acara ini didokumentasikan dengan baik (http://www.ultimatewindowssecurity .com/securitylog/
encyclopedia/event.aspx?eventid=680). Anda dapat melihat bahwa 0xC000006A berarti penyerang menggunakan nama
pengguna yang valid di sistem, tetapi kata sandi salah.
Jenis acara ini menunjukkan salah satu dari tiga hal:
• Akun adalah akun default untuk mesin • Penyerang telah melakukan
pengintaian sistem sebelumnya • Penyerang terlibat dalam upaya kekerasan untuk menebak
kredensial pada sistem
Dalam contoh ini, administrator adalah akun default. Namun, jika nama akun adalah sesuatu yang lain seperti
gstanley, dan Anda hanya menemukan beberapa upaya yang gagal (yaitu, bukan serangan brute force), Anda akan tahu
pasti bahwa penyerang telah melakukan pekerjaan rumah mereka.
Kasus Brute Forcer yang Tidak Sabar
Penyerang sering kali tidak memiliki kredensial yang valid untuk sebuah mesin saat mereka pertama kali menemukannya.
Dalam kasus tersebut, seperti yang baru saja kami jelaskan, mereka mungkin mencoba menerka dengan menggunakan
aplikasi yang mencoba beberapa kombinasi nama pengguna dan kata sandi. Upaya ini juga terwujud dalam log peristiwa
dan dapat menunjukkan bahwa mesin menjadi sasaran serta apakah penyerang berhasil mendapatkan akses. Dalam
kode berikut, Anda dapat melihat data log peristiwa yang mengilustrasikan jenis serangan ini pada mesin Windows 2003:
XXXX-XX-XX 14:49:07 UTC+0000|secevent.evt|XX|S-1-5-18 (Sistem Lokal)|Keamanan| 680|Kegagalan|
MICROSOFT_AUTHENTICATION_PACKAGE_V1_0;administrator; DDDDDD;0xC000006A
XXXX-XX-XX 14:49:07 UTC+0000|secevent.evt|XX|S-1-5-18 (Sistem Lokal)|Keamanan|
529|Kegagalan|administrator;DDDDDD;3;NtLmSsp ;NTLM;
DDDDDD;-;-;-;-;-;XXX.XXX.XXX.XXX;0
XXXX-XX-XX 14:49:08 UTC+0000|secevent.evt|XX|S-1-5-18 (Sistem Lokal)|Keamanan|
529|Kegagalan|administrator;DDDDDD;3;NtLmSsp ;NTLM;
DDDDDD;-;-;-;-;-;XXX.XXX.XXX.XXX;0
XXXX-XX-XX 14:49:08 UTC+0000|secevent.evt|XX|S-1-5-18 (Sistem Lokal)|Keamanan| 680|Kegagalan|
MICROSOFT_AUTHENTICATION_PACKAGE_V1_0;administrator; DDDDDD;0xC000006A [snip]
Machine Translated by Google
278 Bagian II: Forensik Memori Windows
Perhatikan bahwa kegagalan logon terjadi secara berurutan satu sama lain—dalam hal ini, dua upaya per detik.
Secara total, lebih dari 600 catatan seperti itu terjadi, semuanya dalam rentang waktu singkat. Alamat IP (dihapus)
juga ditentukan tidak memiliki alasan untuk terhubung ke mesin target.
Anda juga dapat menemukan bukti upaya kekerasan di log peristiwa sistem. Sebagai contoh, keluaran berikut
menunjukkan serangan terhadap sistem yang menjalankan layanan FTP Microsoft.
XXXX-XX-XX 13:34:38 UTC+0000|sysevent.evt|XXXX|T/A|MSFTPSVC|100|Peringatan| USERNAME
DIHAPUS;Kegagalan masuk: nama pengguna tidak dikenal atau kata sandi salah.
XXXX-XX-XX 13:34:38 UTC+0000|sysevent.evt|XXXX|T/A|MSFTPSVC|100|Peringatan| USERNAME
DIHAPUS;Kegagalan masuk: nama pengguna tidak dikenal atau kata sandi salah.
XXXX-XX-XX 13:34:39 UTC+0000|sysevent.evt|XXXX|N/A|MSFTPSVC|100|Peringatan| USERNAME
DIHAPUS;Kegagalan masuk: nama pengguna tidak dikenal atau kata sandi salah.
XXXX-XX-XX 13:34:39 UTC+0000|sysevent.evt|XXXX|N/A|MSFTPSVC|100|Peringatan| USERNAME
DIHAPUS;Kegagalan masuk: nama pengguna tidak dikenal atau kata sandi salah. [menggunting]
Sekali lagi, Anda melihat enam upaya masuk per detik menggunakan nama pengguna yang disunting. Ini sebuah
contoh pesan yang direkonstruksi:
Jenis Acara: Peringatan
Sumber Acara: MSFTPSVC
Kategori Acara: Tidak ada
ID Peristiwa: 100
Tanggal: X/X/XXXX
Waktu: 13:34:39
Pengguna: T/A
Komputer: XXXX
Deskripsi: Server tidak
dapat masuk ke akun Windows NT 'ZZZZ' karena kesalahan berikut: Kegagalan logon: nama pengguna tidak
diketahui atau sandi salah.
Kasus Penghapus Log
Seperti yang disebutkan sebelumnya, penyerang sering kali mencoba menghapus log peristiwa untuk menutupi jejak
mereka di mesin. Kami memiliki satu kasus di mana penyerang masuk ke mesin menggunakan kredensial curian
dan memulai pekerjaan di komputer lain menggunakan serangkaian kredensial curian yang berbeda. Tujuan kami
adalah melacak kedua akun yang disusupi untuk menonaktifkannya. Penyerang cukup pintar untuk menghapus log
peristiwa Keamanan serta beberapa lainnya yang akan membantu. Selain itu, kami tidak memiliki hard disk untuk
mencari ruang yang tidak terisi untuk catatan yang hilang. Untungnya, penyerang tidak menyadari bahwa ada log
peristiwa lain (Microsoft-Windows-TaskScheduler.evtx) yang berisi
Machine Translated by Google
Log Peristiwa 279
informasi yang kami butuhkan. Log ini merupakan penghuni memori dan memiliki catatan yang
mengarahkan kami langsung ke akun yang perlu kami nonaktifkan:
<TimeCreated SystemTime="XXXX-XX-XXT02:09:45.4119Z"/>
<EventRecordID>320320</EventRecordID> <Correlation/> <Execution
ProcessID="1120" ThreadID="8364" /> <Saluran>Microsoft-Windows
-TaskScheduler/Operasional</Channel> <Komputer>[DISUNTING]</
Komputer> <UserID="S-1-5-18" /></System Keamanan>
<EventData Name="TaskUpdated">
<Data Name="TaskName">\At2</Data>
<Data Name="UserName">DOMAIN\[DISUNTING]</Data></EventData></Event>
<Event xmlns ="http://schemas.microsoft.com/win/2004/08/events/event">
<Sistem>
Ringkasan
Selama penyelidikan, catatan log peristiwa Window sering memainkan peran penting dalam
merekonstruksi peristiwa suatu insiden. Mereka dapat memberikan wawasan berharga tentang
sejarah tentang apa yang terjadi dan kapan itu terjadi. Sementara penyelidik biasanya berfokus
pada catatan yang mereka temukan di disk, memori yang mudah menguap menyediakan sumber
berharga lainnya untuk artefak ini. Memahami cara mengekstrak dan menganalisis rekaman
penghuni memori tersebut di berbagai versi Windows memberikan kemampuan yang kuat untuk penyelidik digital.
Machine Translated by Google
Download