ESP32-WiFi-tool
Описание
ESP32 WiFi tool (router, sniffer, deauther)
Языки
- C93,1%
- C++2,8%
- CMake2,5%
- Python0,7%
- HTML0,5%
- Makefile0,2%
- Остальные0,2%
ESP32 wifi tool
The goal of this repository is to create a WiFi explore tool for the self educated purpose.
Source code features.
- Espressif/idf. (no arduino).
- C++/C mixed code.
I am sorry for sometimes ugly source code. I have got the result and I have no desire to do a source code refactoring.
Main functions list:
- Web page (ESP32 AP mode).
- download exploration results files
- edit & upload configurations
- AP scanner.
- Beacon spammer.
- Wifi traffic sniffer & optional pcap file PCAP_LINKTYPE_IEEE802_11(105).
- Deauther packets traffic scanner.
- Deauther sender (patched ieee80211_output.o).
- NAT router & optional pcap file PCAP_LINKTYPE_ETHERNET(1).
Deauther packets traffic scanner
I had not know before how often a 'deauther' used for jamming the unwelcome WiFi APs in government's offices or a private company offices.
Deauther sender
This sender created only for the self educated purpose.
I investigate the reactions difference of various type STA/AP on a deauthentication packet.
Nat router.
Based on the https://github.com/martin-ger lwip fork.
All IP traffic of ESP32 SoftAP can be saved in to PCAP file.
This mode was created only for the self educated purpose. It's very useful to see what your phone try to send into the open WiFi network after connect.
Some hardware design & menu screenshots
Main menu & hardware design
![[photo]](/api/repos/mm.MikeKn/ESP32-WiFi-tool/raw/branch/master/./demo_images/photo0.jpg)
Router submenu
![[photo]](/api/repos/mm.MikeKn/ESP32-WiFi-tool/raw/branch/master/./demo_images/photo1.jpg)
Wifi sniffer submenu and working page
![[photo]](/api/repos/mm.MikeKn/ESP32-WiFi-tool/raw/branch/master/./demo_images/photo3.jpg)
Web page
- ESP32 AP default url: 192.168.4.1:80
- Demo/debug mode without ESP32:
- ./project/main/web/test_server.py - localhost web page test
- ./project/main/web/sd - tests files
![[demo page ]](/api/repos/mm.MikeKn/ESP32-WiFi-tool/raw/branch/master/./demo_images/wp4.png)
Requirements
- ESP32 module ESP32_Espressif_ESP-WROOM-32_Dev_Board
- 1.44 TFT st7735 128x128
- SMD button switches
- SD card (SPI mode).
Wiring diagram (arduino primitive style)
For practical use case, ESP32 is working with a SD card without external SPI pins pull up.
![[wiring]](/api/repos/mm.MikeKn/ESP32-WiFi-tool/raw/branch/master/./demo_images/wiring.png)
External dependencies
- Espressif bulding tools and IDF. espressif/idf docker builder
- Fork of esp-lwIP with NAT feature. For 'router' mode. github martin-ger/esp-lwip
Useful things (optional)
Build & install.
- Install latest docker image espressif/idf. I used the 2b09259647b image.
- Do 'git clone https://github.com/martin-ger/esp-lwip.git' or download fork of esp-lwIP with NAT feature in to '$HOME/project/lwip_nat' github martin-ger/esp-lwip
- Build project.
- Upload ESP32 images into the ESP32 board.
Windows 10 build.
Install VM Linux:
- Download & install VM VirtualBox
- Install ubuntu server image. Ubuntu server
- Run virtual ubuntu server
Prepare VM Linux:
- Install last docker
- Optional install dperson samba
samba anonymous login:
login/password:
Windows upload command line
Off-line docker setup.
- Download image
- Install
- Validate installation
libnet80211.a/ieee80211_output.o analysis (&patch)
- Install xtensa CPU object file editor (cutter v1.10)
- Find & download xtensa.pdf
- Get ieee80211_output.o file from the espressif/idf docker image.
- Do research work xtensa CPU object file editor (cutter v1.10)
