Lîstika bi Wifi li ser ESP32

Lîstika bi Wifi li ser ESP32

Ya ku min fikir kir ku ez ji bo analîzkirina torên WiFi amûrek pocketê çêkim ev bû vê gotarê.

Spas ji wan re ji bo ramanê. Tenê tiştek ku ez bikim tune bû.

Hemî kar wekî beşek hobiyek ji bo mebesta kêf û berfirehkirina zanîna min di warê teknolojiyên torê de hate kirin. Hêdî hêdî, 1..4 saet di hefteyê de, ji destpêka vê salê ve.
Min tu karanîna pratîkî plan nekir. Ewan. Ev NE amûrek hacker e.

Heya nuha, hemî fonksiyonên plankirî dixebitin. Hemî çavkanî, bi tevahî ji bo civînê amade ne, li vir hatiye şandin. Di heman demê de rêwerzên meclîsê jî hene, hwd. Di vê notê de, ez ê agahdariya ku li ser github hatî şandin dubare nekim. Ez ê tenê tiştê ku ez hewce dibînim ku ji hev cuda vebêjim ji we re vebêjim.

Raya min li ser "alava gerdûnî" û sedema hilbijartina ESP32

Ez îdia nakim ku ez rast im. Her kes xwediyê xwe ye. Ez ê hewl bidim ku hilbijartina xwe ya hardware rastdar bikim.

Di gotarê de pêşniyar kirin doza karanîna tevhevek Linux (di destpêkê de Raspberry Pi) + "dorpêçan" di forma kontrolkerek (STM32) + CC1110 (8051 core) û plansaziya ku her tiştê gengaz li wir bişewitîne (125kHz, NFC, 433mHz, USB, iButton, bluetooth, ?) ji min re ne guncaw xuya bû. Lebê, vê projeyê Wusa dixuye ku ew ê taybet û girtî bimîne (github flipper-zero "Vê rêxistinê depoyên gelemperî tune.") û ber bi hardware ne pir gelemperî ve çû.

Dibe ku ez xelet im, û di pêşerojê de nivîskar dê çavkaniyên nermalavê bi raya giştî re peyda bikin. Lê heke ne wusa be, wê hingê ez ê bêyî koda çavkaniyê perçeyek wusa hardware bikirim.

Pêdiviyên min ji bo "alav"

Pêdivî ye ku qutik piçûk be (çi piçûk ew çêtir).

Ji ber vê yekê

  • No pîlê ava-li pêwîst. Dema ku bi Wifi re xebitînek> 100 mA, batarya çêkirî dê mezin be an jî dirêj neke. Ji ber vê yekê, bila "box" ji hêla bankek hêza standard ve were hêz kirin. Herçi jî, ez her dem di berîka min / otomobîla min de bankek hêzê heye.
  • Di hundurê de amûrek "box" Linux-ê bihêle, bi salan bi hemû zimanan hatiye nivîsandin Bi ekranek piçûk û komek piçûk a bişkokên kontrolê, ew bê wate ye. Encam dikare li ser laptopek normal bi klavyeyek tije û ekranek bête dîtin / pêvajo kirin.
  • Divê pêkhate bi hêsanî bigihîjin û bi berfirehî bêne zanîn (SDK-ya berdest, gelek mînak û belge).

Wekî encamek, ji bo min, bijarte diyar bû - ESP32.

Ji bo hemî karên ku di gotarê de hatine destnîşan kirin ku min teşwîq kir ku ez tevbigerim, kapasîteyên ESP32 têr in. Her çend ya herî ku ez hîn jî dixwazim bikim ev e:

  • Bi Bluetooth-ê li dora xwe bilîzin.
  • Bi navgîniya 433mHz re bi sadetirîn hardware (tenê modulasyona amplitudê, ku ji bo hewcedariyên pratîkî bes e) lîstin.

Di ESP32 de rûnê bifirin

  • ESP32 SDK (IDF) hinekî bêaqil e.
  • Hin fonksiyonên (mînakek WiFi stack) bêyî koda çavkaniyê di forma pirtûkxaneyên statîk ên berhevkirî de tê.
  • Bandora 5gHz nayê destek kirin û di xebata WiFi de hin sînorkirin û nelirêtî hene.

Lê biha / mezinahî bi tevahî van kêmasiyan telafî dike.

Fonksiyona nermalava sereke

Ez ê bi kurtî fonksiyon û nêrîna xwe di derbarê ...

Rêvekirina mîhengan û barkirina pelan ji SD

