Pagdula nga adunay Wifi sa ESP32

Pagdula nga adunay Wifi sa ESP32

Unsa ang naghatag kanako sa ideya sa paghimo sa usa ka bulsa nga himan alang sa pag-analisar sa mga WiFi network mao Kini nga artikulo.

Salamat sa ila sa ideya. Wala lang koy mahimo.

Ang tanan nga trabaho nahimo isip bahin sa usa ka kalingawan alang sa katuyoan sa paglingaw ug pagpalapad sa akong kahibalo sa natad sa mga teknolohiya sa network. Hinay-hinay, 1..4 ka oras sa usa ka semana, sukad sa pagsugod niining tuiga.
Wala ako nagplano sa bisan unsang praktikal nga paggamit. Mga. DILI kini himan sa hacker.

Sa pagkakaron, ang tanan nga giplano nga pagpaandar nagtrabaho. Ang tanan nga mga tinubdan, hingpit nga andam alang sa asembliya, gi-post dinhi. Adunay usab mga panudlo sa asembliya, ug uban pa. Niini nga nota, dili nako doblehon ang kasayuran nga gi-post sa github. Isulti ko lang kanimo kung unsa ang akong giisip nga kinahanglan nga ihulagway nga gilain.

Ang akong opinyon sa "unibersal nga himan" ug ang hinungdan sa pagpili sa ESP32

Wala ko mag-angkon nga ako ang kamatuoran. Ang matag usa adunay ilang kaugalingon. Akong paningkamutan nga hatagan og katarungan ang akong pagpili sa hardware.

Gisugyot sa artikulo ang kaso sa paggamit sa usa ka kombinasyon sa Linux (sa sinugdan Raspberry Pi) + "mga peripheral" sa porma sa usa ka controller (STM32) + CC1110 (8051 core) ug ang plano sa pag-cram sa tanan nga posible didto (125kHz, NFC, 433mHz, USB, iButton, bluetooth, ?) murag dili angay para nako. Apan, niini nga proyekto Morag magpabilin kini nga pribado ug sirado (flipper-zero github "Kini nga organisasyon walay mga publikong repository.") ug miadto sa dili kaayo komon nga hardware.

Tingali nasayop ko, ug sa umaabot ang mga tagsulat maghimo sa mga tinubdan sa software nga magamit sa publiko. Apan kung dili, nan dili ko mopalit sa ingon nga piraso sa hardware nga wala ang source code.

Ang akong mga kinahanglanon alang sa "tool"

Ang kahon kinahanglan nga gamay (mas gamay mas maayo).

Busa:

  • Dili kinahanglan nga built-in nga baterya. Uban sa kasamtangan nga> 100 mA sa dihang nagtrabaho uban sa Wifi, ang built-in nga baterya mahimong dako o dili magdugay. Busa, himoa nga ang "kahon" gipaandar sa usa ka standard nga power bank. Bisan pa, naa koy power bank kanunay sa akong bulsa/sakyanan.
  • Pagtipig usa ka "kahon" sa Linux nga adunay mga himan sa sulod, gisulat sulod sa daghang katuigan sa tanang pinulongan Uban sa usa ka gamay nga screen ug usa ka gamay nga set sa mga buton sa pagkontrol, wala’y kahulogan. Ang mga resulta mahimong tan-awon / maproseso sa usa ka normal nga laptop nga adunay bug-os nga keyboard ug screen.
  • Ang mga sangkap kinahanglan nga dali ma-access ug kaylap nga nahibal-an (anaa ang SDK, daghang mga pananglitan ug dokumentasyon).

Ingon usa ka sangputanan, alang kanako, ang kapilian klaro - ESP32.

Alang sa tanan nga mga buluhaton nga gipahayag sa artikulo nga nag-aghat kanako sa paglihok, ang mga kapabilidad sa ESP32 igo na. Bisan kung ang labing gusto nako buhaton mao ang:

  • Pagdula sa Bluetooth.
  • Pagdula uban ang 433mHz range nga adunay pinakasimple nga hardware (amplitude modulation lamang, nga igo alang sa praktikal nga mga panginahanglan).

Molupad sa pahumot sa ESP32

  • Ang ESP32 SDK (IDF) medyo clumsy.
  • Ang pipila sa mga gamit (WiFi stack, pananglitan) moabut nga walay source code sa porma sa mga assembled static library.
  • Ang 5gHz band dili suportado ug adunay pipila ka mga limitasyon ug clumsiness sa pagtrabaho uban sa WiFi.

Apan ang presyo / gidak-on hingpit nga nagbaylo niini nga mga kakulangan.

Panguna nga pagpaandar sa software

