Visualizzazione post con etichetta vulnerabilità. Mostra tutti i post
Visualizzazione post con etichetta vulnerabilità. Mostra tutti i post

venerdì 2 agosto 2019

HTTP, P2P e WebRTC leak

Nell'articolo Verifica DNS Leak ho già parlato dei leak relativi ai DNS. Un concetto simile può essere applicato anche alle richieste HTTP, P2P e WebRTC.

Per verificare se su propri dispositivi le richieste HTTP e quelle relative alle reti P2P soffrono di problemi di leak basta eseguire il test sui seguenti siti https://www.doileak.com e https://ipleak.net.


www.doileak.com
FIG 1 - www.doileak.com


ipleak.net
FIG 2 - ipleak.net

WebRTC è un protocollo utilizzato dai browser per stabilire una connessione punto a punto con il server per ricevere e trasmettere stream audio/video. Questo tipo di connessioni possono bypassare il tunnel VPN (attraverso il quale passa il normale flusso dati) e svelare il reale indirizzo IP dell'utente. Anche per quanto riguarda i WebRTC leak è possibile verificare se il proprio browser è vulnerabile utilizzando il test presente su https://www.doileak.com.

Un altro tipo di leak potenzialmente pericoloso è quello che riguarda i browser di Microsoft: Internet Explorer e Edge. Tali browser, infatti, possono comunicare all'esterno informazioni sensibili come il nome utente e l'hash della password di Windows. Tali informazioni non solo facilitano la violazione dell'account, nel caso di password piuttosto semplici, tramite attacchi di brute force ma rappresentano "un'impronta digitale" che consente di tracciare l'utente anche attraverso Tunnel VPN. Per verificare questa vulnerabilità basta visitare la pagina https://msleak.perfect-privacy.com. Il sito è sicuro ma, contenendo uno script che individua ed estrae informazioni personali attraverso il browser, potrebbe essere bloccato da qualche antivirus/antimalware.
msleak.perfect-privacy.com
FIG 3 - msleak.perfect-privacy.com






giovedì 1 agosto 2019

Verifica DNS Leak

Quando si è connessi ad Internet è necessario fare attenzione ai cosiddetti leak, ovvero situazioni che possono rilevare informazioni personali teoricamente protette. Tra i leak più comuni troviamo i DNS leak. Anche quando connessi tramite una VPN bisogna prestare attenzione in quanto non tutte le VPN proteggono gli utenti dai DNS leak e le richieste di risoluzione DNS potrebbero continuare ad essere inviate al provider che fornisce la connettività con buona pace della nostra privacy. Alcuni Internet provider e alcune reti aziendali, inoltre, potrebbero implementare tecniche come il Transparent DNS Proxy che intercetta le chiamate DNS deviandole verso server locali indipendentemente dalla configurazione impostata dall'utente sui propri dispositivi.
Per testare la propria configurazione è possibile visitare l'indirizzo https://www.dnsleaktest.com.

DNS Leak Test
FIG 1 - DNS Leak Test


Eseguendo un test esteso verranno rilevati i DNS a cui il nostro dispositivo invia le richieste di risoluzione indirizzi. Se siamo connessi ad una VPN e i server mostrati in elenco non sono quelli forniti dal servizio VPN allora abbiamo un problema di DNS Leak e i nostri dati potrebbero essere esposti. I proprietari dei server, infatti, possono associare il nostro indirizzo IP al nome dei siti che visitiamo e mantenere/rivendere queste informazioni per un tempo indefinito.


Risultati test DNS Leak
FIG 2 - Risultati test DNS Leak





venerdì 8 giugno 2018

Kali Linux: Eseguire la scansione delle vulnerabilità delle applicazioni web con WMAP

