Bagaimana cara membuang file SAM Windows saat sistem sedang berjalan?

14

Saya telah mengeksploitasi mesin uji menggunakan metasploit dan bisa mendapatkan hash dari file SAM; Saya sudah mencoba menjalankan perintah SYSTEMuntuk mendapatkannya tetapi saya tidak dapat melakukannya. Apa metode yang lebih portabel untuk mengekstrak hash dari file SAM?


sumber

Jawaban:

12

Ini bukan masalah izin - Windows menyimpan kunci eksklusif pada file SAM (yang, sejauh yang saya tahu, adalah perilaku standar untuk kumpulan registri yang dimuat), sehingga tidak mungkin bagi proses lain untuk membukanya.

Namun, versi Windows terbaru memiliki fitur yang disebut "Volume Shadow Copy", yang dirancang untuk membuat snapshot hanya-baca dari seluruh volume, sebagian besar untuk cadangan. Kunci file ada untuk memastikan konsistensi data, sehingga tidak diperlukan jika snapshot dari keseluruhan sistem file dibuat. Ini berarti Anda dapat membuat snapshot C:, me-mount, menyalin SAMfile Anda , lalu membuang snapshot.

Bagaimana tepatnya melakukan ini tergantung pada versi Windows Anda: XP membutuhkan program eksternal, Vista dan 7 miliki vssadmin create shadow, dan Server 2008 memiliki diskshadowperintah. Halaman Hash Dumping Aman dari Pengendali Domain Langsung memiliki detail lebih lanjut tentang proses ini, serta instruksi dan skrip.

Atau, ada alat-alat seperti samdumpyang menyalahgunakan proses LSASS dari berbagai arah untuk mengekstraksi semua hash kata sandi langsung dari memori. Mereka mungkin jauh lebih cepat daripada snapshot VSS, tetapi memiliki risiko lebih tinggi menabrak sistem.

Akhirnya, Google mengeluarkan cuplikan ini, yang kegunaannya tidak dapat saya nilai karena saya tidak pernah menggunakan metasploit sendiri:

meterpreter> use priv
meterpreter> hashdump
pengguna1686
sumber
Apa perbedaan antara file SAM \ SYSTEM dan subkunci registri SAM \ SYSTEM (saya mengacu pada jawaban vmarquet )? Apakah isinya sama?
GordonAitchJay
1
Ya, file-file itu sebenarnya di mana database registri disimpan - file "SYSTEM" menyimpan data HKLM \ SYSTEM. (Maksud saya, itu harus disimpan dalam beberapa file di suatu tempat, bukan?) Anda dapat melihat HKLM\SYSTEM\CurrentControlSet\Control\HiveListuntuk melihat subkunci mana yang sesuai dengan file mana.
user1686
12

Ada solusi yang lebih sederhana yang tidak perlu mengelola volume bayangan atau menggunakan alat eksternal. Anda cukup menyalin SAM dan SISTEM dengan regperintah yang disediakan oleh microsoft (diuji pada Windows 7 dan Windows Server 2008):

reg save hklm\sam c:\sam
reg save hklm\system c:\system

(parameter terakhir adalah lokasi di mana Anda ingin menyalin file)


Anda kemudian dapat mengekstrak hash pada sistem Linux dengan paket samdump2 (tersedia di Debian:) apt-get install samdump2:

$ samdump2 system sam
Administrator:500:aad3b435b51404eeaad3b435b51404ee:c0e2874fb130015aec4070975e2c6071:::
*disabled* Guest:501:aad3b435b51404eeaad3b435b51404ee:d0c0896b73e0d1316aeccf93159d7ec0:::
vmarquet
sumber
citarasa windows mana yang berfungsi (atau lebih tepatnya yang tidak)? mencoba untuk mengatakan dari situs web MSDN tetapi tidak mencantumkannya (setidaknya saya tidak melihatnya)
n00b
ini hanya membuang akun lokal. untuk mendapatkan kredibilitas domain di-cache Anda juga perlu mendapatkan KEAMANAN dari registri. maka Anda dapat menjalankan: python /usr/share/doc/python-impacket/examples/secretsdump.py -sam SAM -security SECURITY -System SYSTEM LOCAL untuk membuang semua cache yang di-cache.
n00b
5