Akong ihulagway sa daklit ang pagpaandar ug ang akong opinyon bahin sa...

Pagdumala sa mga setting ug pag-upload sa mga file gikan sa SD

Ang tanan nga kontrol sa gawas gihimo pinaagi sa usa ka yano nga panid sa Web, nga gilunsad sa usa ka lahi nga butang sa menu. Ang ESP32 nagsugod sa WiFi AP mode ug nagpakita sa usa ka panid sa usa ka fixed IP address.

Bisan kung ang mga cores sa ESP32 kusog kaayo, ingon sa gipakita sa mga eksperimento, ang dungan nga operasyon sa built-in nga serbisyo sa Web ug, pananglitan, ang mode sa router dili kaayo magkatugma. Busa, walay dinamikong kontrol ug ang panid dili magamit sa tanang ubang mga paagi.
Dugang pa, ang dinamikong pagkontrol wala kinahanglana alang sa mga katuyoan sa panukiduki.

Pamaagi sa pagtrabaho sa mga pakete sa Beacon

Ang mga mode banal ug dili kaayo makapaikag. Gihimo "tungod kay kini posible." Alang sa pagsusi.
Adunay mga pananglitan sa opisyal nga mga pananglitan sa Espressif.

AP list scanning mode.
Sa tinuud, ang bisan unsang smartphone makahimo niini.
Aw, sa kini nga mode ang lista sa AP maluwas.
Beacon spammer.
Nagsugod ang ESP32 isip AP nga adunay tinago nga SSID ug random MAC ug nagsugod sa pagpadala [beacon frame] sumala sa nabuhat nang daan nga lista sa SSIDs (manual nga gihimo o nakuha sa sayo pa pinaagi sa pag-scan sa listahan sa AP)

WiFi packet sniffing mode

Ang mga nag-develop sa espressif nagdugang sa abilidad sa software sa aplikasyon nga makadawat sa tanan nga mga pakete sa WiFi nga "naglupad sa hangin" pinaagi sa function sa callback. Sa tinuud dili tanan, tungod kay mahimo ra nimo itakda ang mode alang sa usa ka fixed channel.

Ang higpit kaayo nga mga pagdili sa oras gipahamtang sa pagproseso sa usa ka function sa callback. Kung dili kini hinungdan sa mga problema alang sa yano nga mode sa pagkolekta sa estadistika, nan alang sa mode sa pagrekord sa file sa PCAP sa SD card kinahanglan nako nga mag-tinker, pag-organisar sa pagrekord pinaagi sa usa ka pila sa memorya ug mga semaphore. Gikonsiderar ang pagkalahi nga ang proseso sa pagtawag sa callback nagdagan sa usa ka kinauyokan, ug ang proseso nga nagsulat sa SD sa lain.

Atol sa "saba nga hangin", ang pipila ka mga pakete nawala (walay luna sa pila ug kini gilabay), apan adunay usa ka tipikal nga "hangin" sa usa ka apartment sa gabii (5..7 APs sulod sa visibility), pagrekord sa PCAP nahuman nga walay packet loss.

Dugang pa, alang sa pagmonitor ug pagrekord sa PCAP, adunay mode sa pagsala base sa listahan sa MAC sa mga packet header.

Pananglitan, mahimo nimong masubay ang hitsura sa usa ka tawo sa usa ka club/cafe sa wala pa siya mosulod o magpakita sa panan-aw. Pipila ka mga tawo ang nag-disable sa WiFi ug awtomatik nga koneksyon sa nahibal-an nga mga AP. (Gipalong nako kini karon..)

Ang pagtan-aw sa narekord nga trapiko sa Wireshark usa ka edukasyonal ug makapaikag alang sa pagsabut sa mga mapa - kini tanan molihok.

Mode alang sa pagtrabaho uban sa death packages

Sa kasagaran, ang pagpadala niini nga mga pakete gidid-an sa libnet80211.a library, nga walay tinubdan. Apan kini dali nga ayohon pinaagi sa pag-tweak sa pipila ka mga piraso. Sa una nagduhaduha ko kung angay ba nga i-post ang patch. Apan pagkahuman sa paglibot sa lainlaing mga lugar nga gi-on ang mode sa pag-scan sa frame sa deauthentication, naghunahuna ko: "unsa man." Dugang pa, sa esp8266 ang paghatud sa kini nga mga pakete wala sirado ug adunay mga asembliya sa github alang sa esp8266.

Sa daghang mga lugar (dili nako isulti kung diin) gigamit ang pagsumpo sa dili gusto nga mga AP pinaagi sa kini nga pamaagi. Ug kini dili "mga tigdaogdaog" ...