Originariamente sviluppato a partire dal tool SQLMap, WMAP è un potente strumento che consente di verificare eventuali vulnerabilità di applicazioni web tramite il Framework Metasploit.
Si tratta di uno scanner di vulnerabilità di applicazioni web integrato in Metasploit. In questo articolo verranno mostrati i passi da seguire per verificare la presenza di eventuali vulnerabilità di un server web. A tale scopo verrà utilizzata la distribuzione Kali Linux che integra tutti gli strumenti necessari.

ATTENZIONE:
Danneggiare un sistema informatico (anche da remoto) rappresenta un reato penale. Le informazioni presenti in quest'articolo vanno utilizzate solo per testare/verificare sistemi di cui si è titolari. Declino ogni responsabilità civile e penale derivante da un utilizzo non legale delle informazioni presentate in questo articolo a solo scopo didattico.


Prima di procedere è consigliabile aggiornare tutti i pacchetti installati in Kali Linux alle versioni più recenti lanciando i seguenti 2 comandi da terminale
sudo apt-get update
sudo apt-get upgrade

WMAP utilizza il database PostgreSQL di Metasploit per memorizzare i risultati della scansione pertanto, prima di avviarlo, è necessario attivare/verificare la connessione al database. 
Avviare il servizio postgresql tramite il seguente comando da terminale
sudo service postgresql start
quindi inizializzare il database eseguendo il comando
sudo msfdb init
Avvio del servizio PostgreSQL e inizializzazione del database
FIG 1 - Avvio del servizio PostgreSQL e inizializzazione del database
Terminata l'inizializzazione del database, avviare la console Metasploit eseguendo
sudo msfconsole
Avvio della console Metasploit Framework
FIG 2 - Avvio della console Metasploit Framework
All'interno della console Metasploit Framework caricare il plugin WMAP digitando
load wmap
Caricamento del plugin WMAP nella console Metasploit Framework
FIG 3 - Caricamento del plugin WMAP nella console Metasploit Framework
Per poter effettuare la scansione delle vulnerabilità è necessario, tramite wmap_sites e lo switch -a, definire il sito da verificare specificandone l'URL/IP
Ad esempio, supponendo che il server web da verificare abbia indirizzo 192.168.0.10 si utilizza il comando
wmap_sites -a http://192.168.0.10


Definizione siti con wmap_sites
FIG 4 - Definizione siti con wmap_sites
E' possibile specificare più siti. Per visualizzare l'elenco dei siti definiti si utilizza il comando
wmap_sites -l
Visualizzare l'elenco dei siti definiti
FIG 5 - Visualizzare l'elenco dei siti definiti
A questo punto bisogna impostare il sito web come target utilizzando lo switch -t con l'URL/IP o lo switch -d con l'ID. L'ID è quello visualizzato dall'output del comando wmap_sites -l come visibile in FIG 5.
Ad es:
wmap_targets -t http://192.168.0.10
wmap_targets -d 0
oppure, per testare un particolare URL del sito
wmap_targets -t http://192.168.0.10/administrator/index.php


Definizione target con wmap_targets
FIG 6 - Definizione target con wmap_targets

Anche con wmap_targets è possibile utilizzare lo switch -l per visualizzare l'elenco dei target definiti
wmap_targets -l

Eseguire il comando 
wmap_run -t
per visualizzare/predisporre l'elenco dei moduli che verranno utilizzati per la scansione del sistema target definito.
Visualizzare i moduli abilitati con wmap_run
FIG 6 - Visualizzare i moduli abilitati con wmap_run
Per lanciare la scansione del sistema target, eseguire il comando
wmap_run -e
La scansione completa del sistema potrebbe impiegare diverso tempo quindi pazientate.
Esecuzione scansione del sistema target
FIG 7 - Esecuzione scansione del sistema target
Al termine della scansione utilizzare il seguente comando da terminale per visualizzare l'elenco delle vulnerabilità riscontrate
vulns
Visualizzare l'elenco delle vulnerabilità riscontrate
FIG 8 - Visualizzare l'elenco delle vulnerabilità riscontrate
Le vulnerabilità individuate saranno evidenziate tramite l'identificatore CVE (Common Vulnerabilities and Exposures). Per verificare la disponibilità di eventuali exploit basterà effettuare una ricerca su google o su www.exploit-db.com.






