Visualizzazione post con etichetta WiFi. Mostra tutti i post
Visualizzazione post con etichetta WiFi. Mostra tutti i post

mercoledì 26 settembre 2018

DeAuth WiFi Clients con ESP8266

Questo e' un progettino semplice e veloce che pero' mi risolve un problema familiare.
Sono in costante battaglia con mio figlio che passa il tempo sul divano a guardare Youtube sul divano. Quando esagera (e se non bastano un paio di avvisi) gli stacco l'antenna WiFi bloccando pero' tutti gli altri client connessi

Ho scoperto che e' possibile forzare la disconnessione di un client mandando dei pacchetti di DeAutorizzazione DeAuth all'Access Point. Tale pratica peraltro sembra che sia legittima ed insita all'interno del protocollo WiFi e quindi non evitabile

In pratica si prende un comune NodeMCU con ESP 82666 e si installa il firmware esp8266_deauther
si scarica il file a questo indirizzo

https://github.com/spacehuhn/esp8266_deauther/releases/download/v2.0.5/ESP8266_Deauther_v2.0.5_DSTIKE_Deauther_v3_._DSTIKE_NodeMCU-07_v2.bin

per comodita' lo ho rinominato esp8266.bin, poi si installa il file .bin con il seguente comando

esptool.py -p /dev/ttyUSB3 write_flash -fm qio 0x0000 esp8266.bin 

ci si collega poi all'AP di nome pwned con password deauther (questi nomi possono essere modificati ricompilando il firmware da sorgenti) all'indirizzo 192.168.4.1
Si effettua la scansione degli AP visibili (Scan APS sulla prima pagina dopo il disclaimer) e si seleziona la stazione su cui si voglio deautorizzare i client (si vede il segno di spunta). 

Attenzione: la risposta del 8266 e' molto molto lenta


si passa poi al tab Attack e si sceglie l'operazione da effettuare (Start/Stop)


venerdì 7 settembre 2018

Wemos TTGO Wifi BT ESP32

Questa scheda di sviluppo integrata diversi aspetti interessanti: un microprocessore ESP32, WiFi, Bluetooth 4,schermo OLED SSD1306 da 0.96" ed un alloggiamento per una batteria LiPo tipo 18650 con circuito di ricarica integrato

Per aggiungere la scheda all'Arduino IDE si deve scaricare il pacchetto


https://dl.espressif.com/dl/package_esp32_index.json
inoltre potrebbero essere necessari i driver per la porta seriale via USB scaricabili da qui
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers

Questo e' il pinout della scheda

Una cosa che mi ha fatto impazzire e' che nonostante questi settaggi abbastanza conservativi non riuscivo a fare l'upload sulla scheda (con il messaggio di errore  

A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

Il trucco e' quello di premere il pulsante di Boot al momento di fare l'upload

Le connessioni dell'ESP 32 con l'OLED sono attraverso i seguenti pin

SCL - Pin 4
SDA - Pin 5

La libreria per controllare l'OLED si puo' scaricare da qui . I programmi di esempio della libreria devono essere modificati (per esempo SSD1306SimpleDemo) cosi'

-----------------------------------------------
#include <Wire.h>  // Only needed for Arduino 1.6.5 and earlier
#include "SSD1306.h" // alias for `#include "SSD1306Wire.h"`
#include "images.h"

SSD1306  display(0x3c, 5, 4);

#define DEMO_DURATION 3000
typedef void (*Demo)(void);
-----------------------------------------------

Questo e' invece un semplice WiFi Scanner (unione di due esempi) che mostra i dati a display 


----------------------------------------------
#include "WiFi.h"
#include "SSD1306.h"

SSD1306  display(0x3c, 5, 4);


void setup()
{

    pinMode(16,OUTPUT);
    digitalWrite(16, LOW);    
    delay(50); 
    digitalWrite(16, HIGH); 
    Serial.begin(115200);

    WiFi.mode(WIFI_STA);
    WiFi.disconnect();
    delay(100);

    display.init();

    display.flipScreenVertically();
    display.setFont(ArialMT_Plain_10);

    Serial.println("Setup done");
}

void loop()
{
    display.clear();
    display.setTextAlignment(TEXT_ALIGN_LEFT);
 
    Serial.println("scan start");

    int n = WiFi.scanNetworks();
    Serial.println("scan done");
    if (n == 0) {
        Serial.println("no networks found");
    } else {
        Serial.print(n);
        Serial.println(" networks found");
        for (int i = 0; i < n; ++i) {
            // Print SSID and RSSI for each network found
            Serial.print(i + 1);
            Serial.print(": ");
            Serial.print(WiFi.SSID(i));
            Serial.print(" (");
            Serial.print(WiFi.RSSI(i));
            Serial.print(")");
            Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN)?" ":"*");
            display.drawString(0, (10*i),WiFi.SSID(i)+" "+WiFi.RSSI(i));
            display.display();

            delay(10);
        }
    }
    Serial.println("");

    delay(5000);
}

