Bagaimana menemukan tanggal pembuatan akun pengguna lokal?

8

Saya ingin mendapatkan tanggal pembuatan akun pengguna lokal (Menangkan 7 jika penting). Saya telah melihat objek WMI berikut (dan tentu saja google):

Win32_UserAccount Win32_NetworkLoginProfile

Objek yang dikembalikan dari NetworkLoginProfilememiliki waktu login terakhir, tetapi bukan tanggal pembuatan. Memeriksa Date Createdproperti folder profil mereka hanya memberikan tanggal folder itu dibuat, belum tentu akun itu sendiri.

MDMoore313
sumber
2
Untuk menambahkan dari obrolan: Saya dapat melihat sarang pengguna di tanggal pembuatan registri, tapi itu hanya berdasarkan login pertama mereka, bukan tanggal pembuatan akun.
TheCleaner

Jawaban:

10

Data ada di SAM tetapi tampaknya tidak didokumentasikan secara publik oleh Microsoft dan saya tidak menemukan API resmi untuk mengambilnya. Saya dapat melihat, melihat kode sumber untuk chntpwutilitas yang nilainya disimpan dalam kunci registri "F" untuk setiap akun. Quoth kode sumber:

#define USER_F_PATH "\\SAM\\Domains\\Account\\Users\\%08X\\F"

struct user_F {
  ...
  char t_creation[8]; /* Time of account creation */
  ...
}

The regripper proyek forensik memiliki plugin, samparse yang akan melaporkan tanggal pembuatan akun.

Alat forensik mungkin bukan yang Anda inginkan, tetapi sepertinya Microsoft tidak membuatnya mudah.


Dalam meneliti ini saya merasa lucu bahwa Microsoft MVP tidak tahu bahwa data pembuatan akun disimpan di SAM . Untuk keuntungannya mungkin dia tidak jauh dari chntpwutilitas, di situlah saya memulai pencarian saya untuk informasi tentang struktur SAM tidak berdokumen.

Evan Anderson
sumber
ide-ide Anda menarik bagi saya dan saya ingin --- berlangganan buletin Anda --- , maksud saya belajar bagaimana menggunakan alat ini untuk mencoba ini sendiri. Apakah Anda, mungkin, memiliki hubungan yang mungkin saya manfaatkan untuk itu? (Sialan Anda penurunan harga!)
HopelessN00b
Hanya tautan ke proyek regripper di atas. Saya belum menggunakannya, secara pribadi, tetapi terlihat cukup mudah untuk ditangani. Sepertinya sudah dimasukkan dalam Kali Linux sekarang ( bugs.kali.org/print_bug_page.php?bug_id=246 ) jika Anda lebih suka boot CD langsung dibandingkan menginstal lingkungan Perl untuk menjalankan regripper. Rupanya ada buku yang ditulis di sekitar alat ini. Kelihatannya mahal: amazon.com/Windows-Registry-Forensics-Advanced-Forensic/dp/... Saya mungkin harus bermain-main dengan alat-alat ini di beberapa titik - Saya hanya belum punya kesempatan untuk itu.
Evan Anderson
Saya pikir Evan mungkin berutang permintaan maaf kepada Richard Mueller;)
charleswj81
Saya tidak mencoba alat. Apakah Anda mendapati bahwa tanggal tersebut tidak bertambah?
Evan Anderson
Tidak yakin apakah Anda melihat jawaban saya sendiri di bawah ini, tetapi bidang yang disebut "tanggal pembuatan" sebenarnya "kata sandi terakhir diubah", yang jelas akan menjadi nilai yang sama sampai kata sandi pembuatan pasca-akun pertama berubah.
charleswj81
3

Satu-satunya cara untuk benar-benar mengetahuinya adalah mengaktifkan audit manajemen akun pada saat menghitung r ketika akun dibuat. Kemudian, Anda akan melihat EventID 4720 di Log Peristiwa pada tanggal pembuatan. (Artikel tersebut mengatakan Active Directory, tetapi hal yang sama berlaku untuk akun lokal juga; Saya telah memeriksa.)

