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.




martedì 27 giugno 2017

Outlook Quick Tip: All'apertura del messaggio in Outlook al posto del normale puntatore del mouse viene visualizzata una mano

Può capitare che, all'apertura di un messaggio in Outlook, al posto del normale puntatore del mouse venga visualizzata una mano impedendo all'utente la selezione del testo. Si tratta di un opzione di Outlook chiamata Panning Hand che viene generalmente abilitata quando sul PC sono installati componenti relativi a Tablet o tavolette grafiche.
Per disabilitare tale opzione basta aprire un messaggio e cliccare sull'icona della mano presente al di sopra della scrollbar verticale oppure, nel caso l'icona non sia presente, è possibile premere il tasto ESC sulla tastiera.
Outlook, disabilitare l'opzione Panning Hand
FIG 1 - Outlook, disabilitare l'opzione Panning Hand




mercoledì 21 giugno 2017

Outlook Quick Tip: Impostare una cartella iniziale diversa

All'apertura di MS Outlook, per default, viene visualizzata la cartella di Posta in arrivo del primo account di posta configurato. Per visualizzare all'apertura una cartella di un altro account oppure una cartella diversa rispetto alla Posta in arrivo si può agire tramite le opzioni del client di posta:
  • Dal menu File di Outlook selezionare Opzioni;
  • Sul pannello sinistro della finestra selezionare Avanzate;
  • Sul lato destro individuare la sezione Avvio e chiusura di Outlook. Cliccando sul tasto Sfoglia... è possibile selezionare la cartella da aprire all'avvio del client di posta.

Outlook, Cartella di avvio Outlook
FIG 1 - Outlook, Cartella di avvio Outlook




martedì 20 giugno 2017

Windows 10: Nascondere l’indirizzo IP locale su connessioni WebRTC in Microsoft Edge

WebRTC (Web Real-Time Communication) è una tecnologia open source, basata su HTML5 e JavaScript, utilizzata dai browser per poter effettuare videochat in tempo reale. Se il browser utilizza questa tecnologia può comunicare al sito web l'indirizzo IP locale. Per fare in modo che ciò non avvenga è possibile agire tramite le impostazioni del browser. In Microsoft Edge basta seguire questi semplici passaggi:
  • Nella barra degli indirizzi di Edge digitare about:flags seguito da invio;
  • All'interno della sezione WebRTC spuntare l'opzione Nascondi l'indirizzo IP locale su connessioni WebRTC;
  • Riavviare il browser.
Microsoft Edge,  Nascondi l'indirizzo IP locale su connessioni WebRTC
FIG 1 - Microsoft Edge,  Nascondi l'indirizzo IP locale su connessioni WebRTC



lunedì 19 giugno 2017

Windows 10: Abilitare il tasto home in Microsoft Edge

In Microsoft Edge, per default, il tasto home risulta disabilitato. Per abilitarlo:
  • Cliccare sul pulsante con i 3 puntini e dal menu selezionare Impostazioni;
    Microsoft Edge, menu Impostazioni
    FIG 1 - Microsoft Edge, menu Impostazioni
  • Cliccare sul pulsante Visualizza impostazioni avanzate;
    Microsoft Edge, Visualizza impostazioni avanzate
    FIG 2 - Microsoft Edge, Visualizza impostazioni avanzate
  • Attivare l'opzione Mostra pulsante Home. Nel menu sottostante, che apparirà dopo l'attivazione, è possibile specificare la pagina iniziale da visualizzare.
    Microsoft Edge, Mostra pulsante Home
    FIG 3 - Microsoft Edge, Mostra pulsante Home



Microsoft Edge, pulsante Home
FIG 4 - Microsoft Edge, pulsante Home




Windows 10: Impostare una posizione predefinita

