ESP32-WiFi-tool

0

Описание

ESP32 WiFi tool (router, sniffer, deauther)

Языки

  • C93,1%
  • C++2,8%
  • CMake2,5%
  • Python0,7%
  • HTML0,5%
  • Makefile0,2%
  • Остальные0,2%
6 лет назад
6 лет назад
6 лет назад
6 лет назад
6 лет назад
6 лет назад
6 лет назад
6 лет назад
6 лет назад
6 лет назад
6 лет назад
6 лет назад
6 лет назад
README.md

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:

  1. Web page (ESP32 AP mode).
    • download exploration results files
    • edit & upload configurations
  2. AP scanner.
  3. Beacon spammer.
  4. Wifi traffic sniffer & optional pcap file PCAP_LINKTYPE_IEEE802_11(105).
  5. Deauther packets traffic scanner.
  6. Deauther sender (patched ieee80211_output.o).
  7. 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]

Router submenu

[photo]

Wifi sniffer submenu and working page

[photo] [photo]

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 ] [demo page ] [demo page ] [demo page ] [demo page ]

Requirements

Wiring diagram (arduino primitive style)

For practical use case, ESP32 is working with a SD card without external SPI pins pull up.

[wiring]

External dependencies

Useful things (optional)

Build & install.

  1. Install latest docker image espressif/idf. I used the 2b09259647b image.
  2. 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
  3. Build project.
  1. Upload ESP32 images into the ESP32 board.

Windows 10 build.

Install VM Linux:

  1. Download & install VM VirtualBox
  2. Install ubuntu server image. Ubuntu server
  3. Run virtual ubuntu server

Prepare VM Linux:

  1. Install last docker
  2. Optional install dperson samba

samba anonymous login:

login/password:

Windows upload command line

Off-line docker setup.

  1. Download image
  2. Install
  1. Validate installation

libnet80211.a/ieee80211_output.o analysis (&patch)

  1. Install xtensa CPU object file editor (cutter v1.10)
  2. Find & download xtensa.pdf
  3. Get ieee80211_output.o file from the espressif/idf docker image.
  1. Do research work xtensa CPU object file editor (cutter v1.10)

hint