venerdì 26 gennaio 2018

Kali Linux: Scovare l'indirizzo IP del server protetto da Cloudflare

Milioni di siti web, al fine di proteggersi da attacchi DDos (Distributed Denial of Service) e aumentare la velocità di accesso, utilizzano il servizio Cloudflare.
Cloudflare agisce in maniera analoga ad un CDN (Content Delivery Network) ma molto più semplice da configurare. Il sistema si interpone tra il server che ospita il sito web e il visitatore filtrando gli utenti indesiderati (con conseguente risparmio di banda e risorse) e aumentando la sicurezza.
Per utilizzare Cloudflare è necessario registrarsi sul sito www.cloudflare.com, selezionare il servizio desiderato (quello per siti/blog personali è gratuito) quindi impostare i nameserver di Cloudflare come authoritative nameservers per il proprio dominio (generalmente questa operazione va effettuata dal pannello di gestione del dominio messo a disposizione dal proprio registrar).

Cloudflare dispone di numerosi data center sparsi per il mondo. Attraverso una tecnologia proprietaria denominata Anycast e attraverso i propri nameserver, Cloudflare dirotta tutte le richieste di accesso al sito al data center più vicino al visitatore. Il data center verifica l'attendibilità del visitatore analizzandone diverse caratteristiche tra cui l'indirizzo IP, la risorsa richiesta, il numero di richieste, la loro frequenza, ecc. Solo nel caso in cui il visitatore venga ritenuto affidabile, Cloudflare provvede a prelevare i dati contenuti nella cache aggiornata e, dopo aver applicato alcune ottimizzazioni, li restituisce al visitatore in maniera del tutto trasparente. 
Cloudflare
FIG 1 - Cloudflare
I visitatori non verranno mai in "contatto" con l'indirizzo IP del server che ospita il sito web.

Purtroppo, causa imperizia di alcuni amministratori che non limitano l'accesso ai propri server solo agli indirizzi IP di Cloudflare, molti siti web rimangono vulnerabili ed esposti ad attacchi. In questi casi, infatti, l'indirizzo pubblico del server "origine" rimane esposto e può essere individuato con l'utilizzo di alcuni tool come la piattaforma CensysCloudFlair.

Di seguito verrà mostrato come individuare l'indirizzo IP pubblico di un server "origine" vulnerabile protetto da Cloudflare utilizzando Kali Linux.

ATTENZIONE:
Danneggiare o violare un sistema informatico (anche da remoto) rappresenta un reato penale. Le informazioni presenti in quest'articolo vanno utilizzate solo per testare/verificare sistemi di cui si è titolari. Declino ogni responsabilità civile e penale derivante da un utilizzo non legale delle informazioni presentate in questo articolo a solo scopo didattico.


  • Posizionarsi sul sito https://censys.io e, se non si dispone già di un'account, crearne uno cliccando su Signup e seguendo le istruzioni a video. Al termine eseguire il logon con il proprio account.
    Sito web Censys.io
    FIG 2 - Sito web Censys.io
  • Posizionarsi sulla pagina https://censys.io/account/api e prendere nota di API ID e Secret;

    Censys, API ID e Secret
    FIG 3 - Censys, API ID e Secret
  • Aprire una finestra terminale di Kali Linux e digitare i seguenti comandi
    export CENSYS_API_ID=<API_ID_Assegnato>
    export CENSYS_API_SECRET=<API_Secret_Assegnato> 

    sostituendo 
    <API_ID_Assegnato><API_Secret_Assegnato> con i valori API ID e Secret ottenuti nel passo precedente;
    Kali Linux, impostare variabili d'ambiente CENSYS_API_ID e CENSYS_API_SECRET
    FIG 4 - Kali Linux, impostare variabili d'ambiente CENSYS_API_ID e CENSYS_API_SECRET
  • Clonare il repository digitando, nella finestra terminale, il seguente comando
    git clone https://github.com/christophetd/cloudflair.git
  • Kali Linux, clonazione repository cloudflair
    FIG 5 - Kali Linux, clonazione repository cloudflair

  • Installare le dipendenze del pacchetto eseguendo i comandi 

    cd cloudflair
    pip install -r requirements.txt
  • Kali Linux, installazione dipendenze di CloudFlair
    FIG 6 - Kali Linux, installazione dipendenze di CloudFlair

  • Per individuare l'indirizzo IP del server "origine" eseguire il comando
    python cloudflair.py myvulnerable.site
    sostituendo myvulnerable.site con l'indirizzo del sito web che si intende verificare. L'output sarà simile a quello mostrato in FIG 7 e sono evidenziati gli indirizzi IP dei server "origine".
    Output CloudFlair
    FIG 7 - Output CloudFlair