Tanpa itu, yang paling dekat Anda dapat datang adalah dengan memeriksa tanggal pembuatan pada kumpulan registri pengguna, ntuser.datfile, folder profil pengguna dll, tetapi seperti yang disebutkan dalam komentar, ini hanya akurat mengenai login pertama pengguna, karena saat itulah hal-hal dibuat.

Sayangnya untuk Anda, ini adalah kasus "jika Anda tidak mencatatnya, maka informasi itu tidak ada."

HopelessN00b
sumber
1

Saya baru saja akan memberi Anda skrip PowerShell POC untuk mengekstrak dan menguraikan waktu pembuatan, tetapi saya menyadari bahwa chntpwlogika itu salah. Nilai yang disebutnya waktu pembuatan sebenarnya adalah kata sandi waktu yang diset terakhir, meskipun nilai-nilai ini sama pada saat pembuatan akun awal. Lihat di sini untuk deskripsi lengkap tentang SAM.

Tautan kedua Evan, untuk samparse, mungkin bisa melakukannya dengan benar. Melihat itu sebenarnya berfungsi. Jika Anda melihat sumbernya di sini , baris 99:

$c_date = $create->get_timestamp();

Anda akan melihatnya panggilan get_timestampdari Perl Parse::Win32Registry. Saya cukup yakin itu sebenarnya adalah waktu penulisan kunci terakhir. Karena tampaknya bahwa tombol tertentu ( HKLM\SAM\SAM\Domains\Account\Users\Names\<USERNAME>) hanya menyimpan pointer ke kunci RID yang sesuai, itu tidak boleh berubah setelah pembuatan dan waktu penulisan terakhir akan sama dengan waktu pembuatan.

Jika Anda ingin tetap menggunakan lebih banyak alat bawaan, berikut adalah serangkaian artikel dari Scripting Guy yang menjelaskan caranya melalui PowerShell:

Gunakan PowerShell untuk Mengakses Stempel Waktu Modifikasi Terakhir Registri

Menggunakan kembali PowerShell Registry Time Stamp Code

Buat Fungsi Proksi untuk Menampilkan Perangko Waktu Kunci Registri

Leverage Registry Key Time Stamps melalui PowerShell

charleswj81
sumber
-3

Perintah ini di PowerShell harus melakukan trik:

systeminfo | findstr /C:"Install Date"
Mike
sumber
1
Bagaimana ini terkait? Sudahkah Anda membaca pertanyaan?
Sven
-5

Menavigasi melalui Komputer Saya ke

C: \ Users dan Anda akan melihat semua akun pengguna yang terdaftar di mesin lokal. Anda dapat mengklik kanan akun pengguna yang sesuai dan pergi ke properti dan itu akan menunjukkan kepada Anda tanggal yang dibuat, ini harus sama dengan pembuatan akun pengguna

Hanya 2 sen saya

Kevin
sumber
2
-1 - Itu menunjukkan Anda ketika direktori profil dibuat. Itu tidak memberi tahu Anda saat akun dibuat karena direktori profil dapat dihapus dan dibuat kembali kapan saja setelah akun dibuat.
Evan Anderson
Meskipun itu mungkin, 99% dari waktu itu akan akurat, dan ini cukup baik untuk sebagian besar
Kevin
Saya selalu disuruh untuk tetap sederhana ... sepertinya kami berdua mendapatkan jawaban yang sama, Anda harus menulis program, dan saya hanya mengambil data yang sudah tersedia di depan Anda
Kevin
2
Maaf Kevin, hampir tidak memotongnya untuk solusi khusus ini. Secara khusus, ini harus dilakukan untuk komputer di lab, di mana folder profil harus dihapus secara teratur untuk menjaga waktu login dapat diterima dan membuang ruang, sehingga solusi ini sama sekali tidak masuk akal, karena tanggal itu hanya tanggal pembuatan folder, bukan tanggal pembuatan profil pengguna .
MDMoore313
1
@Kevin Jawaban "tetap sederhana" adalah milikku, yang tidak dapat dilakukan, kecuali audit diaktifkan sebelum pembuatan akun, meskipun pembuatan kumpulan registri pengguna, file ntuser.dat atau folder profil pengguna dapat menyediakan sebuah perkiraan. Jawaban kompleksnya adalah EvanAnderson, yang benar-benar berfungsi, yang mengejutkan saya.
HopelessN00b