Table of Contents

Wifi sniffer kit

Project owner: Cyberian
Interested:
Related:
License: Uveďte původ-Zachovejte licenci CC BY-SA

Pro misku žita

Tento projekt má za cíl vytvořit přenosné zařízení umožňující sledovat dění na wifi pásmu 2.4GHz. ESP8266 bude běžet v AP režimu v promiskuitním módu a sledovat vybrané pakety. Počítá se i s případným druhým ESP8266, který může posílat zachycený provoz do Wiresharku Popud pro vyrobení tohoto zařízení vznikl při zaútočení jednoho mobilního přístroje hromadným ARP spoofingem na celou síť. Tímto zařízením bude možno vystopovat jeho pozici mezi cca 600 zařízeními přímo v zástavbě a zneškodnit jeho nakažený telefon taserem.

25.9 2019: Nově jsem se ujistil, že metoda triangulace RSSI hodnot není špatný nápad. Jsou zde však ještě jiné metody. Jedna znich, je “duration field” v rámcích standardu 802.11. Toto pole se používá v protokolu CSMA/CA k zarezervování bezdrátového media po určený čas. Problém může nastat pokud dotyčný používá stejný driver a chipset jako ten kdo měří. Toto musím ještě probádat a přečíst z větší části standard 802.11.

Materiál

Displej

Proč zrovna tento displej? Původně jsem hledal jakýkoliv displej s rozumným rozlišením a dotykovou vrstvou. Jako první jsem zakoupil v GME.CZ displej pro Raspberry PI s SPI rozhraním. Záhy jsem však zjistil, že displej je mi k ničemu, musel bych ho rozebrat a dostat se ke kontroleru a i tak by práce s displejem zabrala dost výpočetního výkonu a paměti. Problém byl v tom, že ESP8266 posílá do SPI pouze 8 bitové hodnoty a dislpej pracuje s 16 bitovými.

Po delším hledání jsem zvolil displej v basic verzi od Nextionu, se kterým se komunikuje po sériové lince. Displej si sám řeší zobrazení, má vlastní kontroler (chip od STM32F30), 4MB RAM, SD card slot (bohužel se používá zatím jen pro upgrade konfigurace). K displeji je editor, kde lze z toolboxu umístit drag & drop textová pole, tlačítka, menu, progress bar, slidery, grafy, obrázky atp. Cenou je tedy obsah, který můžeme měnit tím, že sériovým portem pošleme název a hodnotu proměnné, kterou chceme na displeji změnit. Do jisté míry tedy statický obsah, předem dané obrázky, u základní verze bez zobrazení video sekvence, ale ušetřena spousta práce s GUI a výpočetní výkon.

Konfigurace displeje se nahrává přes micro SD kartu nebo TTL sériovou linkou.

Je tu ještě jedna věc, která zamrzí linuxáře, editor je jen pro windows s NET frameworkem 3.5. Zda funguje pod wine, jsem zatím nezkoušel.

Pracovní poznámky

Watchdog

A WDT timeout can occur if the repaint takes more than one second. This can be avoided by disabling the watchdog timer before the loops, then re-enabling it afterwards.

Example:

ESP.wdtDisable();
for (int u = 0; u < clients_known_count; u++) print_client(clients_known[u]);
for (int u = 0; u < aps_known_count; u++) print_beacon(aps_known[u]);
ESP.wdtEnable(1000);

Reference

https://jaimyn.com.au/use-espressif-sdk-functions-arduino-esp8266-ide/

https://www.espressif.com/sites/default/files/documentation/2a-esp8266-sdk_getting_started_guide_en.pdf

https://www.espressif.com/sites/default/files/documentation/20b-esp8266_rtos_sdk_api_reference.pdf

http://www.ieee802.org/

https://www.espressif.com/en/support/download/documents?keys=ESP8266&field_type_tid%5B%5D=14

https://www.networkworld.com/article/2296641/hunting-down-wireless-devices-doing-mac-spoofing.html

https://cs.wikipedia.org/wiki/CSMA/CA