NTLM Relaying ...
... benötigt keine lokalen Administratorrechte wie Pass the Hash, sondern lediglich Netzwerkzugriff. Ein Mal mehr wird dabei ausgenutzt, dass in vielen Netzen altersschwache Technologien in Betrieb sind, die schon seit langer Zeit als unsicher gelten. NTLM Relaying wird deshalb seit Jahren erfolgreich von Penetrationstestern und Angreifern eingesetzt, obwohl die angreifbaren Komponenten eigentlich relativ einfach zu härten wären.
NTLM ist ein von Microsoft entwickeltes Netzwerkprotokoll, das seit 1993 (!) zur Authentifizierung in Windows-Netzwerken eingesetzt wird, z. B. für die Anmeldung an Netzlaufwerken. NTLM hat diverse seit langem bekannte Sicherheitsschwächen und Designprobleme, wird aber immer noch sehr häufig eingesetzt, obwohl es sichere Alternativen gibt.
Ein NTLM-Relaying-Angriff besteht aus drei Phasen, die in den folgenden Abschnitten genauer beschrieben werden:
- Der Angreifer antwortet auf eine Anfrage zur Namensauflösung (DNS Request) mit einer gefälschten Antwort (Spoofing)
- Der Angreifer lenkt damit die NTLM-Authentifizierungsanfragen auf sich um und kann in der erhaltenen Anfrage den Hash des Benutzers auslesen
- Der Angreifer kann diesen Hash direkt weiterschicken um sich auf einem anderen System anzumelden
Spoofing: Wie fängt der Rattenfänger seine Opfer?
Das Abfangen der Authentifizierungsanfragen erfolgt über eine gefälschte Namensauflösung. Windows probiert für die Namensauflösung die folgenden Protokolle der Reihe nach durch, bis es eine erfolgreiche Antwort erhält:
- DNSv6 (über IPv6)
- DNS (über IPv4)
- LLMNR (Link Local Multicast Name Resolution)
- NBNS (Netbios Name Service)
DNSv6 hat die höchste Priorität. Der Angreifer kann die Namensauflösung fälschen, bevor die normale Namensauflösung über DNS überhaupt passiert. Dies ist möglich, wenn in einem Firmennetzwerk IPv6 aktiv ist (die Standardeinstellung bei Windows), DNSv6 aber nicht konfiguriert ist. Dieser Angriffsvektor ist mehrstufig, es stehen jedoch Tools zur Verfügung, die diesen Angriff auf Knopfdruck durchführen. Z. B. mitm6
DNS über IPv4 wird als Standardnamensauflösung in einer Windows Domäne verwendet. Solche Anfragen werden durch den DNS Server der Domäne beantwortet. Dieser ist jedoch auch manipulierbar, da jeder authentifiziere Domänen-Benutzer neue, noch nicht existierende Einträge selber erstellen kann. Interessante Kandidaten dafür sind z. B. der Wildcard-Eintrag („*“) oder der Proxy-Autodiscovery-Eintrag „wpad“ oder nicht mehr vorhandene Server, für die im Netzwerk aber noch Namensanfragen sichtbar sind. Weitere Details im NetSPI Blog.Erstellt der Angreifer einen Wildcard-Eintrag, der auf ihn zeigt, kann er sämtliche ungültigen Anfragen abfangen.
Am häufigsten für das Spoofing benutzt werden die beiden veraltete Namensauflösungs-Protokolle LLMNR und NBNS. Diese werden von Windows verwendet, wenn eine DNS-Anfrage erfolglos war. Beides sind Broadcast-Protokolle, d. h. Anfragen gehen an alle Netzwerkteilnehmer und jeder kann darauf antworten. Für nicht (mehr) verwendete Hostnamen wird niemand anders darauf antworten als der Angreifer, d. h. er kann sehr einfach alle Anfragen für ungültige Hostnamen auf sich ziehen.
Solche ungültigen Anfragen kommen in den Netzen viel häufiger vor als man denkt:
- Benutzer, die nicht mehr existierende Fileserver noch als Netzlaufwerke konfiguriert haben
- Benutzer, die sich vertippen
- Services oder Scripte mit Admin-Rechten, die nicht korrekt migriert wurden und versuchen auf alte Netzwerklaufwerke zuzugreifen
- Inoffizielle Browser, die Proxy-Autodiscovery machen, obwohl der dafür nötige Eintrag ("wpad") nicht im DNS konfiguriert ist
- Scanning und Discovery Accounts, die das Netzwerk aktiv absuchen
Der Angreifer hat also diverse Möglichkeiten Authentifizierungsanfragen zu sich umzuleiten. Dieser Angriff kann entweder auf einer gehackten internen Windows-Workstation oder über einen direkt ans Netzwerk angeschlossenen Laptop (z. B. offener Netzwerkanschluss im Sitzungszimmer) durchgeführt werden.
Mögliche Relaying-Tools:
- ntlmrelay.pyaus der Impacket Library
- MultiRelay.pyaus dem Responder Toolkit
Detailliertere Erklärungen finden Sie in den folgenden Artikeln:
Relaying: Missbräuchliches Wiederverwenden der Credentials
Der Angreifer empfängt nach einem erfolgreichen Spoofing den NTLM-Netzwerk-Hash des Benutzers. (Nicht zu verwechseln mit den NT-Hashes und den LM-Hashes, die bei einem Pass-the-Hash-Angriff aus dem Speicher eines Windows-Computer ausgelesen werden können.) Gehört dieser Hash zu einem Domänenaccount, kann er sich mit einem Relaying-Tool direkt und automatisch an einem beliebigen Host der Domäne anmelden. Denn so unglaublich sich das anhört: Ein NTLM-Netzwerk-Hash beinhaltet weder eine Spezifikation des Ziels noch des Absenders noch einen Timestamp, sondern kann zeitlich unbegrenzt überall innerhalb der Domäne wiederverwendet werden.
Meist werden Zugriffe auf einen Fileserver über SMB (net use ...) oder Zugriffe eines Browsers auf den Webproxy abgefangen. Bei beiden findet im Normalfall eine automatische NTLM-Authentifizierung statt. Sobald ein Benutzer z. B. net use \server023\fileshare oder schlimmer noch, als Admin net use \client056\c$ eingibt und dieser Host nicht im DNS existiert, wird ohne weitere Benutzernachfrage der Hash zum Angreifer geschickt. Dasselbe passiert, wenn ein Benutzer einen Browser öffnet, der für Proxy-Autodiscovery konfiguriert ist, aber Autodiscovery nicht tatsächlich im Firmennetzwerk benutzt wird. Bei allen gängigen Browsern ist Autodiscovery die Standardeinstellung. Dieser Angriffsvektor benötigt noch eine Zwischenstufe mehr: Dem Browser wird ein Proxy-Konfiguration (wpad.dat) geschickt, in dem man sich selber als Proxy deklariert. Die Authentifizierung geschieht dann erst mit der ersten Anfrage auf den Proxy.
Der Angreifer sammelt die Hashes und sucht spezifisch nach Accounts mit hohen Rechten für eine Privilege Escalation oder mit Zugang auf wichtige Server für Lateral Movement.
Detektion
Spoofing hinterlässt keine Spuren in den Windows Logs. Da der Angreifer aber eine aktive Komponente ins Netzwerk einbringt, kann man mit einem geeigneten Tool absichtlich einen ungültigen Hostnamen anfragen und detektieren, ob jemand darauf antwortet.
Da beim Relaying ein gültiger Hash zur Authentifizierung verwendet wird, können die Logs davon nicht von einer normalen Authentifizierung unterschieden werden. Es kann jedoch ein Spoofing provoziert und falsche Credentials mitgeschickt werden. Die Verwendung dieser Credentials löst dann einen Alarm aus.
Detektion soll – aufgrund der Gefährlichkeit dieser Angriffe – immer mit Gegenmassnahmen kombiniert werden. Aber auch mit umgesetzten Gegenmassnahmen geben die Detektions-Tools einen entscheidenden Hinweis auf einen aktuell stattfindenden Angriffsversuch.
Gegenmassnahmen
Die Gegenmassnahmen für all diese Angriffe sind seit langem bekannt:
- Unsichere und nicht benötigte Technologien deaktivieren.
- Wo dies nicht möglich ist, sollen sie eingeschränkt und kontrolliert werden.
Die für das Spoofing benutzen Technologien (NBNS, LLMNR, DNSv6) werden in den allermeisten Organisation nicht benutzt und können mit vertretbarem Risiko deaktiviert werden. Das Authentifizierungsprotokoll NTLM wird in vielen Organisationen noch aktiv benutzt, kann jedoch nach einer eingehenden Analyse so beschränkt werden, dass der Missbrauch stark erschwert wird.
Dennoch tun sich viele Organisationen schwer damit, solche Massnahmen umzusetzen, aus folgenden Gründen:
- Mangelnde Sensibilisierung für die Angriffsmöglichkeit
- Mangelndes Wissen über die Gegenmassnahmen
- Furcht vor Beeinträchtigung der Funktion und Verfügbarkeit
- Zeit- und Ressourcenmangel
- Falsche Priorisierung der Detektion gegenüber Gegenmassnahmen
Die Guten greifen an
Zu den Aufgaben vom Audit-Teamder terreActive gehört es, die Infrastruktur des Kunden auf Herz und Nieren zu prüfen. Unsere Penetrationstester kontrollieren deshalb auch, ob Kunden ausreichend gegen NTLM-Relaying-Angriffe und Pass-the-hash-Attacken geschützt sind.
Wann haben Sie Ihr Netzwerk zuletzt einem Test unterzogen?
Warten Sie nicht zu lange. Wir helfen Ihnen.