mercoledì 21 marzo 2018

Rough AP

Ancora una domanda: ma se mi connetto ad un access point pubblico quali rischi si possono correre?? Ho provato a montarmi un Access Point per auto rubarmi le credenziali di accesso alla mia webmail lavorativa (Squirrel Mail su un accesso HTTP ..non HTTPS)

La cosa e' stata particolarmente banale. Per l'Access Point ho visto che c'erano molte alternative ma alla fine quella piu' semplice e' stata quella di usare WiFi Pumpkin.



Per recuperare le credenziali di accesso ho usato net-creds.py.
Il login e la password recuperati hanno necessitato 10 minuti di lavoro...non di piu'
Si ..vabbe'...ma HTTPS ?? Non ho provato ma qualcosa mi dice SSLSTRIP ... non funziona ovunque ma e' sempre una possibilita'

mercoledì 6 aprile 2016

Wifi su Lenovo X201 con Centos 7

Ho finalmente deciso di smontare la Ubuntu dal mio Lenovo X201 per fare spazio a qualcosa di piu' stabile come la CentOs 7, ed ovviamente sono andato incontro ai guai

L'installazione e' stata senza problemi a parte il fatto che la scheda WiFi, nonostante il modulo iwlwifi  fosse correttamente montato in /var/log/dmesg non compariva in ifconfig



Il primo tentativo e' stato quello di vedere (rfkill list all) se era bloccata in modo hardware e software ed effettìivamente sul dispositivo era presente un Soft Lock rimosso con rfkill unblock all.
Speravo di avere finito ma ancora niente scheda wifi. Usando nmcli d la wifi era dichiarata unmanaged (non gestita)
A questo punto ho provato ad installare

yum install Network-Manager-wifi 

e finalmente ho preso il controllo della scheda WiFi

giovedì 10 aprile 2014

Sensore di Prossimita' con WiFi

Avevo sentito parlare del fatto che in alcuni centri commerciale veniva effettuatao il tracking dei clienti leggendo in modo passivo il MAC Address dei telefoni anche quando questi non sono associati ad un access point. Francamente non pensavo che si potesse fare o meglio che non si potesse fare in modo semplice

In realta' usando Airmon ed una antenna WiFi adeguata la cosa e' piuttosto semplice

Kali Linux


Per la prova ho lanciato in macchina virtuale Kali Linux collegando una scheda WiFi USB Alpha (basata su RTL8187)

in seguito e' sufficiente inserire i due seguenti comandi
airmon-ng start wlan0
airodump-ng mon0

per visulalizzare i Mac Address di tutti i dispositivi presenti nel raggio d'azione dell'antenna (nella parte superiore gli access point, in quella inferiore i client). Due dei dispositivi tracciati sono i miei due telefoni di prova
Semplice e banale e c'e' anche la possibilita' di effettuare un log su file di testo

L'unica cosa che mi rimane un po' dubbia e' il perche' il dispositivo mobile venga agganciato praticamente in tempo reale (nel momento in cui viene accesa l'antenna) mentre compare per lungo tempo in lista anche quando l'antenna viene spenta

Questo tipo di sistema puo' essere utilizzato come sistema di prossimita' basato sul WiFi

Debugger integrato ESP32S3

Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede  nell'ID USB della porta Jtag. Nel modulo...