Ukudlala nge-Wifi ku-ESP32

Ukudlala nge-Wifi ku-ESP32

Okwanginika umqondo wokwenza ithuluzi lephakethe lokuhlaziya amanethiwekhi e-WiFi kwaba Lesi sihloko.

Siyabonga kubo ngombono. Ngavele ngaswele lutho.

Wonke umsebenzi wenziwe njengengxenye yokuzilibazisa ngenjongo yokuzijabulisa nokwandisa ulwazi lwami emkhakheni wobuchwepheshe benethiwekhi. Kancane kancane, amahora angu-1..4 ngesonto, kusukela ekuqaleni kwalo nyaka.
Angizange ngihlele ukusetshenziswa okungokoqobo. Labo. Leli AKUSILO ithuluzi le-hacker.

Okwamanje, yonke imisebenzi ehleliwe iyasebenza. Yonke imithombo, isilungele ngokuphelele ukuhlanganiswa, okuthunyelwe lapha. Kukhona neziqondiso zomhlangano, njll. Kule nothi, ngeke ngiphindaphinde ulwazi oluthunyelwe ku-github. Ngizokutshela kuphela lokho engikubona kudingekile ukuze ngikuchaze ngokwehlukana.

Umbono wami "ngethuluzi lomhlaba wonke" kanye nesizathu sokukhetha i-ESP32

Angisho ukuthi ngiyiqiniso. Wonke umuntu unokwakhe. Ngizozama ukuthethelela ukukhetha kwami ​​kwehadiwe.

Kuphakanyiswe esihlokweni icala lokusebenzisa inhlanganisela ye-Linux (ekuqaleni i-Raspberry Pi) + "izinto ezijikelezayo" ngendlela yesilawuli (STM32) + CC1110 (8051 core) kanye nohlelo lokuminyanisa yonke into engenzeka lapho (125kHz, NFC, 433mHz, USB, iButton, bluetooth, ?) ayizange ibonakale ingifanele. Nokho, le phrojekthi Kubukeka sengathi izohlala iyimfihlo futhi ivaliwe (i-flipper-zero github "Le nhlangano ayinazo amaqoqo omphakathi.") futhi iye ku-hardware engajwayelekile kakhulu.

Mhlawumbe nginephutha, futhi esikhathini esizayo ababhali bazokwenza imithombo yesofthiwe itholakale esidlangalaleni. Kodwa uma kungenjalo, khona-ke ngeke ngithenge ucezu olunjalo lwehadiwe ngaphandle kwekhodi yomthombo.

Izidingo zami "zethuluzi"

Ibhokisi kufanele libe lincane (elincane libe ngcono).

Ngakho-ke:

  • Alikho ibhethri elakhelwe ngaphakathi elidingekayo. Ngeyamanje > 100 mA uma usebenza ne-Wifi, ibhethri elakhelwe ngaphakathi lizoba likhulu noma lingahlali isikhathi eside. Ngakho-ke, vumela "ibhokisi" linikezwe amandla yibhange lamandla elijwayelekile. Noma kunjalo, ngihlala nginebhange lamandla ephaketheni/emotweni yami.
  • Gcina "ibhokisi" le-Linux elinamathuluzi ngaphakathi, ebhalwe iminyaka eminingi ngazo zonke izilimi Ngesikrini esincane kanye nesethi encane yezinkinobho zokulawula, akunangqondo. Imiphumela ingabukwa/icutshungulwe kukhompuyutha ephathekayo evamile ngekhibhodi nesikrini esigcwele.
  • Izingxenye kufanele zifinyeleleke kalula futhi zaziwa kabanzi (i-SDK etholakalayo, izibonelo eziningi namadokhumenti).

Ngenxa yalokho, kimi, ukukhetha kwakusobala - ESP32.

Kuyo yonke imisebenzi eshiwo esihlokweni esingigqugquzele ukuthi ngenze isenzo, amakhono e-ESP32 anele impela. Nakuba okuningi engisafuna ukukwenza yilokhu:

  • Dlala nge-Bluetooth.
  • Dlala nxazonke ngobubanzi obungu-433mHz ngehadiwe elula kakhulu (ukuguqulwa kwe-amplitude kuphela, okwanele izidingo ezingokoqobo).

Fly in the oil in ESP32

  • I-ESP32 SDK (IDF) ayihlanganisi kahle.
  • Okunye ukusebenza (isitaki se-WiFi, isibonelo) siza ngaphandle kwekhodi yomthombo ngesimo semitapo yolwazi engashintshi ehlanganisiwe.
  • Ibhendi ye-5gHz ayisekelwe futhi kukhona ukulinganiselwa nokuxaka ekusebenzeni ne-WiFi.

Kodwa intengo/usayizi unxephezela ngokuphelele la maphutha.

Ukusebenza kwesofthiwe eyinhloko

Ngizochaza kafushane ukusebenza nombono wami mayelana...