martedì 9 gennaio 2018

Kali Linux: Sfruttare vulnerabilità di Intel Active Management Technology per accedere ad un sistema remoto

Introduzione

Presentata per la prima volta all'Intel Developer Forum Fall del 2004, Active Management Technology (AMT) consente, tramite le funzionalità integrate e applicazioni di gestione e sicurezza di terze parti, la gestione remota del sistema permettendo di aggiornarlo, ripararlo e proteggerlo. Tale tecnologia, inclusa nei processori Intel Core con Intel vPro e in determinati processori Intel Xeon, opera a livello firmware e consente di gestire un sistema remoto indipendentemente dal sistema operativo installato anche se è spento o se presenta componenti guasti (ad. es il disco fisso).

Intel Active Management Technology (AMT), Intel Standard Manageability (ISM) e Intel Small Business Technology con versioni del firmware dalla 6.x alla 11.6 presentano una grave falla che permette di prendere il controllo dei sistemi gestiti con tali tecnologie.  La vulnerabilità non è presente sui PC consumer, sui server Intel che utilizzano Intel Server Platform Services (Intel SPS), sui processori Intel Xeon E3 e E5 che utilizzano il firmware Intel SPS. Maggiori dettagli sono disponibili sulla pagina messa a disposizione da Intel.


Come funziona

L'accesso da remoto a Intel Active Management Technology avviene attraverso una semplice interfaccia web gestita da un servizio in ascolto sulle porte 16992 e 16993. All'accesso vengono generalmente richieste utenza e password che vanno a costruire la passphrase inviata impiegando lo standard HTTP Digest Authentication: all'utenza e alla password viene applicata una funzione hash utilizzando un nonce del firmware AMT insieme ad alcuni bit di metadata. La "response" venuta fuori da tale operazione viene inviata all'AMT, analizzata da quest'ultimo e, se ritenuta valida, l'utente verrà autorizzato all'accesso all'interfaccia di gestione. La vulnerabilità consente di avere accesso al AMT inviando una response vuota.
Decompilando in C il firmware Intel si nota un codice simile al seguente che chiarisce come sia possibile ottenere l'accesso al sistema inviando una response vuota
if(strncmp(computed_response, user_response, response_length))
 deny_access();

L'idea di fondo è quella di confrontare la response dell'utente (user_response) con quello che si attende il sistema (computed_response) e verificare se siano identiche o meno. La funzione strncmp limita il confronto al numero di caratteri indicato da response_length. Il problema nasce dal fatto che response_length viene calcolato sulla lunghezza di user_response pertanto fornendo una response vuota (lunghezza 0) non avviene alcun confronto e il sistema autorizza l'accesso.

Tale vulnerabilità è facilmente sfruttabile utilizzando un proxy, o un analogo editor di traffico, che consente al malintenzionato di inviare una response vuota. Di seguito mostrerò i passaggi, a scopo didattico, per accedere da remoto a AMT bypassando l'autenticazione utilizzando Kali Linux che integra già tutto il necessario.

