Wie kann ich die Windows SAM-Datei sichern, während das System ausgeführt wird?

14

Ich habe Testmaschinen mit Metasploit ausgenutzt und konnte die Hashes aus der SAM-Datei abrufen. Ich habe versucht, Befehle auszuführen SYSTEM, um sie zu erhalten, kann dies jedoch nicht. Was ist eine portablere Methode, um die Hashes aus der SAM-Datei zu extrahieren?


quelle

Antworten:

12

Es handelt sich nicht um ein Berechtigungsproblem. Windows behält eine exklusive Sperre für die SAM-Datei bei (was meines Wissens das Standardverhalten für geladene Registrierungsstrukturen ist), sodass es für keinen anderen Prozess möglich ist, sie zu öffnen.

Neuere Windows-Versionen verfügen jedoch über eine Funktion namens "Volume Shadow Copy", mit der schreibgeschützte Snapshots des gesamten Volumes erstellt werden können, hauptsächlich für Sicherungen. Die Dateisperren dienen dazu, die Datenkonsistenz zu gewährleisten. Sie sind daher nicht erforderlich, wenn ein Snapshot des gesamten Dateisystems erstellt wird. Dies bedeutet, dass es möglich ist, einen Snapshot zu erstellen C:, ihn bereitzustellen, Ihre SAMDatei zu kopieren und den Snapshot dann zu verwerfen.

Wie genau dies zu tun ist, hängt von Ihrer Windows-Version ab: XP benötigt ein externes Programm, Vista und 7 vssadmin create shadow, und Server 2008 hat den diskshadowBefehl. Auf der Seite Sicheres Speichern von Hashes von Live-Domänencontrollern finden Sie weitere Details zu diesem Vorgang sowie Anweisungen und Skripts.

Alternativ gibt es Tools, samdumpdie den LSASS-Prozess aus verschiedenen Richtungen missbrauchen, um alle Kennwort-Hashes direkt aus dem Speicher zu extrahieren. Sie sind möglicherweise viel schneller als VSS-Snapshots, haben jedoch ein höheres Risiko, das System zum Absturz zu bringen.

Schließlich bringt Google diesen Ausschnitt heraus, dessen Nützlichkeit ich nicht bewerten kann, wenn ich selbst noch nie Metasploit verwendet habe:

meterpreter> use priv
meterpreter> hashdump
user1686
quelle
Was ist der Unterschied zwischen den SAM \ SYSTEM-Dateien und den SAM \ SYSTEM-Registrierungsunterschlüsseln (ich beziehe mich auf die Antwort von vmarquet )? Sind die Inhalte gleich?
GordonAitchJay
1
Ja, in diesen Dateien befindet sich tatsächlich die Registrierungsdatenbank. Die Datei "SYSTEM" enthält die Daten von HKLM \ SYSTEM. (Ich meine, es muss irgendwo in einer Datei gespeichert werden , nicht HKLM\SYSTEM\CurrentControlSet\Control\HiveListwahr ?) Sie können sich ansehen , welche Unterschlüssel welchen Dateien entsprechen.
user1686
12

Es gibt eine einfachere Lösung, bei der keine Schattenvolumes verwaltet oder externe Tools verwendet werden müssen. Sie können SAM und SYSTEM einfach mit dem regvon Microsoft bereitgestellten Befehl kopieren (getestet unter Windows 7 und Windows Server 2008):

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

(Der letzte Parameter ist der Speicherort, an den Sie die Datei kopieren möchten.)


Sie können dann mit Paket samdump2 die Hashes auf einem Linux - System extrahieren (auf Debian: apt-get install samdump2):

$ samdump2 system sam
Administrator:500:aad3b435b51404eeaad3b435b51404ee:c0e2874fb130015aec4070975e2c6071:::
*disabled* Guest:501:aad3b435b51404eeaad3b435b51404ee:d0c0896b73e0d1316aeccf93159d7ec0:::
vmarquet
quelle
Auf welchen Windows-Varianten funktioniert dies (oder auf welchen nicht)? versuchte von der MSDN-Website zu erzählen, aber es listet es nicht auf (zumindest habe ich es nicht gesehen)
n00b
Dadurch werden nur lokale Konten ausgegeben. Um zwischengespeicherte Domain-Creds zu erhalten, müssen Sie auch SECURITY von der Registrierung erhalten. Dann können Sie Folgendes ausführen: python /usr/share/doc/python-impacket/examples/secretsdump.py -sam SAM -security SECURITY -system SYSTEM LOCAL , um alle zwischengespeicherten Creds zu sichern.
n00b
5