Ukuphatha izilungiselelo nokulayisha amafayela kusuka ku-SD

Konke ukulawula kwangaphandle kwenziwa ngekhasi leWeb elilula, elethulwe entweni ehlukile yemenyu. I-ESP32 iqala ngemodi ye-WiFi AP futhi ibonisa ikhasi ekhelini le-IP elingashintshi.

Nakuba ama-cores e-ESP32 eshesha kakhulu, njengoba ucwaningo luye lwabonisa, ukusebenza ngesikhathi esisodwa kwesevisi yeWebhu eyakhelwe ngaphakathi futhi, isibonelo, imodi yomzila ayihambelani kakhulu. Ngakho-ke, akukho ukulawula okuguquguqukayo futhi ikhasi alitholakali kuzo zonke ezinye izindlela.
Ngaphezu kwalokho, ukulawula okuguquguqukayo akudingekile ngezinjongo zocwaningo.

Imodi yokusebenza ngamaphakheji we-Beacon

Amamodi angama-banal futhi awathakazelisi kakhulu. Kwenziwe "ngoba kungenzeka." Okwesheke.
Kunezibonelo ezibonelweni ezisemthethweni ze-Espressif.

Imodi yokuskena yohlu lwe-AP.
Eqinisweni, noma iyiphi i-smartphone ingakwenza lokhu.
Nokho, kule modi uhlu lwe-AP luzogcinwa.
Ugaxekile webhikhoni.
I-ESP32 iqala njenge-AP nge-SSID efihliwe kanye ne-MAC engahleliwe futhi iqala ukuthumela [uhlaka lwebhikhoni] ngokohlu oludalwe kusengaphambili lwama-SSID (lwakhiwe ngesandla noma olutholwe ngaphambili ngokuskena uhlu lwe-AP)

Imodi yokuhogela yephakethe le-WiFi

Abathuthukisi be-Espressif bangeze ikhono lesofthiwe yohlelo lokusebenza ukuthola wonke amaphakethe e-WiFi "endiza emoyeni" ngokusebenzisa umsebenzi wokuphinda ushaye ucingo. Empeleni akusikho konke, njengoba ungasetha kuphela imodi yesiteshi esisodwa esingashintshi.

Imikhawulo yesikhathi eqinile ibekiwe ekucubunguleni umsebenzi wokuphinda ushayele. Uma lokhu kungabangeli izinkinga ngemodi yokuqoqa izibalo ezilula, khona-ke ngemodi yokuqopha ifayela le-PCAP ekhadini le-SD bekufanele ngicunule, ngihlele ukurekhoda ngomugqa kumemori nama-semaphores. Kucatshangelwa okukhethekile ukuthi inqubo yokubiza i-callback isebenza kumongo owodwa, kanye nenqubo ebhalela i-SD kwenye.

Ngesikhathi "somoya onomsindo", amanye amaphakethe alahlekile (ayikho indawo emgqeni futhi alahliwe), kodwa "ngomoya" ojwayelekile wefulethi kusihlwa (ama-5..7 APs ngaphakathi kokubonakala), ukurekhoda ku-PCAP iqedwa ngaphandle kokulahlekelwa kwephakethe.

Ukwengeza, ngokuqapha nokurekhoda kwe-PCAP, kunemodi yokuhlunga esekelwe kuhlu lwe-MAC kuzihloko zephakethe.

Isibonelo, ungakwazi ukulandelela ukubukeka komuntu ekilabhini/ekhefi ngaphambi kokuthi angene noma abonakale. Bambalwa abantu abakhubaza i-WiFi nokuxhumeka okuzenzakalelayo kuma-AP aziwayo. (Ngiyayicisha manje..)

Ukubuka ithrafikhi erekhodiwe e-Wireshark kuyafundisa futhi kuyathakazelisa ukuqonda amamephu - konke kuyasebenza.

Imodi yokusebenza ngamaphakheji we-deauth

Ngokuzenzakalelayo, ukuthumela lawa maphakheji kuvinjelwe kulabhulali ye-libnet80211.a, eza ngaphandle kwemithombo. Kodwa kulula ukulungisa ngokulungisa izingcezu ezimbalwa. Ekuqaleni ngangabaza ukuthi bekufanele yini ukuthumela isichibi. Kodwa ngemva kokuhamba ezindaweni ezihlukene kuvulwe imodi yokuskena yohlaka lokususa ubuqiniso, ngacabanga: “yini isihogo.” Ngaphezu kwalokho, ku-esp8266 ukulethwa kwalawa maphakheji akuvaliwe futhi kunemihlangano ku-github ye-esp8266.

Ezindaweni eziningi (ngeke ngisho kuphi) ukucindezelwa kwama-AP angafuneki ngale ndlela kuyasetshenziswa. Futhi lezi akuzona "iziqhwaga"...

