Hallo iedereen
in een vorige blogpost spraken we kort over Wi-Fi-beveiliging. Het probleem met onze zeer creatieve Lyr modules is dat ze gemakkelijk te misbruiken zijn. Aangezien we niet willen iedereen op "domme gedachten" hebben we bewust overgeslagen dit onderwerp in het verleden. We willen geen nieuwe generatie script kiddy aantrekken om de bedrijfsnetwerken binnen te dringen. We willen graag dat onze klanten omgaan met en voldoen aan de respectieve wetten die op hen van toepassing zijn. Verstoring van de openbare infrastructuur is bijvoorbeeld een gevaarlijk strafbaar feit waarop een gevangenisstraf van maximaal 5 jaar, in ernstige gevallen tot 10 jaar, kan worden bestraft en de poging is al strafbaar! We streven niet naar het doel om bedrijven te dwingen op te treden door kwetsbaarheden te publiceren.
Vandaag laten we u alleen zien hoe u een mogelijke manier detecteren om een Wi-Fi te manipuleren om dienovereenkomstig te kunnen handelen.
Vindt u dat uw Wi-Fi-verbinding om onverklaarbare redenen wordt geannuleerd en u geen verbinding meer maken met uw netwerk? Dit gebeurt van tijd tot tijd als gevolg van vele mogelijke storingen. Echter, als dit gebeurt voortdurend en continu, de verdenking is dicht bij de bedoeling achter het. Vandaag bieden we code om dit te detecteren met behulp van een NodeMCU.
Voor alle kennis onder u: Deauth frame detector als gevolg van ontbrekende 802.11w implementatie, speelt zich volledig uit op laag 2.
Als de NODEMCU LED knippert, vindt er een aanval plaats in uw omgeving!
We hebben:
- NodeMCU met ESP8266 b.v. v2/v3/d1
- LED (BuildInLED is voldoende)
Natuurlijk u deze schets aanpassen voor de detectie van andere pakketten die voor u interessant zijn.
Hier is de code:
#include <ESP8266WiFi.H> Externe "C" { #include "user_interface.h" } ===== INSTELLINGEN =====/ #define Kanaal 1 het kanaal dat het moet scannen op (1-14) #define channelHopping Waar scannen op alle kanalen #define maxChannel maxChannel 13 VS = 11, EU = 13, Japan = 14 #define ledPin 2 led pin ( 2 = ingebouwde LED) #define Omgekeerde Waar hoge/lage omkeren voor de LED #define packetRate 3 min. pakketten voordat het wordt erkend als een aanval #define scanTime 500 scantijd per kanaal in ms Unsigned Lange C = 0; Unsigned Lange prevTime = 0; Unsigned Lange curTime = 0; Int curChannel curChannel = Kanaal; Void Sniffer(uint8_t *Buf, uint16_t Len) { als(len>27)" van.set(buf[16],buf[17],buf[18],buf[19],buf[20],buf[21]); to.set(buf[22],buf[23],buf[24],buf[25],buf[26],buf[27]); Als(Buf[12] == 0xA0 || Buf[12] == 0xC0){ C++; } //} } Void Setup() { Seriële.Beginnen(115200); wifi_set_opmode(STATION_MODE); wifi_promiscuous_enable(0); Wifi.Verbreken(); wifi_set_promiscuous_rx_cb(Sniffer); wifi_set_channel(curChannel curChannel); wifi_promiscuous_enable(1); pinMode(ledPin, Output); Seriële.println("Begin!"); } Void Lus() { curTime = millis(); Als(curTime - prevTime >= scanTime){ prevTime = curTime; Seriële.println((Tekenreeks)C); Als(C >= packetRate){ Als(Omgekeerde) digitalWrite(ledPin, Lage); Anders digitalWrite(ledPin, Hoge); }Anders{ Als(Omgekeerde) digitalWrite(ledPin, Hoge); Anders digitalWrite(ledPin, Lage); } C = 0; Als(channelHopping){ curChannel curChannel++; Als(curChannel curChannel > maxChannel maxChannel) curChannel curChannel = 1; wifi_set_channel(curChannel curChannel); } } }
We hopen dat dit nuttig is voor u en afscheid nemen van de volgende post :)
Moritz Spranger
Team AZ-Levering