Ug natingala usab ako nga ang akong pag-apod-apod sa Internet gikan sa akong telepono wala molihok sa pipila ka mga lugar...

Ang paagi sa pagsubay sa numero ug RSSI sa maong mga pakete mapuslanon kaayo aron masabtan "diin ang wala nga mga AP dili ganahan niini."

router mode

Kini nga bahin mao tingali ang labing makaiikag sa tanan nga tukion.

Ang ESP32 nagsuporta sa dungan nga operasyon sa STA + SoftAP mode. Busa, mahimo nimong ipatuman ang usa ka klasiko nga NAT router niini.

Para suportahan ang network stack, ang Espressif naggamit ug fork (halos wala mausab) sa lwip library.

Apan, pinaagi sa default, sa standard nga pagtukod, ang esp-lwip library wala maghatag pagpasa tali sa netif interfaces 'ap' (SoftAP) ug 'st' (STA).

Siyempre, mahimo nimo kini nga walay NAT, apan adunay problema sa dungan nga pagkonektar sa duha o labaw pa nga mga STA sa 'ap' interface ug pag-synchronize sa mga IP address gikan sa 'st' ngadto sa 'ap' network interface. Mao nga ang mga kalisud dili takus niini ug mas sayon ​​​​pinaagi sa NAT.

Dugang pa, adunay usa ka tinidor nga esp-lwip gikan sa martin-ger, nga nagdugang usa ka yano nga pagpatuman sa NAT alang sa IP4.

Bisan kung ang akong mga kamot nangalisay sa paghimo niini nga lunsay nga kosmetiko (sa akong opinyon, mas sayon ​​​​nga walay tinidor sa proyekto, apan pinaagi sa LWIPHAPIN function nga gihubit sa panahon sa asembliya), apan ang pagkatapulan mipatigbabaw ug ang kapilian gikan sa martin-ger gigamit ingon nga mao.

Sa router mode, ang umaabot ug mogawas nga IP4 nga trapiko gitan-aw.

Sa partikular, ang mga musunud gikuha gikan niini aron ipakita sa screen ug pagkolekta sa mga istatistika sa usa ka file:

  • Ngalan sa device nga konektado sa SoftAP ESP32 (DHCP packets)
  • URL gikan sa DNS requests (UDP port 53) gikan sa device nga konektado sa SoftAP ESP32.

Dugang pa, mahimo nimong palihokon ang pagrekord sa trapiko sa usa ka file sa PCAP.

Kini nga mode mapuslanon kaayo, pananglitan, aron masabtan, pananglitan, kung unsa ang gipadala sa imong telepono sa network ug kung asa kini moadto.

Makahunahuna ka ug uban pang mga paagi sa paggamit niini nga mode, nga gikonsiderar ang abilidad nga hingpit nga makontrol ang softAP ESP32 nga umaabot ug paggawas nga trapiko sa lebel sa interface sa network: Ehernet header (destMAC[6]+srcMAC[6]+type[2]) + payload (IP4, IP6, DCHP, etc. type).

Sa prinsipyo, ang ESP32 nakasagubang og maayo sa WiFi->WiFi router function, nga moagi sa normal nga trapiko nga walay bisan unsang espesyal nga paglangan. Sa tinuud, ang mga paglangan sa usa ka telepono nga konektado pinaagi sa usa ka router sa usa ka ESP32 dili mamatikdan.

Ikasubo, ang Espressif API wala’y katakus nga magbutang usa ka filter alang sa MAC nga konektado sa SoftAP EPS32. Hinuon, gisugyot nga "paalam" (esp_wifi_deauth_sta) sa mga konektado na nga STA nga "dili gusto".

Ang pagsala pinaagi sa MAC alang sa konektado nga mga STA kinahanglan buhaton pinaagi sa esp_wifi_deauth_sta() nga tawag

Sa konklusyon

Bisan tuod wala akoy nahimo nga bag-o sulod sa gambalay sa pagtrabaho uban sa ESP32, tingali ang resulta (source code) makapainteres sa usa ka tawo.

Gusto nakong timan-an nga ang kodigo gisulat alang lamang sa mga katuyoan sa edukasyon. Alang sa "hacking", ug uban pa, kini gituyo nga gihimo nga dili kaayo kombenyente.

Wala ko maghimo og printed circuit board tungod kay nagkinahanglan kini og 1.5-2 ka oras aron mabaligya ang nahuman nga scarves gamit ang wire.

Ug kung buhaton nimo, kinahanglan nimo nga tipunon kini dili gikan sa andam nga mga tabla, apan gikan sa indibidwal nga mga sangkap. Unya ang mga sukod mahimong mas gamay.

Source: www.habr.com

Idugang sa usa ka comment