Pass-the-Hash Angriffe (PtH) – kurz zusammengefasst

Motivation

Als Premier Field Engineer für Security gehört es auch zu meinen Aufgaben, Kunden nach Hackerangriffen zu unterstützen. Eine Angriffsmethode, die seit einigen Jahren sehr häufig zum Einsatz kommt, ist die sogenannte „Pass-the-Hash“ Attacke.

Microsoft verfügt über ein großes Team von Spezialisten, die im Ernstfall auch rund um die Uhr an derartigen Fällen arbeiten können. Trotzdem ist der beste „Security Incident“ einer der gar nicht erst passiert und aus diesem Grund möchte ich das Thema der „Pass-the-Hash“ Attacken an dieser Stelle nochmals kurz und möglichst übersichtlich erklären.

Schatzkiste Arbeitsspeicher?

Die meisten Password-basierenden Authentifizierungsmethoden speichern das Passwort nicht direkt, sondern in Form eines Hashes in einer Datenbank. Gibt der Benutzer im Zuge einer Passwort-basierenden Authentifizierung sein Passwort ein, wird zunächst aus dem Passwort ein Hash-Wert errechnet. Dieser wird zu einem Authentifizierungsserver übertragen und mit dem in einer Datenbank (in Windows kommt hier die sog. SAM oder das Active Directory zum Einsatz) gespeicherten Hash verglichen. Stimmen die Werte überein, gilt der Benutzer als authentifiziert (diese Beschreibung ist sehr stark vereinfacht, Details finden Sie in der Linksammlung am Ende des Artikels).