ATTENZIONE:
Danneggiare o violare un sistema informatico (anche da remoto) rappresenta un reato penale. Le informazioni presenti in quest'articolo vanno utilizzate solo per testare/verificare sistemi di cui si è titolari. Declino ogni responsabilità civile e penale derivante da un utilizzo non legale delle informazioni presentate in questo articolo a solo scopo didattico.



Dimostrazione di un attacco

Innanzitutto è necessario disporre dell'indirizzo IP del sistema da attaccare. Tramite il motore di ricerca SHODAN  è possibile ricercare i sistemi vulnerabili a questo tipo di attacco.
Motore di ricerca Shodan
FIG 1 - Motore di ricerca Shodan


Avviare Firefox e nella barra degli indirizzi digitare l'indirizzo del sistema a cui vogliamo connetterci seguito dal numero di porta :16992.
Ad es.
http://192.168.1.1:16992
Apparirà la schermata di logon indicata in FIG 2
Schermata di Log On Intel Active Management Technology
FIG 2 - Schermata di Log On Intel Active Management Technology

Per raggiungere lo scopo verranno utilizzare alcune funzioni della suite di sicurezza Burp Suite, in particolare verranno utilizzare le funzioni Proxy, Intercept al fine di intercettare e modificare al volo i dati che vengono inviati al server. Avviare Burp Suite cliccando sull'apposita icona.
Kali Linux, Burp Suite
FIG 3 - Kali Linux, Burp Suite

Cliccare sul pulsante Next.
Burp Suite
FIG 4 - Burp Suite

Cliccare su Start Burp.
Burp Suite, Start Burp
FIG 5 - Burp Suite, Start Burp

Selezionare la scheda Proxy quindi assicurarsi che nella scheda Intercept sia presente la dicitura Intercept is on.


Burp Suite, Proxy, Intercept
FIG 6 - Burp Suite, Proxy, Intercept


Ritornare a Firefox e impostare il proxy come mostrato in FIG 7 (dal menu hamburger, Preferences, Advanced, selezionare Network quindi cliccare sul pulsante Settings).
Firefox, impostazione Proxy
FIG 7 - Firefox, impostazione Proxy


Nella pagina http://192.168.1.1:16992 cliccare sul pulsante Log on.
Ritornare a Burp Suite e cliccare sul pulsante Forward.
Burp Suite, intercettazione
FIG 8 - Burp Suite, intercettazione

In Firefox viene aperta la finestra di richiesta credenziali, inserire admin come user name e password a caso quindi cliccare su OK.
Intel Active Management Technology, inserimento credenziali
FIG 9 - Intel Active Management Technology, inserimento credenziali

Ritornare in Burp Suite, eliminare il valore contenuto in response e cliccare su Forward per inviare i dati modificati al server.
Burp Suite, modifica della response
FIG 10 - Burp Suite, modifica della response
Burp Suite, modifica della response
FIG 11 - Burp Suite, modifica della response
A questo punto siamo all'interno dell'interfaccia di gestione AMT. Possiamo creare un nostro account amministratore con una nostra password per gestire il sistema senza passare per Burp Suite o utilizzare programmi di terze parti come MeshCommander per prendere il controllo remoto della macchina.
Interfaccia Intel Active Management Technology
FIG 12 - Interfaccia Intel Active Management Technology
MeshCommander
FIG 13 - MeshCommander



Come Proteggersi

Intel, attraverso la pagina https://newsroom.intel.com/news/important-security-information-intel-manageability-firmware/ fornisce un tool per verificare se il proprio sistema è vulnerabile e una guida su come intervenire per ridurre i rischi derivati.
Se l'aggiornamento del firmware non è possibile si può pensare di disabilitare l'AMT sul sistema utilizzando tool di terze parti come quello scaricabile dal seguente link https://github.com/bartblaze/Disable-Intel-AMT