Hemî kontrolkirina derveyî bi navgînek Malperek hêsan, ku di menuyek cihêreng de hatî destpêkirin, tête kirin. ESP32 di moda WiFi AP-ê de dest pê dike û rûpelek li navnîşek IP-ya sabît nîşan dide.

Her çend korikên ESP32 pir bilez in, wekî ku ezmûnan destnîşan kiriye, xebata hevdemî ya karûbarê Web-ya çêkirî û, mînakî, moda routerê ne pir lihevhatî ne. Ji ber vê yekê, kontrolek dînamîkî tune û rûpel di hemî awayên din de peyda nabe.
Wekî din, kontrola dînamîkî ji bo armancên lêkolînê ne hewce ye.

Modeya xebatê bi pakêtên Beacon re

Modên banal û ne pir balkêş in. "Ji ber ku gengaz e" hatî çêkirin. Ji bo kontrolê.
Di mînakên fermî yên Espressif de mînak hene.

Moda şopandina navnîşa AP-ê.
Bi rastî, her smartphone dikare vê yekê bike.
Welê, di vê modê de navnîşa AP-ê dê were tomar kirin.
Beacon spammer.
ESP32 wekî AP-ê bi SSID-yek veşartî û MAC-ek rasthatî dest pê dike û dest bi şandina [çarçoveya beacon] dike li gorî navnîşek SSID-ya pêş-afirandî (bi destan hatî çêkirin an jî berê bi şopandina navnîşa AP-ê hatî peyda kirin)

Moda kişandina pakêta WiFi

Pêşdebirên Espressif şiyana nermalava serîlêdanê lê zêde kirine ku hemî pakêtên WiFi "li hewayê difirin" bi fonksiyona vegerê vegere. Bi rastî ne hemî, ji ber ku hûn tenê dikarin modê ji bo kanalek sabît saz bikin.

Li ser hilanîna fonksiyonek paşvekişînê de tixûbên demê yên pir hişk têne ferz kirin. Ger ev ji bo moda berhevkirina statîstîkên hêsan dernakeve, wê hingê ji bo moda tomarkirina pelê PCAP-ê ya li ser qerta SD-ê ez neçar bûm ku tomar bikim, tomarê bi rêzek di bîranîn û semaforan de birêxistin bikim. Li gorî vê taybetmendiya ku pêvajoya banga vegerê li ser yek bingehek dimeşe, û pêvajoya ku ji SD-ê re di navek din de dinivîse.

Di dema "hewa bi deng" de, hin pakêt winda dibin (di rêzê de cîh tune û ew têne avêtin), lê bi "hewaya" tîpîk a apartmanekê êvarê (5..7 AP di nav xuyabûnê de), di PCAP-ê de tomar dikin. bêyî windabûna pakêtê tê qedandin.

Wekî din, ji bo çavdêrîkirin û tomarkirina PCAP-ê, di sernavên pakêtê de li ser bingeha navnîşa MAC-ê moda fîlterkirinê heye.

Mînakî, hûn dikarin xuyangiya kesek li klûbek / qehwexaneyekê bişopînin berî ku ew bikeve an li ber çavan xuya bibe. Kêm kes WiFi û girêdanên otomatîkî yên AP-yên naskirî neçalak dikin. (Ez niha wê dimirim..)

Dîtina seyrûsefera tomarkirî ya li Wireshark ji bo têgihiştina nexşeyan perwerdehî û balkêş e - ew hemî dixebite.

Moda ji bo xebata bi pakêtên mirinê

Bi xwerû, şandina van pakêtan di pirtûkxaneya libnet80211.a de, ku bê çavkanî tê, qedexe ye. Lê ew hêsan e ku meriv bi du-bitikan verast bike. Di destpêkê de min guman kir ku ew hêjayî şandina patchê ye. Lê piştî ku li deverên cihêreng meşiyam ku moda şopandina çarçoweya nerastkirinê vekir, ez fikirîm: "çi dojeh." Wekî din, di esp8266 de radestkirina van pakêtan nayê girtin û li ser github ji bo esp8266 meclîs hene.

Li gelek deveran (ez ê nebêjim li ku derê) tepeserkirina AP-yên nedilxwaz bi vê rêbazê tê bikar anîn. Û ev jî ne "şermezar" in...

Û ez jî şaş bûm ku belavkirina înternetê ya min ji têlefona min li hin deveran nexebitî...

Moda şopandina hejmar û RSSI ya pakêtên weha pir bikêr e ku meriv fêm bike "ku AP-yên çep jê hez nakin."