Windows 10, attraverso diverse API integrate, consente alle APP come Cortana di conoscere la posizione del dispositivo. La geolocalizzazione viene gestita dal sistema operativo sfruttando i dati recuperati dal sensore GPS oppure tramite le funzioni di triangolazione del Wi-Fi/connessioni di rete. Windows 10 consente anche di specificare manualmente una posizione predefinita (utile nel caso di pc desktop):
  • Avviare l'App Mappe;
    Windows 10, App Mappe
    FIG 1 - Windows 10, App Mappe
  • Cliccare sull'icona dei tre puntini in alto a destra quindi, dal menu, selezionare la voce Impostazioni;
  • Cliccare sul pulsante Cambia posizione predefinita;
    App Mappe, Cambia posizione predefinita
    FIG 2 - App Mappe, Cambia posizione predefinita
  • Cliccare su Imposta posizione predefinita;
    Mappe, Imposta posizione predefinita
    FIG 3 - Mappe, Imposta posizione predefinita
  • Digitare manualmente l'indirizzo oppure selezionare una località sulla mappa cliccando su Scegli la posizione.

    Mappe, Scegli la posizione
    FIG 4 - Mappe, Scegli la posizione


venerdì 16 giugno 2017

MS Exchange: Disinstallazione .Net Framework 4.7 non compatibile

Con il Patch Tuesday di giugno Microsoft ha reso disponibile il .Net Framework 4.7. Tale aggiornamento NON VA INSTALLATO sui server Exchange in quanto non ancora supportato. Per chi avesse già provveduto ad installare l'aggiornamento sui server Exchange, Microsoft consiglia di procedere alla sua disinstallazione e al ripristino della versione precedente (.NET Framework 4.6.2):
  1. Se dopo l'installazione del .Net Framework 4.7 il sistema non è stato riavviato procedere con il riavvio per completare l'installazione;
  2. Da Exchange Management Shell eseguire il cmdlet
    (Test-ServiceHealth).ServicesRunning | %{Stop-Service $_ -Force}
    per terminare i servizi di Exchange;
  3. Da Pannello di controllo->Programmi->Programmi e funzionalità->Visualizza Aggiornamenti installati (o, nel caso di Windows 7 SP1/Windows Server 2008 R2 SP1, in Programmi e funzionalità) selezionare l'aggiornamento e procedere alla sua rimozione. Il pacchetto ha un nome diverso a seconda del sistema operativo utilizzato:
    - Windows 7 SP1/Windows Server 2008 R2 SP1 il pacchetto viene visualizzato con il nome di .NET Framework 4.7;
    - Windows Server 2012 il pacchetto viene visualizzato con il nome di Aggiornamento per Microsoft Windows (KB3186505);
    - Windows 8.1 / Windows Server 2012 R2 il pacchetto viene visualizzato con il nome di Aggiornamento per Microsoft Windows (KB3186539);
    Windows 10 Anniversary Update/Windows Server 2016 il pacchetto viene visualizzato con il nome di Aggiornamento per Microsoft Windows (KB3186568);
  4. Dopo aver disinstallato l'aggiornamento e riavviato il sistema, verificare che la versione del .Net Framework sia 4.6.2 (per verificare la versione del .NET Framework seguire i passaggi indicati QUI);
  5. Eseguire il download dell'offline installer del .NET Framework 4.6.2 da https://support.microsoft.com/en-us/help/3151800/the-.net-framework-4.6.2-offline-installer-for-windows
  6. Da Exchange Management Shell stoppare nuovamente i servizi di Exchange utilizzando il cmdlet visto nel punto 2;
  7. Avviare l'installazione del .NET Framework 4.6.2 utilizzando l'offline installer scaricato in precedenza e selezionare l'opzione Repair per procedere alla riparazione del .Net Framework;
  8. In Windows Update installare gli aggiornamenti di sicurezza relativi al .NET Framework 4.6.2.


Rinviare temporaneamente l'installazione del .Net Framework 4.7

Per rimandare, almeno temporaneamente, l'installazione del .Net Framework 4.7 è possibile procedere tramite il registro di sistema:
  • Premere la combinazione di tasti WIN+R per aprire la finestra di dialogo Esegui e digitare regedit seguito da invio per avviare l'editor del registro di sistema;
  • Posizionarsi sulla chiave
    HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP
  • Creare una nuova sottochiave cliccando, con il tasto destro del mouse, sulla chiave NDP e selezionando, dal menu contestuale, la voce Nuovo e quindi Chiave. Rinominare la nuova chiave in WU.
  • Posizionarsi sulla chiave WUcreare al suo interno un nuovo valore DWORD 32 bit assegnandogli il nome BlockNetFramework47. Cliccare 2 volte sul valore creato e nella casella Dati valore digitare quindi cliccare sul pulsante OK per confermare.

Microsoft sta già lavorando per rendere compatibile la nuova versione del .Net Framework anche per i server Exchange.