giovedì 6 luglio 2017

Verificare la vulnerabilità della connessione Wi-Fi utilizzando un modulo ESP8266

In questo articolo verrà mostrato come testare, utilizzato una board dotata del modulo ESP8266, alcune vulnerabilità delle reti Wi-Fi e impedire ai client di connettersi. 

ATTENZIONE:
Danneggiare o violare un sistema informatico (anche da remoto) rappresenta un reato penale. Le informazioni presenti in quest'articolo vanno utilizzate solo per testare/verificare sistemi di cui si è titolari. Declino ogni responsabilità civile e penale derivante da un utilizzo non legale delle informazioni presentate in questo articolo a solo scopo didattico.

Come funziona

Il protocollo Wi-Fi 802.11 prevede un particolare frame, chiamato deauthentication frame, che viene utilizzato per disconnettere in modo sicuro i client dalla rete Wi-Fi.

La gestione di questo tipo di pacchetti, almeno nelle versioni più diffuse del protocollo, non è cifrata e basta trovarsi nel range della rete Wi-Fi e conoscere il MAC address del router e dei client per poter eseguire l'attacco.


Modulo ESP8266

L'ESP8266 è un modulo Wi-Fi a basso costo dotato di uno stack TCP/IP completo e di una MCU (microcontroller unit). Esistono una gran varietà di moduli ESP8266 che vengono impiegati anche per la costruzione di board adatte a determinati scopi e, ovviamente, per l'IoT (Internet of Things). Un elenco dei moduli ESP8266 disponibili è mostrato nella seguente tabella.

Name Active pins Pitch Form factor LEDs Antenna Shielded Dimensions (mm)
ESP-01 6 0.1 in 2×4 DIL Yes PCB trace No 14.3 × 24.8
ESP-02 6 0.1 in 2×4 castellated No U.FL connector No 14.2 × 14.2
ESP-03 10 2 mm 2×7 castellated No Ceramic No 17.3 × 12.1
ESP-04 10 2 mm 2×4 castellated No None No 14.7 × 12.1
ESP-05 3 0.1 in 1×5 SIL No U.FL connector No 14.2 × 14.2
ESP-06 11 misc 4×3 dice No None Yes 14.2 × 14.7
ESP-07 14 2 mm 2×8 pinhole Yes Ceramic + U.FL connector Yes 20.0 × 16.0
ESP-07S 14 2 mm 2×8 pinhole No U.FL connector Yes 17.0 × 16.0
ESP-08 10 2 mm 2×7 castellated No None Yes 17.0 × 16.0
ESP-09 10 misc 4×3 dice No None No 10.0 × 10.0
ESP-10 3 2 mm? 1×5 castellated No None No 14.2 × 10.0
ESP-11 6 0.05  1×8 pinhole No Ceramic No 17.3 × 12.1
ESP-12 14 2 mm 2×8 castellated Yes PCB trace Yes 24.0 × 16.0
ESP-12E 20 2 mm 2×8 castellated Yes PCB trace Yes 24.0 × 16.0
ESP-12F 20 2 mm 2×8 castellated Yes PCB trace Yes 24.0 × 16.0
ESP-12S 14 2 mm 2×8 castellated Yes PCB trace Yes 24.0 × 16.0
ESP-13 16 1.5 mm 2×9 castellated No PCB trace Yes 18.0 × 20.0
ESP-14 22 2 mm 2×8 castellated +6 No PCB trace Yes 24.3 × 16.2

Le caratteristiche principali di questi moduli sono
  • CPU RISC Tensilica Xtensa L106 a 80MHz (160Mhz tramite overclock);
  • Memoria flash esterna QSPI che varia da 512KB a 4MB a seconda del modello (il modulo supporta fino a 16MB);
  • 64KB di memoria RAM per le istruzioni e 96KB di memoria RAM per i dati;
  • Stack TCP/IP completo e supporto alle reti Wi-Fi IEEE 802.11 b/g/n;
  • Fino a 16 pin GPIO;
  • UART / SPI/ I2C / I2S/ 1 modulo ADC a 10bit



