Π˜Π³Ρ€Ρ‹ с Wifi Π½Π° ESP32

Π˜Π³Ρ€Ρ‹ с Wifi Π½Π° ESP32

На ΠΌΡ‹ΡΠ»ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°Ρ€ΠΌΠ°Π½Π½Ρ‹ΠΉ инструмСнт для Π°Π½Π°Π»ΠΈΠ·Π° WiFi сСтСй мСня ΠΏΠΎΠ΄Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»Π° эта ΡΡ‚Π°Ρ‚ΡŒΡ.

Бпасибо ΠΈΠΌ Π·Π° идСю. МнС ΠΊΠ°ΠΊ Ρ€Π°Π· Π±Ρ‹Π»ΠΎ Π½Π΅Ρ‡Π΅ΠΌ Π·Π°Π½ΡΡ‚ΡŒΡΡ.

Вся Ρ€Π°Π±ΠΎΡ‚Π° Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ…ΠΎΠ±Π±ΠΈ с Ρ†Π΅Π»ΡŒΡŽ получСния ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΡ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ своих Π·Π½Π°Π½ΠΈΠΉ Π² области сСтСвых Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. НС Ρ‚ΠΎΡ€ΠΎΠΏΡΡΡŒ, ΠΏΠΎ 1..4 часа Π² нСдСлю, с Π½Π°Ρ‡Π°Π»Π° этого Π³ΠΎΠ΄Π°.
ΠŸΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ΅ использованиС Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π». Π’.Π΅. это НЕ инструмСнт для Ρ…Π°ΠΊΠ΅Ρ€Π°.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ вСсь Π·Π°Π΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. ВсС исходники, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ для сборки, Π²Ρ‹Π»ΠΎΠΆΠ΅Π½Ρ‹ здСсь. Π’Π°ΠΌ ΠΆΠ΅ инструкция ΠΏΠΎ сборкС ΠΈ ΠΏΡ€. Π’ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ΅ я Π½Π΅ Π±ΡƒΠ΄Ρƒ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π²Ρ‹Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° github. РасскаТу Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚Π°ΡŽ Π½ΡƒΠΆΠ½Ρ‹ΠΌ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

МоС ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ "ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ инструмСнта" ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π²Ρ‹Π±ΠΎΡ€Π° ESP32

Π― Π½Π΅ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΡƒΡŽ Π½Π° истину. Она Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ своя. ΠŸΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Ρ‚ΡŒ свой Π²Ρ‹Π±ΠΎΡ€ "ΠΆΠ΅Π»Π΅Π·Π°".

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования сочСтаниС Linux (ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Raspberry Pi) + Β«ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΈΒ» Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ (STM32) + CC1110 (ядро 8051) ΠΈ ΠΏΠ»Π°Π½ Π²ΠΏΠΈΡ…Π½ΡƒΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° всС Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ (125kHz, NFC, 433mHz, USB, iButton, bluetooth, ?) показался Π½Π΅ подходящим для мСня. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Ρ‚Π°ΠΊ останСтся частным ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ (flipper-zero github "This organization has no public repositories.") ΠΈ пошСл Π² сторону Π½Π΅ слишком распространСнного ΠΆΠ΅Π»Π΅Π·Π°.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ я Π½Π΅ ΠΏΡ€Π°Π², ΠΈ Π² дальнСйшСм Π°Π²Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹Π»ΠΎΠΆΠ°Ρ‚ исходники ПО Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ доступ. Но Ссли Π½Π΅Ρ‚, Ρ‚ΠΎ я Π±Ρ‹ Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅Π»Π΅Π·ΠΊΡƒ Π±Π΅Π· исходников Π½Π΅ ΠΊΡƒΠΏΠΈΠ» Π±Ρ‹.

Мои трСбования ΠΊ "инструмСнту"