mode router

Ev taybetmendî belkî ji hemîyan balkêştirîn e ku meriv keşif bike.

ESP32 di moda STA + SoftAP de operasyona hevdem piştgirî dike. Ji ber vê yekê, hûn dikarin li ser wê routerek NAT-a klasîk bicîh bikin.

Ji bo piştgirîkirina staka torê, Espressif forkek (bi rastî neguhezbar) ya pirtûkxaneya lwip bikar tîne.

Lê, ji hêla xwerû, di avakirina standard de, pirtûkxaneya esp-lwip di navbera navgînên netif 'ap' (SoftAP) û 'st' (STA) de şandinê peyda nake.

Bê guman, hûn dikarin bêyî NAT-ê bikin, lê pirsgirêkek heye ku bi hevdemî du an bêtir STA-ê bi navbeynkariya 'ap' ve girêbide û navnîşanên IP-yê ji navgîniya torê ya 'st' berbi 'ap' hevdeng bike. Ji ber vê yekê dijwarî ne hêjayî wê ne û ew bi NAT-ê hêsantir e.

Digel vê yekê, forkek esp-lwip ji martin-ger heye, ku ji bo IP4 pêkanîna sade ya NAT-ê zêde dike.

Her çend destên min ji nûvekirina wê bi tenê kozmetîkî (bi dîtina min, ew bêyî qursa projeyê hêsantir bû, lê bi navgîniya LWIP-ê ve diêşiyanÇENGEL fonksiyonên ku di dema kombûnê de hatine destnîşankirin), lê tembelî serdest bû û vebijarka ji martin-ger wekî ku tê bikar anîn.

Di moda routerê de, seyrûsefera IP4 ya tê û derketinê tê dîtin.

Bi taybetî, ya jêrîn ji bo xuyangkirina li ser ekranê û berhevkirina statîstîkan di pelê de jê tê derxistin:

  • Navê cîhaza ku bi SoftAP ESP32 (pakêtên DHCP) ve girêdayî ye
  • URL ji daxwazên DNS (UDP port 53) ji amûrek ku bi SoftAP ESP32 ve girêdayî ye.

Wekî din, hûn dikarin tomarkirina trafîkê li pelek PCAP-ê çalak bikin.

Ev mod pir bikêr e, mînakî, ji bo fêmkirina, mînakî, têlefona we ji torê re çi dişîne û li ku derê diçe.

Hûn dikarin awayên din bikar bînin ku vê modê bikar bînin, li ber çavan bigirin ku meriv bi tevahî seyrûsefera tê û derketinê ya softAP ESP32 di asta pêwendiya torê de kontrol bike: Sernavê Ehernet (destMAC[6]+srcMAC[6]+cure[2]) + payload (IP4, IP6, DCHP, hwd. type).

Di prensîbê de, ESP32 bi fonksiyona routerê WiFi-> WiFi re pir baş tevdigere, bêyî derengiyên taybetî di seyrûsefera normal de derbas dibe. Subjektîf, derengiya têlefonek ku bi riya routerê li ser ESP32 ve girêdayî ye ne diyar e.

Mixabin, Espressif API ne xwediyê şiyana ku ji bo MAC-a ku bi SoftAP EPS32 ve girêdayî ye fîlterek saz bike. Di şûna wê de, tê pêşniyar kirin ku ji STA-yên jixwe ve girêdayî yên ku "naxwazin" re bêjin "bi xatirê te" (esp_wifi_deauth_sta).

Parzûnkirina ji hêla MAC-ê ve ji bo STA-yên girêdayî diviyabû bi banga esp_wifi_deauth_sta() ve were kirin.

Di encamê de

Her çend min di çarçoveya xebata bi ESP32 re tiştek nû dernexistibe jî, dibe ku encam (koda çavkaniyê) ji kesek re balkêş be.

Ez dixwazim bibînim ku kod tenê ji bo armancên perwerdehiyê hatiye nivîsandin. Ji bo "hackkirinê", hwd., ew bi zanebûn ne pir rehet hate çêkirin.

Min tabloyek çapkirî çênekir ji ber ku 1.5-2 demjimêran digirt ku şapikên qediyayî bi têlê were zeliqandin.

Û heke hûn bikin, hûn hewce ne ku wê ne ji panelên amade, lê ji hêmanên kesane kom bikin. Wê hingê pîvan dê hêj piçûktir bibin.

Source: www.habr.com

Add a comment