Akun lokal SAM¶
Apa isi SAM¶
Hive Security Account Manager (SAM) menyimpan record akun lokal. Juntei mendekode nama
akun, RID, field profil/komentar, flag kontrol akun, timestamp logon terakhir/kata sandi, penghitung,
petunjuk kata sandi, keterkaitan akun Microsoft, path profil, dan apakah Windows menyembunyikan akun
dari UI sign-in.
Hal ini berguna untuk menemukan administrator lokal yang baru dibuat, akun dorman yang diaktifkan, perubahan kata sandi, akun tersembunyi, dan akun persiapan untuk pergerakan lateral.
Kesimpulan terbaik: SAM lokal merepresentasikan akun dengan kondisi yang tercatat. Ini bukan riwayat autentikasi yang lengkap dan tidak mendeskripsikan akun domain.
Lokasi dan pengumpulan¶
C:\Windows\System32\config\SAM
C:\Windows\System32\config\SAM.LOG1
C:\Windows\System32\config\SAM.LOG2
Kumpulkan hive dan log-nya dengan hak akses/akses raw yang memadai. Identitas host dapat diperkaya dari
hive SYSTEM yang bersesuaian dalam sebuah koleksi.
Peringatan bagi analis¶
- Perintah ini mengurai akun lokal, bukan pengguna domain Active Directory.
- Juntei dengan sengaja tidak mengekstrak hash kata sandi.
- RID 500 adalah akun Administrator bawaan meskipun telah di-rename; nama saja tidak cukup.
LastLogondan penghitung merupakan kondisi registry, bukan jejak audit per sesi yang lengkap.HiddenFromLogonUImenyembunyikan akun dari layar sign-in; ini tidak menonaktifkan akun.DefaultAccountdanWDAGUtilityAccountbawaan dapat disembunyikan secara sah.- Flag akun null dari nilai
Fyang rusak/tidak ada tidak boleh diinterpretasikan sebagai aktif. NamesKeyLastWrittenUTCmemperkirakan konteks pendaftaran nama akun tetapi bukan waktu pembuatan yang terjamin.
Mengurai dengan Juntei¶
Usage: juntei parse-registry sam <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Recursively find SAM hives
-f, --file <FILE> Parse one SAM hive
--log1/--log2 Supply transaction logs explicitly
--no-logs Do not replay logs
Filtering:
--rid <RID> Parse one decimal RID (example: 500)
Output:
-o, --output <FILE> Save records
-t, --output-type <TYPE> csv, json, or jsonl
juntei parse-registry sam -f SAM -o accounts.csv
juntei parse-registry sam -f SAM --rid 500 -t jsonl | jq .
juntei parse-registry sam -d evidence/ -t jsonl \
| jq 'select(.HiddenFromLogonUi == true or (.AccountFlags | index("disabled") | not))'
Field keluaran¶
| Field | Interpretasi |
|---|---|
Host, SourcePath |
Konteks host dan hive SAM yang tepat. |
RID |
Relative Identifier. Titik pivot identitas akun yang kuat; 500 adalah Administrator bawaan. |
User |
Nama akun lokal saat ini. Dapat di-rename; korelasikan berdasarkan RID. |
FullName, Comment, UserComment |
Teks deskriptif; dapat dikendalikan penyerang dan berguna untuk meninjau penyamaran (masquerading). |
AccountFlags |
Kondisi yang didekode seperti disabled, locked out, password not required, normal account, password never expires. |
AccountFlagsValue |
Flag numerik mentah untuk validasi dan bit yang tidak didukung. |
CountryCode, CodePage |
Metadata locale/code page akun; biasanya konteks, bukan atribusi. |
LastLogonUTC, LastLogonWholeSecondsUTC |
Kondisi logon terakhir yang sama dengan presisi penuh dan dalam detik utuh untuk kompatibilitas. Bukan riwayat yang lengkap. |
PasswordLastSetUTC |
Waktu perubahan kata sandi yang tercatat. Selidiki nilai yang secara tak terduga baru atau lama. |
AccountExpirationUTC |
Masa kedaluwarsa yang dikonfigurasi jika terbatas. Null dapat berarti tidak pernah/tidak diatur. |
LastFailedLogonUTC |
Logon lokal gagal terakhir yang tercatat dalam kondisi SAM; perkuat dengan peristiwa Security. |
FailedLogonCount, LogonCount |
Penghitung kumulatif/kondisi dengan perilaku pembaruan khas Windows; gunakan sebagai konteks, bukan jumlah peristiwa yang tepat. |
PasswordHint |
Petunjuk sensitif yang diberikan pengguna; dapat mengungkap pola kata sandi. Tangani dengan semestinya. |
InternetUserName |
Identitas akun Microsoft yang terkait, jika ada. |
HiddenFromLogonUI |
Kondisi penyembunyian dari UI. Tinjau RID tinggi/akun kustom yang tidak terduga; tidak berarti nonaktif. |
HomeDirectory, HomeDrive, ProfilePath, LogonScript |
Konfigurasi lingkungan/logon akun lokal; skrip/path UNC yang tidak biasa dapat mengindikasikan persistensi. |
KeyLastWrittenUTC |
Waktu perubahan key akun RID. Tingkat key, bukan spesifik per field. |
NamesKeyLastWrittenUTC |
Waktu perubahan key pemetaan nama pengguna; perkiraan siklus hidup akun yang berguna. |
LastLogonFiletime, PasswordLastSetFiletime, AccountExpirationFiletime, LastFailedLogonFiletime |
Nilai FILETIME 64-bit mentah yang dipertahankan untuk validasi dan penanganan nilai sentinel khusus. |
TransactionLogStatus, LogsApplied |
Konteks pemutaran ulang registry. |
Problems |
Ketidaksesuaian antara F/V/Names, entri yang hilang, offset yang tidak valid, atau kerusakan dekode. |
Strategi investigasi¶
- Bandingkan RID, nama, flag, path profil, dan
NamesKeyLastWrittenUTCdengan baseline host. - Tinjau akun RID 1000+ yang aktif, akun dengan password-not-required, tanpa masa kedaluwarsa, tersembunyi, atau yang baru diubah.
- Korelasikan dengan peristiwa Security 4720/4722/4724/4732, peristiwa logon, pembuatan profil, dan aktivitas jarak jauh.
- Telusuri riwayat pemulihan registry jika sebuah akun telah dihapus sebelum pengumpulan.
- Bedakan akun provisioning/default yang sah dari akun interaktif yang dibuat penyerang.