ΠšΠΎΡ€ΠΎΠ±ΠΎΡ‡ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ малСнькая (Ρ‡Π΅ΠΌ мСньшС, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅).

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ:

  • ВстроСнный аккумулятор Π½Π΅ Π½ΡƒΠΆΠ΅Π½. ΠŸΡ€ΠΈ Ρ‚ΠΎΠΊΠ΅ > 100 mA ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Wifi, встроСнный аккумулятор Π»ΠΈΠ±ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ большой, Π»ΠΈΠ±ΠΎ Π΅Π³ΠΎ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Π½Π΅ Π½Π° Π΄ΠΎΠ»Π³ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡƒΡΡ‚ΡŒ "ΠΊΠΎΡ€ΠΎΠ±ΠΎΡ‡ΠΊΠ°" питаСтся ΠΎΡ‚ стандартного power bank. ВсС Ρ€Π°Π²Π½ΠΎ power bank Π² ΠΊΠ°Ρ€ΠΌΠ°Π½Π΅/машинС валяСтся Ρƒ мСня всСгда.
  • Π”Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ "ΠΊΠΎΡ€ΠΎΠ±ΠΎΡ‡ΠΊΠΈ" Linux с инструмСнтами, написанными Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ Π½Π° всСх языках ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΌΠ΅Π»ΠΊΠΎΠ³ΠΎ экрана ΠΈ скудного Π½Π°Π±ΠΎΡ€Π° ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΊΠ½ΠΎΠΏΠΎΠΊ смысла Π½Π΅Ρ‚. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ/ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π½Π° Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅ с ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ ΠΈ экраном.
  • ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ лСгкодоступными ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ извСстными (доступный SDK, ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ).

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, для мСня, Π²Ρ‹Π±ΠΎΡ€ Π±Ρ‹Π» ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½ β€” ESP32.

Под всС Π·Π°Π΄Π°Ρ‡ΠΈ, заявлСнныС Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅, которая ΠΏΠΎΠ΄Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»Π° мСня ΠΊ дСйствиям, возмоТностСй ESP32 Π²ΠΏΠΎΠ»Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚. Π₯отя максимум Ρ‡Ρ‚ΠΎ я Ρ…ΠΎΡ‡Ρƒ Π΅Ρ‰Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это:

  • ΠŸΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ с Bluetooth.
  • ΠŸΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ с 433mHz Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ с ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌ hardware (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ амплитудная модуляция, Ρ‡Π΅Π³ΠΎ достаточно для практичСски надобностСй).

Π›ΠΎΠΆΠΊΠ° дСгтя Π² ESP32

  • SDK (IDF) ESP32 нСсколько коряв.
  • Π§Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° (стСк WiFi, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€) ΠΈΠ΄Π΅Ρ‚ Π±Π΅Π· исходников Π² Π²ΠΈΠ΄Π΅ собранных статичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.
  • НС поддСрТиваСтся Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ 5gHz ΠΈ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ограничСния ΠΈ корявости ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с WiFi.

Но Ρ†Π΅Π½Π°/Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡ€ΡƒΡŽΡ‚ эти нСдостатки.

Основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ПО

ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎ ΠΎΠΏΠΈΡˆΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΈ своСм ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎ…

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ настройками ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² с SD

ВсС внСшнСС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сдСлано Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΡƒΡŽ Web страницу, Π·Π°ΠΏΡƒΡΠΊΠ°Π΅ΠΌΡƒΡŽ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π΅ мСню. ESP32 запускаСтся Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ WiFi AP ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ страницу ΠΏΠΎ фиксированному IP адрСсу.

Π₯отя ядра ESP32 довольно быстрыС, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ экспСримСнты, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ€Π°Π±ΠΎΡ‚Π° встроСнного Web сСрвиса ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π΅ΠΆΠΈΠΌΠ° router Π½Π΅ слишком ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‚ΡΡ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ динамичСского управлСния Π½Π΅Ρ‚ ΠΈ Π²ΠΎ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… страница Π½Π΅ доступна.
Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ для ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ динамичСскоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

Π Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Beacon ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ

Π Π΅ΠΆΠΈΠΌΡ‹ Π±Π°Π½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ интСрСсныС. Π‘Π΄Π΅Π»Π°Π½Ρ‹ Β«ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎΒ». Для Π³Π°Π»ΠΎΡ‡ΠΊΠΈ.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΅ΡΡ‚ΡŒ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… examples ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Espressif.

Π Π΅ΠΆΠΈΠΌ сканирования списков AP.
БобствСнно, это ΡƒΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ любой смартфон.
Ну ΠΈ Π² этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ сохранятся список AP.
Beacon spammer.
ESP32 стартуСт ΠΊΠ°ΠΊ AP со скрытым SSID ΠΈ случайным MAC ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΡΠ»Π°Ρ‚ΡŒ [beacon frame] ΠΏΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ созданному списку SSID (созданному Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌΡƒ Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΈ сканировании списка AP)

Π Π΅ΠΆΠΈΠΌ sniffing ΠΏΠ°ΠΊeΡ‚ΠΎΠ² WiFi

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Espressif Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌΡƒ ПО ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· callback Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ всС WiFi ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Β«ΠΏΡ€ΠΎΠ»Π΅Ρ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² Π²ΠΎΠ·Π΄ΡƒΡ…Π΅Β». На самом Π΄Π΅Π»Π΅ Π½Π΅ всС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ фиксированного ΠΊΠ°Π½Π°Π»Π°.

На ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π²Ρ‹Π·ΠΎΠ²Π° callback Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ ТСсткиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ограничСния. Если для Ρ€Π΅ΠΆΠΈΠΌΠ° простого сбора статистики это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‚ΠΎ для Ρ€Π΅ΠΆΠΈΠΌΠ° записи PCAP Ρ„Π°ΠΉΠ»Π° Π½Π° SD ΠΊΠ°Ρ€Ρ‚Ρƒ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ повозится, организуя запись Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π² памяти ΠΈ сСмафоры. Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ особСнности, Ρ‡Ρ‚ΠΎ процСсс, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ callback крутится Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ядрС, Π° процСсс, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ запись Π½Π° SD Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

ΠŸΡ€ΠΈ Β«Π·Π°ΡˆΡƒΠΌΠ»Π΅Π½Π½ΠΎΠΌ эфирС» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ (Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π΅Ρ‚ мСста ΠΈ ΠΎΠ½ΠΈ ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ), Π½ΠΎ ΠΏΡ€ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠΌ «эфирС» ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Ρ‹ Π²Π΅Ρ‡Π΅Ρ€ΠΎΠΌ (5..7 AP Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… видимости) запись Π² PCAP успСваСт выполнятся Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ записи PCAP Π΅ΡΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ списку MAC Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ появлСниС Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π² ΠΊΠ»ΡƒΠ±Π΅/ΠΊΠ°Ρ„Π΅ΡˆΠΊΠ΅, Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ Π²ΠΎΠΎΠ±Ρ‰Π΅ вошСл ΠΈΠ»ΠΈ появился Π² ΠΏΠΎΠ»Π΅ зрСния. Мало ΠΊΡ‚ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ WiFi ΠΈ автоматичСскиС соСдинСниС с извСстными AP. (Π― Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΡŽ..)

ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ записанный Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π² Wireshark ΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ интСрСсно для понимания ΠΊΠ°Ρ€Ρ‚ это всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с deauth ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, посылка этих ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ libnet80211.a, которая ΠΈΠ΄Π΅Ρ‚ Π±Π΅Π· исходников. Но это нСслоТно ΠΊΡƒΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΠ² ΠΏΠ°Ρ€Ρƒ Π±Π°ΠΉΡ‚ΠΈΠΊΠΎΠ². Π’Π½Π°Ρ‡Π°Π»Π΅ я сомнСвался, Π° стоит Π»ΠΈ Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ patch. Но ΠΏΠΎΡ…ΠΎΠ΄ΠΈΠ² ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ мСстам с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ сканирования источников посылки [deauthentication frame], ΠΏΠΎΠ΄ΡƒΠΌΠ°Π»: Β«ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‡Π΅Ρ€Ρ‚Π°Β». Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ Π² esp8266 посылка этих ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚Π° ΠΈ сборки Π½Π° github ΠΏΠΎΠ΄ esp8266 Π΅ΡΡ‚ΡŒ.

Π’ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΡ… мСстах (Π½Π΅ Π±ΡƒΠ΄Ρƒ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Π³Π΄Π΅) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… AP Ρ‡Π΅Ρ€Π΅Π· этот ΠΌΠ΅Ρ‚ΠΎΠ΄. И это Π½Π΅ «хулиганы»…

А я Π΅Ρ‰Π΅ удивлялся, Ρ‡Ρ‚ΠΎ это Ρƒ мСня Ρ€Π°Π·Π΄Π°Ρ‡Π° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° с Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° мСстами Π½Π΅ работаСт…

Π Π΅ΠΆΠΈΠΌ отслСТиваниС количСства ΠΈ RSSI Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ Β«Π³Π΄Π΅ Π½Π΅ Π»ΡŽΠ±ΡΡ‚ Π»Π΅Π²Ρ‹Π΅ APΒ».

Π Π΅ΠΆΠΈΠΌ router

Π­Ρ‚Π° функция, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, самая интСрСсная ΠΈΠ· всСх для исслСдования.

ESP32 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ STA + SoftAP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π° Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ классичСский NAT router.

Для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ сСтСвого стСка Espressif ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ fork (практичСски Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ) Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ lwip.

HΠΎ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π² стандартной сборкС, Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ esp-lwip ΠΌΠ΅ΠΆΠ΄Ρƒ netif интСрфСйсами β€˜ap’(SoftAP) ΠΈ β€˜st’ (STA) Π½Π΅ прСдусмотрСн проброс.