NodeMCU DevKit

In questo articolo utilizzerò la board NodeMCU DevKit basata sul modulo ESP8266 ESP-12ELa board può essere acquistata per pochi euro e integra già tutto quello che serve:
  • Firmware NodeMCU;
  • Tutti i pin del modulo ESP-12E a bordo vengono riportati all'esterno;
  • Convertitore USB/seriale TTL (nella maggior parte dei casi si tratta del CP2102 prodotto da Silicon Labs) con connessione micro usb tramite la quale è possibile alimentare e programmare la board;
  • Regolatore di tensione a 3.3V;
  • Pulsanti Reset e Flash. Il primo riavvia il firmware caricato, il secondo viene utilizzato per riprogrammarlo.
NodeMCU DevKit ESP8266 ESP-12E
FIG 1 - NodeMCU DevKit ESP8266 ESP-12E

NodeMCU DevKit ESP8266 ESP-12E Pinout
FIG 2 - NodeMCU DevKit ESP8266 ESP-12E Pinout

Collegando la board alla porta USB del PC, Windows dovrebbe provvedere autonomamente a scaricare e installare i driver. In caso contrario, o nel caso si disponga di un sistema operativo diverso da Windows, è necessario provvedere al download e installazione manuale dei driver cercandoli in base al chip montato sulla board.

Chip CP2102 della Silicon Labs
Gran parte delle board NodeMCU DevKit montano un convertitore USB/Seriale TTL della Silicon Labs modello CP2102. I driver per Windows, Mac, Linux e Android per tale chip possono essere scaricati dal seguente link
Download Drivers CP2102 

Chip CH340G
Le schede più economiche montano il chip CH340G e generalmente non vengono riconosciute automaticamente da Windows. I driver possono essere scaricati da
Download Drivers CH340G 

Chip PL2303 
Se il chip montato sulla scheda è il modello PL2303, i driver ufficiali vanno scaricati da 
Download Drivers PL2303 



Installare il Firmware

I firmware disponibili per il dispositivo sono diversi, tra i più comuni ci sono:
- AT;
- MicroPython;
- NodeMCU.

Per il nostro scopo scarichiamo il firmware esp8266_deauther_1mb.bin da https://github.com/spacehuhn/esp8266_deauther/releases

Per flashare il firmware è necessario di un apposito programma. Consiglio di utilizzare NodeMCU flasher scaricabile dal seguente link
Download NodeMCU flasher 

NodeMCU flasher permette di caricare il firmware sul nostro NodeMCU DevKit. L'utilizzo è molto semplice:
  • Avviare la versione a 32 o 64 bit a seconda del proprio sistema operativo;
  • Selezionare, se non già impostata, la porta COM (virtuale) dove è collegato il NodeMCU DevKit;
    NodeMCU flasher, selezione della porta COM
    FIG 3 - NodeMCU flasher, selezione della porta COM
  • Posizionarsi sulla scheda Config e, nella prima casella (Path of binary file), selezionare il file .bin del firmware che si intende caricare. Assicurarsi che nella casella relativa all'offset sia impostato 0x00000.

    NodeMCU flasher, selezione del firmware da caricare
    FIG 4 - NodeMCU flasher, selezione del firmware da caricare
  • Ritornare alla scheda Operation e cliccare sul pulsante Flash per avviare la programmazione della board. Attendere il completamento dell'operazione.
    NodeMCU flasher, aggiornamento del firmware
    FIG 5 - NodeMCU flasher, aggiornamento del firmware
  • Al termine riavviare il dispositivo scollegando e ricollegando il cavo usb.



Avviare il test/attacco alla rete Wi-Fi

