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
Potato — Exploit di escalation locale dei privilegi su Windows che utilizza lo spoofing NBNS, un proxy WPAD falso e il relay NTLM da HTTP a SMB per ottenere l'accesso come NT AUTHORITY\SYSTEM. | Kitploit
Strumenti/GitHubGitHub/foxglovesec/potato
Escalation di PrivilegiExploitMovimento LateralePost-ExploitSicurezza di RetePenetration TestingAutenticazioneRed Teaming
GitHubfoxglovesec/potato

Potato

Exploit di escalation locale dei privilegi su Windows che utilizza lo spoofing NBNS, un proxy WPAD falso e il relay NTLM da HTTP a SMB per ottenere l'accesso come NT AUTHORITY\SYSTEM.

Vedi Repository
7451685 anni faRevisionato da Kitploit

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

#Potato Escalation de privilèges sur Windows 7, 8, 10, Server 2008, Server 2012

###Come funziona Potato sfrutta problemi noti in Windows per ottenere l'escalation dei privilegi locali, ovvero il relay NTLM (in particolare il relay HTTP->SMB) e lo spoofing NBNS.

Utilizzando le tecniche descritte di seguito, è possibile per un utente non privilegiato ottenere un accesso a livello "NT AUTHORITY\SYSYTEM" su un host Windows nelle configurazioni predefinite.

L'exploit è composto da 3 parti principali, tutte in qualche modo configurabili tramite parametri della riga di comando:

#####1. Spoofer NBNS locale NBNS è un protocollo UDP broadcast per la risoluzione dei nomi comunemente utilizzato negli ambienti Windows. Nel penetration testing, spesso intercettiamo il traffico di rete e rispondiamo alle query NBNS osservate su una rete locale. Ai fini dell'escalation dei privilegi, non possiamo presumere di essere in grado di intercettare il traffico di rete, quindi come possiamo realizzare lo spoofing NBNS?

Se possiamo sapere in anticipo per quale host una macchina target (in questo caso il nostro target è 127.0.0.1) invierà una query NBNS, possiamo creare una risposta e inondare l'host target con risposte NBNS (poiché è un protocollo UDP). Una complicazione è che un campo di 2 byte nel pacchetto NBNS, il TXID, deve corrispondere nella richiesta e nella risposta. Possiamo superare questo problema inondando rapidamente e iterando su tutti i 65536 valori possibili.

E se l'host che stiamo cercando di spoofare ha già un record DNS? Beh, possiamo FORZARE le ricerche DNS a fallire in modo divertente. Usando una tecnica chiamata "port exhaustion" ci leghiamo a ogni singola porta UDP. Quando si tenta di eseguire una ricerca DNS questa fallirà perché non ci sarà alcuna porta sorgente disponibile per la risposta DNS.

Nei test, questo si è dimostrato efficace al 100%.

#####2. Server proxy WPAD falso Con la capacità di spoofare le risposte NBNS, possiamo indirizzare il nostro spoofer NBNS verso 127.0.0.1. Inondiamo la macchina target (la nostra macchina) con pacchetti di risposta NBNS per l'host "WPAD", o "WPAD.DOMAIN.TLD", e dichiariamo che l'host WPAD ha l'indirizzo IP 127.0.0.1.

Allo stesso tempo, eseguiamo un server HTTP localmente su 127.0.0.1. Quando riceve una richiesta per "http://wpad/wpad.dat", risponde con qualcosa di simile a quanto segue:

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

Questo causerà il reindirizzamento di tutto il traffico HTTP sul target attraverso il nostro server in esecuzione su 127.0.0.1.

È interessante notare che questo attacco, quando eseguito anche da un utente con privilegi bassi, influenzerà tutti gli utenti della macchina. Questo include amministratori e account di sistema. Vedere gli screenshot "egoldstein_spoofing.png" e "dade_spoofed.png" per un esempio.

#####3. Relay NTLM HTTP -> SMB Con tutto il traffico HTTP ora che fluisce attraverso un server che controlliamo, possiamo fare cose come richiedere l'autenticazione NTLM...

Nell'exploit Potato, tutte le richieste vengono reindirizzate con un redirect 302 a "http://localhost/GETHASHESxxxxx", dove xxxxx è un identificatore univoco. Le richieste a "http://localhost/GETHASHESxxxxx" rispondono con una richiesta 401 per l'autenticazione NTLM.

Le credenziali NTLM vengono inoltrate al listener SMB locale per creare un nuovo servizio di sistema che esegue un comando definito dall'utente. Questo comando verrà eseguito con privilegi "NT AUTHORITY\SYSTEM".

###Utilizzo dell'exploit L'utilizzo attualmente dipende dal sistema operativo.

A volte è anche un po' instabile, a causa delle stranezze nel modo in cui Windows gestisce le impostazioni proxy e il file WPAD. Spesso quando l'exploit non funziona, è necessario lasciarlo in esecuzione e attendere. Quando Windows ha già una voce in cache per WPAD, o sta consentendo l'accesso diretto a Internet perché non è stato trovato alcun WPAD, potrebbero essere necessari 30-60 minuti per l'aggiornamento. È necessario lasciare l'exploit in esecuzione e provare a riattivarlo più tardi, dopo che questo tempo è trascorso.