МоТно ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ Π±Π΅Π· NAT, Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΈ Π±ΠΎΠ»Π΅Π΅ STA ΠΊ интСрфСйсу β€˜ap’ ΠΈ синхронизации IP адрСсов ΠΎΡ‚ сСтСвого интСрфСйса ‘st’ ΠΊ ‘ap’. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ слоТности Π½Π΅ стоят Ρ‚ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€ΠΎΡ‰Π΅ Ρ‡Π΅Ρ€Π΅Π· NAT.

Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ сущСствуСт fork esp-lwip ΠΎΡ‚ martin-ger Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½a простая рСализация NAT для IP4.

Π₯отя Ρƒ мСня Ρ€ΡƒΠΊΠΈ Ρ‡Π΅ΡΠ°Π»ΠΈΡΡŒ Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Ρ‚ΡŒ чисто космСтичСски (ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡƒ, ΠΏΡ€ΠΎΡ‰Π΅ Π±Ρ‹Π»ΠΎ Π±Π΅Π· fork ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π° Ρ‡Π΅Ρ€Π΅Π· LWIPHOOK Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, опрСдСляСмых ΠΏΡ€ΠΈ сборкС), Π½ΠΎ лСнь ΠΏΠΎΠ±Π΅Π΄ΠΈΠ»Π° ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΎΡ‚ martin-ger ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ.

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ router просматриваСтся входящий ΠΈ исходящий IP4 Ρ‚Ρ€Π°Ρ„ΠΈΠΊ.

Π’ частности, ΠΈΠ· Π½Π΅Π³ΠΎ извлСкаСтся для ΠΏΠΎΠΊΠ°Π·Π° Π½Π° экранчикС ΠΈ сбора статистики Π² Ρ„Π°ΠΉΠ»:

  • Имя устройства, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΎΡΡŒ ΠΊ SoftAP ESP32 (DHCP ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹)
  • URL ΠΈΠ· DNS запросов (UDP port 53) ΠΎΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊ SoftAP ESP32 устройства.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ запись Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π² PCAP Ρ„Π°ΠΉΠ».

Π”Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ вСсьма ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎ ваш Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΡˆΠ»Π΅Ρ‚ Π² ΡΠ΅Ρ‚ΡŒ ΠΈ ΠΊΡƒΠ΄Π° ΠΏΡ€ΠΈ этом Ρ…ΠΎΠ΄ΠΈΡ‚.

МоТно ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы использования этого Ρ€Π΅ΠΆΠΈΠΌΠ° с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ возмоТности ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ входящим ΠΈ исходящим Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ SoftAP ESP32 Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ сСтСвого интСрфСйса: Ehernet Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ (destMAC[6]+srcMAC[6]+type[2]) + payload (IP4, IP6, DCHP, ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅ type).

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ESP32 Π²ΠΏΠΎΠ»Π½Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ справляСтся с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ WiFi->WiFi Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π°, пропуская Ρ‡Π΅Ρ€Π΅Π· сСбя Π±Π΅Π· особых Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. Π‘ΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ, Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· router Π½Π° ESP32 Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹.

К соТалСнию, Π² API Espressif Π½Π΅Ρ‚ возмоТности ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ MAC ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΌ ΠΊ SoftAP EPS32. Π’ мСсто этого прСдлагаСтся Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Β«Π΄ΠΎ свиданиС» (esp_wifi_deauth_sta) ΡƒΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ STA, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Β«Π½Π΅ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Β».

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ MAC для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… STA ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ² esp_wifi_deauth_sta()

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π₯отя Π½ΠΈΡ‡Π΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ESP32 я Π½Π΅ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π», Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΡƒ Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (исходники) Π±ΡƒΠ΄Π΅Ρ‚ интСрСсСн.

Π₯ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ писал ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… цСлях. Для "Π²Π·Π»ΠΎΠΌΠ°" ΠΈ ΠΏΡ€. ΠΎΠ½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ дСлался Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ.

ΠŸΠ΅Ρ‡Π°Ρ‚Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ Π½Π΅ Π΄Π΅Π»Π°Π», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΡΠΏΠ°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠΌ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΏΠ»Π°Ρ‚ΠΊΠΈ ΡƒΡˆΠ»ΠΎ часа 1.5-2.

Π”Π° ΠΈ Ссли Π΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ ΠΈΠ· Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΠ»Π°Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ, Π° ΠΈΠ· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Π’ΠΎΠ³Π΄Π° Π³Π°Π±Π°Ρ€ΠΈΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π΅Ρ‰Π΅ мСньшС.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com