Futhi ngamangala ukuthi ukusatshalaliswa kwami ​​kwe-inthanethi ocingweni lwami akuzange kusebenze kwezinye izindawo...

Imodi yokulandelela inombolo kanye ne-RSSI yamaphakethe anjalo iwusizo kakhulu ukuqonda ukuthi "lapho ama-AP angakwesokunxele engathandi khona."

imodi ye-router

Lesi sici cishe yisona esithakaseleka kunazo zonke ongasihlola.

I-ESP32 isekela ukusebenza ngasikhathi sinye kumodi ye-STA + SoftAP. Ngakho-ke, ungasebenzisa irutha yakudala ye-NAT kuyo.

Ukuze isekele isitaki senethiwekhi, i-Espressif isebenzisa imfoloko (cishe engashintshiwe) yelabhulali ye-lwip.

Kodwa, ngokuzenzakalelayo, ekwakheni okujwayelekile, umtapo wezincwadi we-esp-lwip awunikezi ukudlulisela phakathi kwe-netif interfaces 'ap' (SoftAP) kanye ne-'st' (STA).

Yebo, ungakwenza ngaphandle kwe-NAT, kodwa kunenkinga yokuxhuma ngesikhathi esisodwa ama-STA amabili noma ngaphezulu kusixhumi esibonakalayo 'se-ap' nokuvumelanisa amakheli e-IP ukusuka ku-interface yenethiwekhi 'st' kuya ku-'ap'. Ngakho-ke ubunzima abukufanele futhi kulula nge-NAT.

Ngaphezu kwalokho, kunefork esp-lwip evela ku-martin-ger, enezela ukuqaliswa okulula kwe-NAT ye-IP4.

Nakuba izandla zami zazilunywa ukuzenza kabusha ngobuhle (ngokubona kwami, bekulula ngaphandle kwefoloko yephrojekthi, kodwa nge-LWIPKUPHELA imisebenzi echazwe ngesikhathi sokuhlanganiswa), kodwa ubuvila bukhona futhi inketho evela ku-martin-ger isetshenziswa njengoba injalo.

Kumodi yerutha, ithrafikhi ye-IP4 engenayo naphumayo iyabukwa.

Ikakhulukazi, okulandelayo kukhishwa kuyo ukuze kuboniswe esikrinini futhi kuqoqwe izibalo efayeleni:

  • Igama ledivayisi exhunywe ku-SoftAP ESP32 (amaphakethe e-DHCP)
  • I-URL evela kuzicelo ze-DNS (imbobo ye-UDP 53) kusukela kudivayisi exhunywe ku-SoftAP ESP32.

Ukwengeza, ungavumela ukuqoshwa kwethrafikhi kufayela le-PCAP.

Le modi iwusizo kakhulu, isibonelo, ukuqonda, isibonelo, ukuthi ifoni yakho ithumela ini kunethiwekhi nokuthi iya kuphi.

Ungacabanga ngezinye izindlela zokusebenzisa le modi, ucabangela ikhono lokulawula ngokuphelele ithrafikhi ye-softAP ESP32 engenayo nephumayo ezingeni lenethiwekhi: Isihloko se-Ehernet (destMAC[6]+srcMAC[6]+type[2]) + i-payload (IP4, IP6, DCHP, njll. uhlobo).

Empeleni, i-ESP32 ibhekana kahle nomsebenzi we-WiFi->WiFi router, idlula kuthrafikhi evamile ngaphandle kokubambezeleka okukhethekile. Ngokuzithoba, ukubambezeleka ocingweni oluxhunywe ngerutha ku-ESP32 akubonakali.

Ngeshwa, i-Espressif API ayinalo ikhono lokusetha isihlungi se-MAC esixhunywe ku-SoftAP EPS32. Kunalokho, kuhlongozwa ukuthi “usale kahle” (esp_wifi_deauth_sta) kuma-STA asevele axhunyiwe “angafunwa”.

Ukuhlunga nge-MAC kuma-STA axhunyiwe bekumele kwenziwe ngekholi ye-esp_wifi_deauth_sta()

Ekuphethweni

Nakuba ngingazange ngiqhamuke nanoma yini entsha ngaphakathi kohlaka lokusebenza ne-ESP32, mhlawumbe umphumela (ikhodi yomthombo) izothakazelisa othile.

Ngithanda ukuqaphela ukuthi ikhodi ibhalelwe izinjongo zokufundisa kuphela. “Ngokugebenga”, njll., kwenziwa ngamabomu kungabi lula kakhulu.

Angizange ngenze ibhodi lesifunda eliphrintiwe ngoba kuthathe amahora angu-1.5-2 ukudayisa izikhafu eziqediwe ngocingo.

Futhi uma wenza, udinga ukuyihlanganisa hhayi emabhodini enziwe ngomumo, kodwa ezingxenyeni zomuntu ngamunye. Khona-ke izilinganiso zizoba zincane nakakhulu.

Source: www.habr.com

Engeza amazwana