Bearbeiten: Ich habe mich nach vielen Jahren der Aufgabe für die Bearbeitung entschieden.


Die Windows-SAM-Datei kann im Gegensatz /etc/shadow zu Linux-Systemen nicht kopiert / gelesen werden. Um diese Tools zu umgehen, werden stattdessen Hashes aus dem Speicher extrahiert.

Es gibt Möglichkeiten, dies zu umgehen, die ich unten behandeln werde:

Mimikatz

Mimikatz mit ausführen sekurlsa::logonpasswords.

fgdump

Ähnliche Funktionalität wie Mimikatz. Führen Sie es aus, und Hashes werden in lokalen Dateien gespeichert.

Hashdump

Eingebauter Meterpreter; extrahiert Hashes aus dem Speicher.

Registrierung

Es ist auch möglich, aus der Registrierung zu extrahieren (wenn Sie SYSTEMZugriff haben):

  1. reg save hklm\sam %tmp%/sam.reg und reg save hklm\system %tmp%/system.reg
  2. Kopieren Sie die Dateien und führen Sie dann Folgendes aus: samdump2 system sam

Backups

Die SAM-Datei kann auch an einem Sicherungsspeicherort gespeichert werden: C:\Windows\Repair\SAM

Ich sollte auch erwähnen, dass die Tools mindestens AdministratorBerechtigungen erfordern ; und die meisten erhalten nicht alle Hashes, es sei denn, der SYSTEMZugriff wird erreicht.


quelle
Vielleicht habe ich es falsch verstanden, aber inwiefern sind Tools portabler Mimikatzoder fgdumptragbarer als C & A oder anders? Soweit ich das beurteilen kann, handelt es sich um Tools von Drittanbietern, die nicht im Lieferumfang von Windows enthalten sind und separat geladen werden müssen. Was ist aus eigener Neugier der Anwendungsfall für Hash-Dumping-Tools, wenn Tools wie Ophcrack vorhanden sind?
Hashim
Kann Mimikatz verwendet werden, um lokale Hashes auf einem ausgeschalteten System über eine bootfähige Festplatte zu knacken, oder ist es nur für die Ausführung auf einem eingeschalteten System ausgelegt?
Hashim
1

Die Obscuresec-Methode überwindet Ihre Schwierigkeiten lokal auf jedem Windows Powershell 1.0-fähigen Computer. Lässt einige Ziele aus, die ich kenne, aber hey, gute Arbeit! (Danke Chris).

Hinweis: Für die Ausführung eines solchen Vorgangs sind immer Administratorrechte erforderlich

Du könntest benutzen

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

oder aus einer anderen Quelle (neuere könnte ich hinzufügen)

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

Empfohlene Lektüre:

Verwenden Sie zum Abrufen von Remote-Systemen SAM- und SYSTEM-Bienenstöcke die oben genannten in Verbindung mit

Marco Vaz
quelle
1

Ich möchte eine zusätzliche Methode angeben, die hier nicht beschrieben wird, da in Red Teaming / Penetration Testing viel Zeit auf die offensichtlichsten Wege nicht zugegriffen werden kann (verweigert, von Blue Team überwacht usw.) und es gut ist, alle verfügbaren Techniken zu kennen.

Eine Problemumgehung für den Zugriff auf Dateien, für die das System Handles verwendet (kann nicht wie gewohnt kopiert / entfernt werden), ist vssshadow.exeoben aufgeführt.

Zweitens - esentutil.exe.

Genauer Befehl zum Erstellen einer Kopie der Datei mit Handle:

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

Dies gilt für SAM, SYSTEM, SECURITY, NTDS.DIT ​​usw.

PS esentutl.pyDas Paket von impacket enthält: https://github.com/SecureAuthCorp/impacket/blob/master/examples/esentutl.py

PSS esentutl PoC-Bild

dtrizna
quelle