Gelingt es nun einem Angreifer solche Passwort-Hashes zu erbeuten, kann er versuchen aus den Hashes auf die Passwörter zurück zurechnen, was aber, je nach Qualität des Hashalgorithmus extrem aufwändig sein kann, da es sich um sog. Einwegfunktionen handelt (Wikipedia erklärt das Thema hier: https://de.wikipedia.org/wiki/Hashfunktion). Ein anderer Angriffsvektor sieht vor, gar nicht erst das Passwort zu errechnen sondern direkt mit dem Hashwert „weiterzuarbeiten“ woher auch die Bezeichnung „Pass-the-Hash“ kommt. PtH ist weder neu noch Windows-spezifisch, ich selbst habe bereits im Jahr 2003 Demos dazu geliefert. Was sich allerdings im Laufe der Zeit verändert hat ist die Herkunft des Hashwertes. Im Jahr 2003 habe ich im Zuge meiner Demo den Hashwert aus der NTLM Authentifizierung eines SMB-Paketes entnehmen und weiterverwenden können. Nach dem Release von Server 2003 SP1 war diese Methode nicht mehr erfolgreich, dafür gab es andere, die wiederum laufend mit Updates und Servicepacks behoben wurden. Seit ca. 3 Jahren ist nun eine völlig neue Möglichkeit um an Passwort-Hashes zu gelangen bekannt, gegen die kein Hotfix „gewachsen“ ist: Passwort-Hashes werden aus dem Arbeitsspeicher mit entsprechender Malware infizierter Rechner entnommen. Da niemand auf den Komfort von Single-Sign-On (SSO) sowohl in Windows als auch in heterogenen Umgebungen verzichten möchte, müssen Passwort-Hashes im Arbeitsspeicher eines Prozesses am Client (bei Windows konkret der LSASS.EXE) gehalten werden. Selbst wenn man SSO-Funktionalität außen vorläßt muss klar sein: alles was eingetippt wird, landet zunächst im Arbeitsspeicher.

Auch einige andere „Schätze“ befinden sich im Arbeitsspeicher eines Rechners: Aus der Sicht eines Angreifers besonders interessant sind die Entschlüsselungsschlüssel für Festplattenverschlüsselungssoftware wie BitLocker, Truecrypt usw. sowie die privaten Schlüssel in Software gespeicherter Zertifikate (Mehr über die Alternative zu sogenannten „Soft Zertifikaten“ finden Sie unter anderem auf https://blogs.technet.com/b/austria/archive/2015/04/30/tpm-protected-certificates-virtual-smart-cards-und-key-attestation.aspx)

Die „(Open) SSL Heartbleed” Schwachstelle, welche im Frühjahr 2014 aufgedeckt wurde, hat deutlich gezeigt, dass nicht nur Windows sondern sämtliche Betriebssysteme grundsätzlich von dieser Problematik betroffen sind. Im Wesentlichen ging es darum, dass über eine Schwachstellen in Open SSL Zugriff auf den Arbeitsspeicher eines Rechners erlangt werden konnte, wodurch Passwörter genauso wie private Schlüssel auslesbar waren. Obwohl Open SSL für Windows verfügbar ist, verwendet die große Mehrheit aller Anwendungen auf Windows das „eingebaute“ Secure Channel und war daher nicht betroffen. Siehe auch https://heartbleed.com/

Pass-the-Hash in Action

Nun besitzt der Angreifer also die begehrten Passwort-Hashes und kann diese zur Authentifizierung innerhalb der Domäne verwenden. Je höher das Berechtigungslevel der erbeuteten Identitäten ist, desto einfacheres Spiel hat der Angreifer dessen Ziel die Erbeutung der Identität eines Domain- oder Enterprise Administrators ist.

Wo bleibt der Hotfix?

Es ist extrem schwierig Inhalte aus dem Arbeitsspeicher gegen ein im Security Context von Local System oder eines Kernel Mode Drivers laufendes Programm, wirksam zu verteidigen. In Windows 10 gelingt dieses Kunststück dennoch indem Virtualisierungstechnologie und der TPM Chip des Rechners herangezogen werden, um den Inhalt des Arbeitsspeichers in verschlüsselter Form in die Virtualisierungsumgebung auszulagern. Das neue Feature heißt „Credential Guard“ und wird in folgendem Video erklärt: https://channel9.msdn.com/Blogs/Taste-of-Premier/Taste-of-Premier-Windows-10-Credential-Guard. Mehr Details dazu finden sich auf https://technet.microsoft.com/en-us/library/mt483740%28v=vs.85%29.aspx.

Resistance is NOT futile

Aber auch für Windows 7 und Windows 8.1 wurden neue Schutzmöglichkeiten geschaffen, die aus Kompatibilitätsgründen nur teilweise standardmäßig aktiviert wurden. Folgende Security Advisories wurden in diesem Zusammenhang veröffentlicht: https://support.microsoft.com/en-us/kb/2871997, https://support.microsoft.com/en-us/kb/2982378, https://support.microsoft.com/en-us/kb/2973351, https://support.microsoft.com/en-us/kb/2975625

Das Schutzkonzept gegen PtH Angriffe muss in jedem Fall ein aus verschiedenen einzelnen Maßnahmen sein zusammengestelltes Paket sein, wozu organisatorische sowie technische Veränderungen gehören. Organisatorische Maßnahmen sind in diesem Fall sogar wichtiger als technische Änderungen.

Einige davon sind:

  • Schärfen des Bewusstseins von Benutzern, Management und IT Administratoren für IT Security.

  • Konten mit hohen Berechtigungsstufen (Administratoren jeder Art) sollten so selten wie möglich und nur auf gehärteten Rechnern verwendet werden, d.h. keinesfalls auf normalen Arbeitsplatzgeräten oder mobilen Devices.

  • Das lokale Administratorkonto jedes Arbeitsplatzrechners und jeder Servers sollte über ein individuelles Passwort besitzen, das regelmäßig geändert wird. Seit einigen Monaten stellt Microsoft für diesen Zweck LAPS (Local Administrator Password Solution - https://technet.microsoft.com/en-us/library/security/3062591.aspx) gratis zur Verfügung. Während LAPS für kleinere Umgebungen und einfache Implementierung optimiert wurde, stellt LAPS-Enterprise einige erweitere Funktionen zur Verfügung und kann über Microsoft Consulting Services oder einen Microsoft Premier Supportvertrag bezogen werden.

  • Delegieren Sie Berechtigungen an normale Benutzerkonten anstelle von dauerhaft „Run as Administrator“ zu verwenden.

  • Verbinden Sie sich niemals direkt von Ihrem Arbeitsplatzrechner auf zu administrierende Systeme.

  • Anwenden der Empfehlungen aus dem „Mitigating Pass-the-Hash Attacks and Other Credential Theft“ und “Best Practices for Securing Active Directory.docx” Whitepapers.

Bitte beachten Sie, dass diese Liste keineswegs vollständig ist!

Ein Typisches Angriffsszenario …

Das hier beschriebene Angriffsszenario ist eine von vielen Möglichkeiten wie es Angreifer schaffen können, ein gesamtes Netzwerk zu übernehmen. Weder schließt diese ausschließlich Windows PCs ein, noch müssen diese notwendigerweise der Ausgangspunkt sein. Dieses Beispiel wurde lediglich gewählt weil darin einige Administratoren sich und ihre Umgebung wiederfinden können. Außerdem lässt sich sehr gut zeigen, dass an vielen Stellen eingegriffen bzw. das Risiko minimiert werden kann. Ein Beispiel zur Verdeutlichung: Auch der beste Spamfilter wird nicht in der Lage sein, absolut jedes Phisphing E-Mail zu erkennen. Vielleicht aber erkennt ein gut geschulter Benutzer den Angriff ohne in die Falle zu tappen. Da aber auch dem gut geschulten Auge ab und an etwas entgeht, klickt der Benutzer möglicherweise doch auf den im Phishing Mail bereitgestellten Link. Wie es dann weitergeht hängt stark von den Rechten des angemeldeten Benutzers, der Aktualität seines Betriebssystems und Virenscanners und der sonstigen Konfiguration des Rechners (Stichwort „System Hardening“) ab. Im Idealfall ist der Angriff nicht erfolgreich, im schlechtesten Fall ist der Benutzerrechner anschließend mit Malware infiziert. Ob sich der Angreifer nun diesem System tiefer in das Netzwerk vorarbeiten kann, steht in starkem Zusammenhang mit den internen Administrationsprozessen im Unternehmen.

 

Ergänzung

Mein Kollege Andy Kainz hat angeregt in diesem Zusammenhang auf Microsoft Advanced Threat Analysis (ATA) hinzuweisen. Danke!

ATA analysiert und "erlernt" den Active Directory Netzwerkverkehr um dieses Wissen anschließend für Überwachung und Alarmierung bei Gefahr zu nutzen. Nähere Infos finden Sie auf

https://www.microsoft.com/en-us/server-cloud/products/advanced-threat-analytics/

Links

SSP Packages Provided by Microsoft: https://msdn.microsoft.com/en-us/library/windows/desktop/aa380502(v=vs.85).aspx

Whitepaper "Mitigating Pass-the-Hash (PtH) Attacks and Other Credential Theft" - https://www.microsoft.com/en-us/download/details.aspx?id=36036

Best practices for securing Active Directory - https://www.microsoft.com/en-us/download/details.aspx?id=38785

Implementing secure administrative hosts - https://technet.microsoft.com/en-us/library/dn487449.aspx