Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Potato — Windows-Local-Privilege-Escalation-Exploit unter Verwendung von NBNS-Spoofing, gefälschtem WPAD-Proxy und HTTP-zu-SMB-NTLM-Relay, um NT AUTHORITY\SYSTEM-Zugriff zu erlangen. | Kitploit
Tools/GitHubGitHub/foxglovesec/potato
Privilege EscalationExploitationLaterale BewegungPost-ExploitationNetzwerksicherheitPenetrationstestsAuthentifizierungRed Teaming
GitHubfoxglovesec/potato

Potato

Windows-Local-Privilege-Escalation-Exploit unter Verwendung von NBNS-Spoofing, gefälschtem WPAD-Proxy und HTTP-zu-SMB-NTLM-Relay, um NT AUTHORITY\SYSTEM-Zugriff zu erlangen.

Repository anzeigen
745168vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

#Potato Privilege Escalation unter Windows 7, 8, 10, Server 2008, Server 2012

###Funktionsweise Potato nutzt bekannte Probleme in Windows aus, um lokale Privilegieneskalation zu erlangen, namentlich NTLM-Relay (speziell HTTP->SMB-Relay) und NBNS-Spoofing.

Mit den unten beschriebenen Techniken ist es einem unprivilegierten Benutzer möglich, in Standardkonfigurationen Zugriff auf Windows-Hosts auf dem Niveau von „NT AUTHORITY\SYSYTEM" zu erlangen.

Der Exploit besteht aus 3 Hauptteilen, die alle über Kommandozeilen-Schalter einigermaßen konfigurierbar sind:

#####1. Lokaler NBNS-Spoofer NBNS ist ein Broadcast-UDP-Protokoll zur Namensauflösung, das in Windows-Umgebungen häufig verwendet wird. Beim Penetrationstesting sniffen wir oft den Netzwerkverkehr und antworten auf NBNS-Anfragen, die im lokalen Netzwerk beobachtet werden. Für Zwecke der Privilegieneskalation können wir jedoch nicht davon ausgehen, dass wir den Netzwerkverkehr sniffen können – wie können wir also NBNS-Spoofing bewerkstelligen?

Wenn wir im Voraus wissen können, für welchen Host eine Zielmaschine (in diesem Fall ist unser Ziel 127.0.0.1) eine NBNS-Anfrage senden wird, können wir eine Antwort konstruieren und den Zielhost mit NBNS-Antworten fluten (da es sich um ein UDP-Protokoll handelt). Eine Komplikation besteht darin, dass ein 2-Byte-Feld im NBNS-Paket, die TXID, in Anfrage und Antwort übereinstimmen muss. Wir können dies überwinden, indem wir schnell fluten und über alle 65536 möglichen Werte iterieren.

Was aber, wenn der Host, den wir spoofen wollen, bereits einen DNS-Eintrag hat? Nun, wir können DNS-Lookups auf eine lustige Weise zum Scheitern bringen. Mit einer Technik namens „Port Exhaustion" binden wir an jeden einzelnen UDP-Port. Wenn Sie versuchen, einen DNS-Lookup durchzuführen, wird er fehlschlagen, weil kein verfügbarer Quellport vorhanden ist, an den die DNS-Antwort gelangen könnte.

In Tests hat sich dies als 100% effektiv erwiesen.

#####2. Fake-WPAD-Proxy-Server Mit der Fähigkeit, NBNS-Antworten zu spoofen, können wir unseren NBNS-Spoofer auf 127.0.0.1 richten. Wir fluten die Zielmaschine (unsere eigene Maschine) mit NBNS-Antwortpaketen für den Host „WPAD" oder „WPAD.DOMAIN.TLD" und geben an, dass der WPAD-Host die IP-Adresse 127.0.0.1 hat.

Gleichzeitig betreiben wir lokal auf 127.0.0.1 einen HTTP-Server. Wenn er eine Anfrage für „http://wpad/wpad.dat" erhält, antwortet er mit etwas wie dem Folgenden:

root@kitploit:~
FindProxyForURL(url,host){
	if (dnsDomainIs(host, "localhost")) return "DIRECT";
	return "PROXY 127.0.0.1:80";}

Dies führt dazu, dass der gesamte HTTP-Verkehr auf dem Ziel über unseren auf 127.0.0.1 laufenden Server umgeleitet wird.

Interessanterweise betrifft dieser Angriff, selbst wenn er von einem Benutzer mit geringen Privilegien durchgeführt wird, alle Benutzer der Maschine. Dazu gehören Administratoren und Systemkonten. Siehe die Screenshots „egoldstein_spoofing.png" und „dade_spoofed.png" als Beispiel.

#####3. HTTP -> SMB NTLM Relay Da nun der gesamte HTTP-Verkehr durch einen von uns kontrollierten Server fließt, können wir Dinge tun wie NTLM-Authentifizierung anfordern...

Im Potato-Exploit werden alle Anfragen mit einer 302-Weiterleitung auf „http://localhost/GETHASHESxxxxx" umgeleitet, wobei xxxxx ein eindeutiger Bezeichner ist. Anfragen an „http://localhost/GETHASHESxxxxx" antworten mit einer 401-Anfrage zur NTLM-Authentifizierung.

Die NTLM-Anmeldeinformationen werden an den lokalen SMB-Listener weitergeleitet, um einen neuen Systemdienst zu erstellen, der einen benutzerdefinierten Befehl ausführt. Dieser Befehl wird mit der Berechtigung „NT AUTHORITY\SYSTEM" ausgeführt.

###Verwendung des Exploits Die Verwendung ist derzeit betriebssystemabhängig.

Sie ist außerdem manchmal etwas unzuverlässig, aufgrund der Eigenheiten, wie Windows Proxy-Einstellungen und die WPAD-Datei handhabt. Wenn der Exploit oft nicht funktioniert, ist es erforderlich, ihn laufen zu lassen und zu warten. Wenn Windows bereits einen zwischengespeicherten Eintrag für WPAD hat oder direkten Internetzugriff zulässt, weil kein WPAD gefunden wurde, kann es 30-60 Minuten dauern, bis es aktualisiert wird. Es ist notwendig, den Exploit laufen zu lassen und später, nach Ablauf dieser Zeit, erneut zu versuchen, ihn auszulösen.

Die hier aufgeführten Techniken sind vom einfachsten zum komplexesten geordnet. Jede spätere Technik in der Liste sollte auf allen vorherigen Versionen funktionieren. Für jede sind Videos und Screenshots enthalten.

#####Windows 7 – siehe https://www.youtube.com/watch?v=Nd6f5P3LSNM Windows 7 kann über den Windows Defender Update-Mechanismus ziemlich zuverlässig ausgenutzt werden.

Potato.exe enthält Code, um dies automatisch auszulösen. Führen Sie einfach Folgendes aus: Potato.exe -ip <local ip> -cmd <command to run> -disable_exhaust true

Dies startet den NBNS-Spoofer, spoofed „WPAD" auf 127.0.0.1 und prüft dann auf Windows Defender-Updates.

Wenn Ihr Netzwerk bereits einen DNS-Eintrag für „WPAD" hat, können Sie „-disable_exhaust false" versuchen. Dies sollte dazu führen, dass der DNS-Lookup fehlschlägt und auf NBNS zurückgegriffen wird. Wir haben dies ein paar Mal getestet und es hat funktioniert

#####Windows Server 2008 – siehe https://www.youtube.com/watch?v=z_IGPWgL5SY Da Windows Server nicht mit Defender ausgeliefert wird, benötigen wir eine alternative Methode. Stattdessen prüfen wir einfach auf Windows-Updates. Der andere Haken ist, dass zumindest in meiner Domäne Server 2K8 WPAD.DOMAIN.TLD statt nur WPAD wollte. Das Folgende ist ein Beispiel für die Verwendung:

Potato.exe -ip <local ip> -cmd <command to run> -disable_exhaust true -disable_defender true --spoof_host WPAD.EMC.LOCAL

Nachdem dies erfolgreich ausgeführt wurde, prüfen Sie einfach auf Windows-Updates. Wenn es nicht ausgelöst wird, warten Sie etwa 30 Minuten mit laufendem Exploit und prüfen Sie erneut. Wenn es immer noch nicht funktioniert, versuchen Sie, tatsächlich ein Update herunterzuladen.

Wenn Ihr Netzwerk bereits einen DNS-Eintrag für „WPAD" hat, können Sie „-disable_exhaust false" versuchen. Dies sollte dazu führen, dass der DNS-Lookup fehlschlägt und auf NBNS zurückgegriffen wird. Wir haben dies ein paar Mal getestet und es hat funktioniert

#####Windows 8/10/Server 2012 – siehe https://www.youtube.com/watch?v=Kan58VeYpb8 In den neuesten Windows-Versionen scheint Windows Update die in „Internetoptionen" festgelegten Proxy-Einstellungen möglicherweise nicht mehr zu berücksichtigen oder nicht mehr auf WPAD zu prüfen. Stattdessen werden die Proxy-Einstellungen für Windows Update über „netsh winhttp proxy..." gesteuert.

Stattdessen verlassen wir uns bei diesen Versionen auf eine neuere Funktion von Windows, den „automatischen Updater für nicht vertrauenswürdige Zertifikate". Details finden sich unter https://support.microsoft.com/en-us/kb/2677070 und https://technet.microsoft.com/en-us/library/dn265983.aspx

Aus dem TechNet-Artikel: „Die Betriebssysteme Windows Server 2012 R2, Windows Server 2012, Windows 8.1 und Windows 8 enthalten einen automatischen Aktualisierungsmechanismus, der täglich Zertifikatvertrauenslisten (CTLs) herunterlädt."

Es scheint, dass dieser Teil von Windows weiterhin WPAD verwendet, selbst wenn die winhttp-Proxy-Einstellung auf „direct" gesetzt ist.

In diesem Fall ist die Verwendung von Potato wie folgt: Potato.exe -ip <local ip> -cmd <cmd to run> -disable_exhaust true -disable_defender true

Zu diesem Zeitpunkt müssen Sie bis zu 24 Stunden warten oder einen anderen Weg finden, um dieses Update auszulösen.

Wenn Ihr Netzwerk bereits einen DNS-Eintrag für „WPAD" hat, können Sie „-disable_exhaust false" versuchen. Dies sollte dazu führen, dass der DNS-Lookup fehlschlägt und auf NBNS zurückgegriffen wird. Wir haben dies ein paar Mal getestet und es hat funktioniert

###Gegenmaßnahmen

Das Aktivieren von „Erweiterter Schutz für die Authentifizierung" in Windows sollte NTLM-Relay-Angriffe stoppen.

SMB Signing kann diese Art von Angriff ebenfalls abschwächen, allerdings würde dies meinerseits noch etwas mehr Recherche erfordern, um es zu bestätigen.

###Off-Broadcast-NBNS-Spoofing Mit derselben NBNS-Spoofing-Technik wie beim Potato-Exploit können wir NBNS-Spoofing gegen jeden Host durchführen, mit dem wir über UDP 137 kommunizieren können. Wir müssen lediglich UDP-Pakete schnell genug senden, um eine gültige Antwort einzuschleusen, bevor die NBNS-Anfrage abläuft.

Ein Demo-Video dazu ist unter https://www.youtube.com/watch?v=Mzn7ozkyG5g zu sehen

Das Demo-Labor hat folgenden Aufbau:

PFSense-Firewall 10.0.0.0/24 -> Unternehmens-LAN 10.0.1.0 /24 -> Servernetzwerk

Vom Unternehmensnetzwerk aus greifen wir eine Maschine im Servernetzwerk an.

Verwendung: python Responder.py –I eth0 –spoof <target>:<spoof address>:<spoof host>

Tool herunterladen