Le tecniche elencate qui sono ordinate dalla meno alla più complessa. Qualsiasi tecnica successiva nell'elenco dovrebbe funzionare su tutte le versioni precedenti. Video e screenshot sono inclusi per ciascuna.

#####Windows 7 - vedere https://www.youtube.com/watch?v=Nd6f5P3LSNM Windows 7 può essere sfruttato in modo abbastanza affidabile attraverso il meccanismo di aggiornamento di Windows Defender.

Potato.exe ha il codice per attivarlo automaticamente. È sufficiente eseguire quanto segue: Potato.exe -ip <local ip> -cmd <command to run> -disable_exhaust true

Questo avvierà lo spoofer NBNS, spoferà "WPAD" su 127.0.0.1, quindi controllerà gli aggiornamenti di Windows Defender.

Se la tua rete ha già una voce DNS per "WPAD", puoi provare "-disable_exhaust false". Questo dovrebbe causare il fallimento della ricerca DNS e dovrebbe ricadere su NBNS. L'abbiamo testato un paio di volte e ha funzionato

#####Windows Server 2008 - vedere https://www.youtube.com/watch?v=z_IGPWgL5SY Poiché Windows Server non viene fornito con Defender, abbiamo bisogno di un metodo alternativo. Invece controlleremo semplicemente gli aggiornamenti di Windows. L'altra avvertenza è che, almeno nel mio dominio, Server 2K8 voleva WPAD.DOMAIN.TLD invece di solo WPAD. Quello che segue è un esempio di utilizzo:

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

Dopo che questo viene eseguito con successo, è sufficiente controllare gli aggiornamenti di Windows. Se non si attiva, attendere circa 30 minuti con l'exploit in esecuzione e controllare di nuovo. Se ancora non funziona, prova a scaricare effettivamente un aggiornamento.

Se la tua rete ha già una voce DNS per "WPAD", puoi provare "-disable_exhaust false". Questo dovrebbe causare il fallimento della ricerca DNS e dovrebbe ricadere su NBNS. L'abbiamo testato un paio di volte e ha funzionato

#####Windows 8/10/Server 2012 - vedere https://www.youtube.com/watch?v=Kan58VeYpb8 Nelle versioni più recenti di Windows, sembra che Windows Update potrebbe non rispettare più le impostazioni proxy impostate in "Opzioni Internet", o controllare WPAD. Invece le impostazioni proxy per Windows Update sono controllate usando "netsh winhttp proxy..."

Invece per queste versioni, ci affidiamo a una funzionalità più recente di Windows, l'"aggiornamento automatico dei certificati non attendibili". I dettagli sono disponibili su https://support.microsoft.com/en-us/kb/2677070 e https://technet.microsoft.com/en-us/library/dn265983.aspx

Dall'articolo technet "I sistemi operativi Windows Server 2012 R2, Windows Server 2012, Windows 8.1 e Windows 8 includono un meccanismo di aggiornamento automatico che scarica gli elenchi di certificati attendibili (CTL) su base giornaliera."

Sembra che questa parte di Windows utilizzi ancora WPAD, anche quando l'impostazione proxy winhttp è impostata su direct.

In questo caso l'utilizzo di Potato è il seguente: Potato.exe -ip <local ip> -cmd <cmd to run> -disable_exhaust true -disable_defender true

A questo punto, dovrai attendere fino a 24 ore o trovare un altro modo per attivare questo aggiornamento.

Se la tua rete ha già una voce DNS per "WPAD", puoi provare "-disable_exhaust false". Questo dovrebbe causare il fallimento della ricerca DNS e dovrebbe ricadere su NBNS. L'abbiamo testato un paio di volte e ha funzionato

###Mitigazioni

Abilitare "Protezione estesa per l'autenticazione" in Windows dovrebbe fermare gli attacchi di relay NTLM.

Anche la firma SMB potrebbe mitigare questo tipo di attacco, tuttavia ciò richiederebbe ulteriori ricerche da parte mia per confermarlo.

###Spoofing NBNS off broadcast Usando la stessa tecnica di spoofing NBNS dell'exploit Potato, possiamo eseguire lo spoofing NBNS contro qualsiasi host con cui possiamo comunicare su UDP 137. Dobbiamo semplicemente inviare pacchetti UDP abbastanza velocemente da inserire una risposta valida prima che la richiesta NBNS vada in timeout.

Un video dimostrativo di questo può essere visto su https://www.youtube.com/watch?v=Mzn7ozkyG5g

Il laboratorio dimostrativo ha la seguente configurazione:

Firewall PFSense 10.0.0.0/24 -> LAN aziendale 10.0.1.0 /24 -> Rete server

Dalla rete aziendale, attaccheremo una macchina sulla rete server.

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

Scarica lo strumento