Sunting: Saya memutuskan untuk mengedit setelah bertahun-tahun ditinggalkan.


File Windows SAM dikunci dari menyalin / membaca tidak seperti /etc/shadow pada sistem Linux. Sebaliknya, untuk menyiasatinya alat ini akan mengekstrak hash dari memori.

Ada beberapa cara untuk mengatasi hal ini yang akan saya bahas di bawah ini:

Mimikatz

Jalankan mimikatz dengan sekurlsa::logonpasswords.

fgdump

Fungsionalitas yang serupa dengan mimikatz. Jalankan, dan hash akan dibuang ke file lokal.

hashdump

Dibangun menjadi meter meter; ekstrak hash dari memori.

Daftar

Juga dimungkinkan untuk mengekstrak dari registri (jika Anda memiliki SYSTEMakses):

  1. reg save hklm\sam %tmp%/sam.reg dan reg save hklm\system %tmp%/system.reg
  2. Salin file, lalu jalankan: samdump2 system sam

Cadangan

File SAM juga dapat disimpan di lokasi cadangan: C:\Windows\Repair\SAM

Saya juga harus menyebutkan bahwa alat minimal membutuhkan Administratorhak istimewa; dan sebagian besar tidak akan mendapatkan semua hash kecuali jika SYSTEMaksesnya tercapai.


sumber
Mungkin saya salah paham, tetapi bagaimana alat Mimikatzatau fgdumplebih portabel dari C&A atau berbeda dari itu? Sejauh yang saya tahu mereka semua alat pihak ketiga yang tidak dikemas dengan Windows dan perlu dimuat secara terpisah. Juga, untuk rasa ingin tahu saya sendiri, apa gunanya alat hash-dumping ketika alat seperti Ophcrack ada?
Hashim
Dapatkah mimikatz digunakan untuk memecahkan hash lokal pada sistem yang dimatikan melalui disk yang dapat di-boot, atau apakah itu hanya dirancang untuk berjalan pada sistem yang dihidupkan?
Hashim
1

Metode Obscuresec mengatasi kesulitan Anda secara lokal pada setiap mesin Windows PowerShell 1.0 yang diaktifkan. Aku tahu beberapa target, tapi hei, kerja bagus! (terima kasih Chris).

Catatan: Hak istimewa admin selalu diperlukan untuk melakukan operasi seperti itu

Anda bisa menggunakannya

http://gallery.technet.microsoft.com/scriptcenter/Get-PasswordFile-4bee091d

atau dari sumber lain (lebih baru saya dapat menambahkan)

https://github.com/obscuresec/PowerShell/blob/master/Get-PasswordFile

Pembacaan yang disarankan:

Untuk mengambil sistem jarak jauh SAM dan SISTEM sarang menggunakan yang disebutkan di atas bersama

Marco Vaz
sumber
1

Ingin menentukan metode tambahan yang tidak dijelaskan di sini, karena banyak waktu dalam Red Teaming / Penetration Testing, cara yang paling jelas tidak dapat diakses (ditolak, dipantau oleh Blue Team, dll.) Dan senang mengetahui semua teknik yang tersedia.

Salah satu solusi untuk mengakses file, yang telah ditangani sistem (tidak dapat menyalin / menghapus seperti biasa), vssshadow.exediceritakan di atas.

Kedua - esentutil.exe.

Perintah yang tepat untuk mengambil salinan file dengan pegangan:

esentutl.exe /y /vss c:\windows\ntds\ntds.dit /d c:\folder\ntds.dit

Ini berlaku untuk SAM, SYSTEM, SECURITY, NTDS.DIT ​​dll.

PS Ada esentutl.pydalam paket impacket: https://github.com/SecureAuthCorp/impacket/blob/master/examples/esentutl.py

PSS gambar esentutl PoC

dtrizna
sumber