285: Kurzes Pass-the-Hash Experiment

Erstaunliche Experimente kann man mit einem kleinen Tool durchführen. Es ist in der Lage im RAM der Windows Maschine nach Kennwort Hashes Ausschau zu halten. Es findet diese auch von anderen, z.B. per RDP angemeldeten Benutzern (weitere Details im MS Whitepaper, auch Dienstekonten oder Task Scheduler Konten sind betroffen). Sollte das ein administrativer Benutzer oder sogar ein Domain Admin sein, kann man sich praktisch als dieser ausgeben indem man dessen Hash verwendet bzw. missbraucht. Im Zweifel kann man sogar das Kennwort in Klarschrift ermitteln.

Einzige Voraussetzung ist, dass man einen lokalen administrativen Benutzer besitzt. Alle anderen Benutzer die sich dann auf der Maschine anmelden, sind dann praktisch gefährdet.

Das Tool heißt „wce.exe“ und kann von der Entwicklerseite heruntergeladen werden. Er erläutert dort auch einige technische Hintergründe. Im Downloadarchiv befindet sich wieder ein Archiv das dann das eigentliche Tool enthält. Also einfach zweimal z.B. per 7-Zip öffnen. Virenscanner oder auch der Defender auf Windows 8 werden jetzt sofort anschlagen. Bei meinen Experimenten hat eine Windows 8 Maschine beim Einsatz des Tools auch sofort rebootet.

Mein Beispielszenario sah folgendermaßen aus:

  • Windows Server 2003 Member Server
  • Lokaler Benutzer mit Adminrechten: localadmin
  • Domänen Admin Benutzer: corp-admin1

Phase 1: Server frisch gebootet und „LocalAdmin“ hat sich angemeldet. Der „böse“ sieht zwei Hashes, seinen eigenen und den des Computerkontos.

p1

Phase 2: Der Domain Admin meldet sich über RDP an und „LocalAdmin“ beobachtet weiter. Er findet nun den Hash des Domain Admins – Schluck!

p2

Phase 3: „LocalAdmin“ zieht sich die „Domain Admin“ Mütze über, indem er den Hash des Domain Admins in seine Sitzung injiziert. Der erste Versuch zeigt eine normale Zugriffsverweigerung für den „LocalAdmin“. Nach der Hash Injektion ist der Zugriff gewährt. In dem Fall handelt es sich um einen DC der Domäne. Der böse Bube könnte jetzt genauso AD Users & Computers oder andere Tools verwenden um weiter zu spionieren und z.B. Kennworte zurücksetzen.

p3

Zugabe: Interessant wäre natürlich auch noch das Kennwort in Klarschrift zu kennen. In dem Fall könnte der böse Bube weitgehend unbemerkt seiner „Arbeit“ nachgehen, da er ja kein Kennwort zurücksetzt und deswegen auch in keinem Security Log eine Fehlermeldung hinterlässt.

p4

oh oh … ich denke es gilt bestimmte Vorgehensweisen und Gewohnheiten im Unternehmen nochmal neu zu beleuchten.

Weitere technische Hintergründe und mögliche Verfahren das Risiko zu minimieren wurden hier dokumentiert:

http://www.microsoft.com/en-us/download/details.aspx?id=36036

http://www.sans.org/reading_room/whitepapers/testing/pass-the-hash-attacks-tools-mitigation_33283

6 Responses to 285: Kurzes Pass-the-Hash Experiment

  1. Jetzt bin ich ja glatt erschrocken – aber: „For example, you can remove wdigest and tspkg and WCE will not be able to dump the cleartext password stored by these packages simply because they will not be loaded anymore.“ Ok, halbe Entwarnung 🙂

  2. Jepp 🙂 @Wolfgang: Klappt das mit den Klartextkennwörtern auch noch, wenn „keine lan manager hashwerte für nächste kennwortänderung speichern“ und/oder „kennwörter mit umkehrbarer Verschlüsselung speichern“ deaktiviert ist? Vor allem zweiteres (per Default deaktiviert) behauptet von sich, daß es genau das verhindern würde… http://technet.microsoft.com/en-us/library/cc957013.aspx

    • Wolfgang says:

      Der obige Test wurde schon unter der Standardoption der Kennwortrichtlinie „Store passwords using reversible encrytion = Disabled“ gemacht. Hilft also nix. Zur Sicherheit habe ich noch die Option „Network security: Do not store LAN Manager hash value on next password change = Enabled“ getestet. Auch das verhindert nicht, dass das Kennwort ermittelt werden kann.

      Beide Richtlinien beeinflussen die Speicherung des Kennworts im AD. Zur Laufzeit gelangt aber das Klartext Kennwort in die Authentifizierungspakete. Dort fischt es „wce“ beim Digest Paket heraus. Bei meinem 2003 Member Server ist diese Liste standardmäßig mit „Security Packages = kerberos msv1_0 schannel wdigest“ befüllt.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

%d Bloggern gefällt das: