DEFCON-Konferenz 20. Erfassung in 60 Sekunden: von einem Gastkonto zu einem Windows-Domänenadministrator. Teil 2

DEFCON 20-Konferenz. Erfassung in 60 Sekunden: von einem Gastkonto zu einem Windows-Domänenadministrator. Teil 1

Das Gute ist, dass wir durch Fälschung von DNS in das lokale Netzwerk eintreten können. Was ist mit Social Engineering, das Benutzerpräferenzen und Neigungen berücksichtigt? Pentester wissen, dass Sie im IE Bilddatei-Tags, beispielsweise im JPG-Format, für den UNC-Netzwerkpfad einfügen können. Der IE überträgt diese dann zurück an Windows und stellt automatisch eine Verbindung zum Netzwerkordner her, um beispielsweise das angeforderte Bild oder etwas anderes abzurufen , JavaScript, iFrame usw. Für heute verfügt der IE über eine automatische Authentifizierung.



Das Gleiche kann in Firefox und Chrome getan werden, obwohl die Leute denken, dass diese Browser sicherer sind. Dieser Screenshot zeigt die Firefox-Fehlerkonsole, die besagt, dass der Browser diese Bilddatei nicht aus dem öffentlichen Netzwerk herunterladen kann, da die Sicherheitsrichtlinie das Herunterladen von Dateien verhindert, die sich nicht im Sicherheitskontext des Browsers befinden. Eine interessante Funktion unseres Tools ist, dass Firefox- und Chrome-Browser gezwungen werden können, Dateien herunterzuladen, indem einfach HTTP-Header gesendet werden, um das Herunterladen von Content-Type: application / force-download zu erzwingen und diese Dateien dann aus dem Temp-Ordner oder direkt vom Desktop aus zu öffnen. Daher haben wir den Dateisicherheitskontext festgelegt und die automatische Authentifizierung im allgemeinen SMB aktiviert, sodass Sie Benutzer jetzt zwingen können, sich auf Ihrem betrügerischen Server zu authentifizieren.

Was aber, wenn sie nicht auf "Datei hochladen" klicken oder sie aus dem Ordner "Temp" öffnen? In diesem Fall können Sie festlegen, dass Benutzer sich automatisch authentifizieren, wenn sie eine HTML-Seite in einem Browser anzeigen. Dazu müssen Plug-Ins mit Firefox und Chrome verbunden sein. Meine Aufmerksamkeit wurde auf das Plugin QuickTime gelenkt, das von Benutzern häufig standardmäßig installiert wird. Ich weiß, dass es Dutzende verschiedener Plugins gibt, aber meistens treffen Sie Leute mit iTunes auf Ihren iPhones und installieren QuickTime. Ich ging die Liste der QuickTime-Funktionen durch und fragte mich, wie ich sie an meinen betrügerischen Netzwerkserver anschließen könnte, um die Authentifizierung durch Eingabe ihres Benutzernamens und Kennworts zu erzwingen.
Wir haben ein wenig nachgedacht und beschlossen, dass Sie eine Wiedergabeliste in den UNC-Netzwerkpfad einfügen können. Anschließend authentifizieren sich die Benutzer automatisch und umgehen den lokalen Sicherheitskontext. Wir müssen etwas mehr an den beiden anderen Plugins arbeiten, aber im Moment leistet QuickTime hervorragende Arbeit für unsere Aufgabe.

Eine andere Möglichkeit, Personen zur automatischen Authentifizierung auf unserem Server zu zwingen, sind E-Mails. Einige Leute wissen, dass Sie in Outlook HTML-E-Mails oder E-Mails mit einer HTML-Vorlage verwenden können. Wenn wir eine gemeinsam genutzte Netzwerkressource haben, können wir sie in eine solche E-Mail einfügen. Wenn der Benutzer diese E-Mail öffnet, stellt er automatisch eine Verbindung zu dieser Ressource her und authentifiziert sie.

Für unsere Zwecke können Sie Dateien im DOC-Format verwenden. Jedes Dokument kann auf die gleiche Weise wie ein Bild oder eine HTML-Datei verwendet werden, die in eine UNC eingefügt wird, deren Öffnung automatisch eine Verbindung zu einer Netzwerkfreigabe herstellt.

Vergessen Sie nicht die Datei desktop.ini. Dies ist nicht allzu bekannt, aber Sie können diese Datei generieren, um Desktop-Ressourcen wie Symbole und Hintergrundbilder zu installieren und in einem freigegebenen Ordner abzulegen. In diesem Fall stellt das System automatisch eine Verbindung her, um diese Symbole zu erhalten und sich mit dem aktuellen Benutzerkonto anzumelden.



Auf die gleiche Weise können Sie die Einstellungen der Verknüpfungsdatei mit der Erweiterung .lnk ändern, um automatisch eine Verbindung zur Ressource herzustellen.

Unser Tool erstellt diese INI- oder HTML-Dateien also schnell und einfach automatisch.
Das Letzte, worüber ich sprechen möchte, ist MITM oder "der Mann in der Mitte". Sie können NTLM-Authentifizierungsanforderungen umleiten oder HTML-Inhalte in die Seiten einbetten, wie dies das Tool nicht tut, und so seine Arbeit erledigen. Auf diese Weise können Sie Clients zwingen, eine Verbindung zu einem betrügerischen Server herzustellen, um NTLM Relay zu implementieren. Es gibt andere Tools, mit denen Sie NTLM-Relay über SMB oder HTTP durchführen und Benutzer zur Authentifizierung für Sie zwingen können.

Eine weitere coole Funktion von Squirtle ist die Möglichkeit, es zum Ausgangspunkt für das Erstellen von API-Anforderungen zu machen. Hier können Sie jedes Tool verwenden, das Sie zum Empfangen von Nachrichten vom Typ 2 und 3 schreiben. Die Nachricht vom Typ 3 ist die letzte Authentifizierungsanforderung. Sie müssen eine API-Nachricht senden, um sie zu empfangen Geben Sie 2 ein und holen Sie es zurück. Ich habe schnell eine API geschrieben, mit der Sie alle gewünschten Tools verwenden können. Sie können den Quellcode ändern und betrügerische Server verwenden, um eine Verbindung herzustellen und so weiter.

Wenn Sie jedoch ein Pentester sind oder Benutzer testen, benötigen Sie einige Beziehungen und eine umgekehrte Interaktion. Daher enthält unser Tool eine Reihe von Regeln. Ich habe bereits gesagt, dass alle vorhandenen Tools Benutzer an dieselbe Quelle senden, und wir müssen feststellen, wer diese Benutzer sind. Ich wollte dies mit einem Klick tun, damit, wie gesagt, in 60 Sekunden die Berechtigung eines Domänenadministrators eingeholt werden kann.

Ich habe in unseren Anwendungsregeln geschrieben, dass Benutzer zu Gruppen und Ziele zu Zielgruppen gehören.

Sobald wir herausfinden, dass der Benutzer zu einer Gruppe gehört und auf etwas mit automatischer Verbindung zugreifen kann, müssen wir ihn nicht zwingen, eine Verbindung herzustellen, warten und hoffen, dass er zurückkommt. Wir haben eine einfache Regel aufgestellt. Später werde ich in der Benutzeroberfläche zeigen, dass ein bestimmtes Modul Y verwendet wird, um die Aktion Z in Bezug auf die Zielgruppen T auszuführen, wenn ein Benutzer die Gruppe X betritt. Nach einigen Sekunden werde ich zeigen, wie dies funktioniert.

Die Regeln bestehen auch darin, API-Anforderungen sofort zu überprüfen, die allgemeinen Regeln zu überprüfen und dies zu wiederholen, bis eine Zeitüberschreitung auftritt. Sobald das Zeitlimit auftritt, müssen Sie mit einem statischen Anruf antworten und den Authentifizierungsstatus beibehalten, damit der Benutzer die Verbindung nicht trennen kann.

Wir können SMB verwenden, um eine Verbindung zu SMB herzustellen, HTTP, um eine Verbindung zu HTTP herzustellen, HTTP, um eine Verbindung zu SMB herzustellen usw., indem wir NTLM-Relaying implementieren. Das Problem ist, dass die Leute praktisch nicht viele andere Protokolle verwenden, deshalb habe ich mich entschlossen, Protokolle wie LDAP und MSSQL genauer zu betrachten.

Ich werde etwas später über LDAP sprechen, aber im Moment werde ich feststellen, dass MSSQL eine coole Sache ist, weil wir eine Datenbank bekommen können, auf die Daten zugreifen können, und das ist erstaunlich.



Da es sich um Kunden handelt, möchten wir, dass die Aktionen unmittelbar nach dem Herstellen der Verbindung automatisch ausgeführt werden. Aus diesem Grund haben wir Benutzer und Gruppen mit Metasploit aufgelistet, das auf der diesjährigen BlackHat-Konferenz vorgestellt wurde. Als Pentester erhielt ich Zugriff auf freigegebene Dateien, die Möglichkeit, Befehle auszuführen und Informationen über Zielbenutzer und Zielgruppen ohne Administratorrechte in Besitz zu nehmen. Bei alledem kann ich jedoch keine Verbindung zu den Domänencontrollern herstellen. Der Grund dafür ist, dass die meisten Domänencontroller standardmäßig eine SMB-Signatur haben. Für diejenigen, die mit der SMB-Signatur nicht vertraut sind, ist dies der Sicherheitsmechanismus des SMB-Protokolls, auch Sicherheitssignaturen genannt. Es verwendet den ursprünglichen NTLM-Hash, um die Sitzung zu signieren und jedes Paket zu signieren. Wenn keine Signatur vorhanden ist, werden Sie getrennt. Daher können wir NTLM-Relaying standardmäßig nicht auf einen Domänencontroller anwenden. Das ärgerte mich und ich beschloss herauszufinden, wie einfach und schnell es war, zu diesem Controller zu gelangen. Lassen Sie uns ein paar Folien zurückgehen.



Es stellte sich heraus, dass LDAP im Domänencontroller standardmäßig aktiviert ist, was die Verwendung der NTLM-Authentifizierung ermöglicht, was großartig ist. Das Kennwort konnte jedoch nicht geändert werden, da für das Ändern des Kennworts oder das Hinzufügen eines Benutzers in der Regel SSL erforderlich ist und SSL in LDAP enthalten ist, wenn die Domäne über ein CA-Zertifikat verfügt. Wir haben in unser Tool eingegeben, dass Sie Benutzerkennwörter ändern, Benutzer ausschließen und hinzufügen, Domänen auflisten, aktive Benutzer-Hashes aus dem Speicher extrahieren, sich bei der Domänensteuerung anmelden und andere coole Dinge tun können. Das Tolle ist, dass Sie Benutzer zu Gruppen ohne SSL und andere Dinge hinzufügen können. Als Pentester können Sie also die Konten anderer Benutzer verwenden und verbinden, sie der Domänenadministratorgruppe hinzufügen, wenn Sie über Administratorrechte verfügen, und so weiter.

Zurück zu SMB. Während meines 4-stündigen Fluges von Chicago hierher dachte ich daran, den SMB SOCKS-Proxy für unsere Zwecke zu verwenden. Jeder, der es weiß, weiß, dass dieses Protokoll es Anwendungen ermöglicht, über eine Firewall zu kommunizieren, die eine direkte Verbindung über einen Zwischenserver blockiert, zu dem beide Clients eine Verbindung herstellen können. Das heißt, der SOCKS-Proxy sendet saubere Daten von einem Client zu einem anderen und umgekehrt. Somit kann dieser Proxy NTLM-Pakete durch weitergeleitete Daten ersetzen.



Über HTTP können wir SharePoint-Server mit internen Websites verknüpfen. Einige Leute glauben, dass es kein Problem mit NTLM geben wird, weil Sie sich in einem internen Netzwerk befinden, aber was ist mit externen Netzwerken? Es gibt dort auch manchmal SharePoint-Server, aber nicht zu oft. Ich dachte, dass viele Organisationen für externen Zugriff offen sind, NTLM unterstützen und den Austausch von Webdiensten ermöglichen. Für diejenigen, die nicht mit Exchange Web Services (EWS) vertraut sind, werde ich sagen, dass es sich um eine Art HTTP-API handelt, die sich normalerweise auf demselben Server wie Outlook Web Access befindet. Standardmäßig verwenden sie die HTTP-Authentifizierungsmethode Negotiate, die NTLM unterstützt, damit wir ein externes HTTP-Relay für den in EWS befindlichen Dienst durchführen können.

Dies ist problematisch, da Sie von außen über HotSpot-Verbindungspunkte auf Ihre Korrespondenz, Kontakte und den Veranstaltungskalender zugreifen und Ihre eigenen Regeln für E-Mails festlegen können. Sie können über das Internet zum EWS-Server gelangen, wenn dort keine Firewall-Regeln für ausgehende Verbindungen vorhanden sind, mit denen Sie keine Verbindung zu einem betrügerischen SMB-Server herstellen und automatisch eine Authentifizierung erhalten können. Und all dies ist möglich, weil jeder ein Mobiltelefon mit EWS-Diensten verbunden und mit diesen synchronisiert hat.

Und jetzt brauche ich etwas zu trinken, weil ich an dieser Stelle eine Demo starten wollte. Diese Folie zeigt also, wie die grafische Benutzeroberfläche meiner ZackAttack-Anwendung aussieht. Ich scrolle auf der folgenden Seite nach unten, um die Einstellungen für Aktionen, Ziele, Zielgruppen und Benutzergruppen anzuzeigen.



So können Sie sich ein Bild von seiner Funktionalität machen und wie leistungsfähig es sein kann. Derzeit laufen ein betrügerischer HTTP-Server, ein betrügerischer SMB-Server und ein verwaltender HTTP-Server. Die Folie zeigt ferner, in welchen Gruppen sich die Benutzer befinden.



Es zeigt an, wer und wann eine Verbindung zum Netzwerk besteht, sodass Sie sehen können, welcher Benutzer die Verbindung wiederhergestellt hat.



Auf der rechten Seite werden die Systemkonten und die Konten vorhandener Benutzer in Rot angezeigt. Von dort aus können Sie Ziele über SMB mit einem Klick auflisten, E-Mails von Exchange Web Services empfangen, die Befehlsshell verwenden, wenn Sie Sitzungsadministrator sind, auf freigegebene Dateien zugreifen, SharePoint usw.



Wie gesagt, wir können Regeln erstellen und Benutzer durch automatische Aufzählung oder durch manuelles Erstellen von Gruppen zu Gruppen hinzufügen, z. B. durch Erstellen einer Gruppe mit dem Namen "moo".



Etwas, was ich nicht tun kann, wie gesagt, die Demo-Götter mögen mich nicht. Wir müssen zurückgehen und etwas im Programm optimieren.



Sorry Leute, aber dies ist nur eine Alpha-Version, ich habe diesen Code alleine in 3 Wochen geschrieben. Jetzt werde ich eine Gruppe namens "yar" hinzufügen. Jetzt sehen Sie, dass beide Gruppen unten angezeigt wurden, zu denen der ausgewählte Benutzer hinzugefügt wurde.



Wie gesagt, wir können auch verschiedene Benutzergruppen vom Domänencontroller aus auflisten. Dies ist die Registerkarte "Benutzergruppen". Auf der Registerkarte "Angriffsregeln" - "Angriffsregeln" - können Regeln für die automatische Authentifizierung erstellt werden.

Hier sehen Sie die Benutzer der neu erstellten Yar-Gruppe, die für bestimmte Zwecke der Zielgruppen mit Exchange Web Services verbunden werden können, und hier können Sie der Zielgruppe auch eine beliebige IP-Adresse hinzufügen, z. B. 10.1.10.250.



Sobald eine Authentifizierungsanforderung von jemandem aus der Benutzergruppe empfangen wird, stellen wir automatisch eine Verbindung zum EWS her und ziehen alle Briefe aus dem Posteingang aus dem Ordner "Entwürfe". Sie können problemlos einen weiteren Ordner hinzufügen, z. B. "Gesendete Objekte".



Das Beste an diesem Tool ist, dass nach der Authentifizierung die Sitzung während der gesamten Verbindung zum betrügerischen Server geöffnet bleibt und alle diese Aktionen ausgeführt werden. Daher müssen wir uns nicht erneut authentifizieren, um eingehende E-Mails zu erhalten.
Da wir 30 Anfragen vom System haben, können wir zuerst ungefähr 30 Regeln festlegen und dann in diesem speziellen Zusammenhang eine Vielzahl von Aktionen ausführen. Wie gesagt, wir können alle diese Schritte für alle Benutzer und für alle Zwecke dieser Verbindung oder für bestimmte Zwecke wiederholen.

Gleichzeitig können wir eine Nutzlast generieren, indem wir auf die Registerkarte Auth Payloads klicken. Von hier aus können Sie HTML-Dateien erstellen, um das OC des Benutzers zu bestimmen, und eine der drei Methoden verwenden, um den Browser zur automatischen Authentifizierung zu zwingen.



Hier können Sie die Datei desktop.ini erstellen, um Dateien in freigegebene Ordner hochzuladen, und mithilfe des Dateigenerators den UNC-Pfad in eine XML-DOC-Datei einfügen, .lnk-Verknüpfungsdateien erstellen und Zip-Dateien archivieren, genau wie beim automatischen Erstellen von XTML-Mail-Dateien. All dies geschieht so einfach wie möglich mit Hilfe von Firesheep und NTLM Relaying.

Schließlich verfolgt mein Tool über die Registerkarte Ergebnisse + Protokolle Benutzer-Hashes wie vor der statischen Authentifizierung, sodass Sie versuchen können, Kennwörter zu knacken.



Dies war also eine Demonstration der Fähigkeiten von ZackAttack. Wie schützen wir uns davor? Die Verteidigung besteht darin, die Angriffsfläche zu begrenzen.



Jeder hat seine eigenen Verteidigungsmethoden gegen Angriffe dieser Art. Die Leute schlagen vor, NTLM Version 2 zu verwenden. Mein Tool unterstützt diese Version, aber es gibt keine signifikanten Unterschiede zwischen Version 2 und Version 1.

Sie können eine Firewall am ausgehenden Port 445 installieren, die Sie vor allen Personen schützt, die betrügerische Nutzdaten senden, die die automatische Authentifizierung erzwingen. Dies schützt jedoch nicht vor dem Eindringen in mobile Geräte.

Sie können Gruppenrichtlinien konfigurieren, um die Verwendung von Gruppenrichtlinienobjektprogrammen in Windows 7 einzuschränken und die Ziele der NTLM-Authentifizierung einzuschränken. Jeder behauptet, die beste Lösung sei Kerberos. Das Problem ist jedoch, dass die Organisation alles auf Kerberos umstellen muss, und dies funktioniert nicht, da es viele Dinge gibt, die Kerberos nicht unterstützen. Eine andere Sache ist, dass Sie, wenn Sie Kerberos aktivieren, NTLM überhaupt nicht unterstützen können. Gleiches gilt für das Signieren, da Sie für diejenigen, die Sie nicht kennen, jedes Paket mit einem Original-Passwort-Hash signieren müssen. Signieren von LDAP, SMB-Signaturen, erweiterte HTTP-Authentifizierung - all dies wird von Cerberus nicht unterstützt, sodass die Leute fälschlicherweise glauben, dass Signaturen alle Probleme lösen. Wenn Sie obligatorische Signaturen erzwingen, kann dies viele Dinge deaktivieren.

Um die Organisation zu schützen, müssen Sie daher ein gewisses Gleichgewicht halten. Wenn Sie ein Endbenutzer sind, machen Sie sich normalerweise keine Sorgen über solche Dinge. Wenn Sie jedoch Systemadministrator eines Unternehmens sind, besteht das größte Problem für Sie darin, dass Sie die Verwendung von NTLM ablehnen müssen.

Da Windows 8 und Windows 2012 standardmäßig weiterhin NTLM unterstützen, wird es einige Zeit dauern, dies aufzugeben und Kerberos weiter zu verwenden, und ich hoffe, mein Tool hilft. Es wird am Dienstag, den 31. Juli veröffentlicht, sobald ich unter zfasel.com/tools nach Hause komme . Es ist auch auf der DVD dieser Konferenz sowie auf meinen Folien verfügbar. Wenn Sie mir sagen möchten, wie beschissen meine Leistung und meine Demo waren, senden Sie eine E-Mail an dc20@zfasel.com oder suchen Sie auf Twitter nach meinem @ zfasel-Spitznamen.



Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung aufgeben oder Ihren Freunden empfehlen, einen Rabatt von 30% für Habr-Benutzer auf ein einzigartiges Analogon von Einstiegsservern, das wir für Sie erfunden haben: Die ganze Wahrheit über VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s von $ 20 oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).

VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s bis zum Frühjahr kostenlos, wenn Sie für einen Zeitraum von sechs Monaten bezahlen, können Sie hier bestellen.

Dell R730xd 2 mal günstiger? Nur wir haben 2 x Intel Dodeca-Core Xeon E5-2650v4 128 GB DDR4 6 x 480 GB SSD 1 Gbit / s 100 TV von 249 US-Dollar in den Niederlanden und den USA! Lesen Sie mehr über den Aufbau eines Infrastrukturgebäudes. Klasse mit Dell R730xd E5-2650 v4 Servern für 9.000 Euro für einen Cent?

Source: https://habr.com/ru/post/de436474/


All Articles