Il firmware precedentemente caricato trasforma la nostra board in un Access Point la cui rete Wi-Fi è identificata dal SSID pwned. Per avviare il test/attacco ad una rete Wi-Fi:
  • Eseguire la scansione delle reti Wi-Fi con il proprio dispositivo (smartphone, tablet, notebook, ecc) e connettersi alla rete pwned utilizzando la password deauther;
  • Una volta connessi, nella barra indirizzi del proprio browser digitare 192.168.4.1 seguito da invio. Verrà aperta una pagina con un messaggio di warning che mette in guardia sull'utilizzo del tool per scopi illeciti. Una volta lette le condizioni di utilizzo cliccare sul pulsante I've read and understood the notice above presente in fondo alla pagina;

    ESP8266 Deauther, messaggio di Warning e condizioni di utilizzo
    FIG 6 - ESP8266 Deauther, messaggio di Warning e condizioni di utilizzo
  • Nella pagina successiva, cliccare sul tasto SCAN per effettuare la scansione degli Access Point Wi-Fi disponibili;
    Scansione degli Access Point
    FIG 7 - Scansione degli Access Point
  • Le reti Wi-Fi trovate vengono elencate visualizzando informazioni come il canale utilizzato, il SSID, RSSI, il tipo di protezione. Selezionare la rete che si intende attaccare cliccando sul link SELECT.
    Selezione della rete Wi-Fi da testare
    FIG 8 - Selezione della rete Wi-Fi da testare
  • Cliccando su Stations è possibile eseguire la scansione dei clienti connessi alla rete Wi-Fi selezionata. In questa fase il modulo ESP8266 spegne il suo Access Point pertanto potrebbe essere necessario riconnettersi manualmente e aggiornare la pagina per visualizzare il risultato della scansione.

    Scansione dei client connessi alla rete Wi-Fi selezionata
    FIG 9 - Scansione dei client connessi alla rete Wi-Fi selezionata
  • Cliccando sul link Attacks in alto, si accede alla pagina degli attacchi che è possibile sferrare.
    Clone: consente di clonare il SSID della rete Wi-Fi in modo da confondere i client che tentano di connettersi. Una volta cliccato su Clone, scorrendo nella pagina, è necessario indicare nell'apposito campo il numero di cloni da creare quindi cliccare su ADD per procedere (FIG 11). Cliccando invece sul pulsante Random, verranno creati SSID con nomi casuali.
    Deauth: invia i deauthentication frame alla rete/client selezionati forzando la disconnessione del Wi-Fi.
    Beacon: invia numerosi frame beacon con il nome della rete selezionata. Semplificando il beacon non è altro che un piccolo messaggio con cui il dispositivo, ad es. l'Access Point, annuncia la sua presenza a chi è in "ascolto" fornendo informazioni come timestamp, SSID e altri parametri.
    Probe-Request: invia numerosi frame Probe-Request fino a saturare i dispositivi. Una stazione invia un Probe-Request frame quando ha necessità di recuperare informazioni da un'altra stazione.

    Attacks
    FIG 10 - Attacks

Clone SSID
FIG 11 - Clone SSID


Impostazioni

Cliccando sul link Settings è possibile personalizzare alcune opzioni tra cui il SSID visualizzato dal dispositivo, la password, il canale utilizzato, abilitare/disabilitare la scansione degli Access Point nascosti, abilitare/disabilitare la selezione di più SSID, personalizzare numero di pacchetti inviati al secondo, ogni quanto tempo modificare il MAC address, ecc. Una volta effettuate le modifiche desiderate è necessario cliccare sul link SAVE presente in fondo alla pagina e riavviare.
Settings
FIG 12 - Settings

Come difendersi

L'unico modo per difendersi è assicurarsi che tutti i dispositivi della propria rete supportino il protocollo 802.11w-2009 che prevede la cifratura dei frame e che la protezione dei frame sia abilitata.