Pāʻani me Wifi ma ESP32

Pāʻani me Wifi ma ESP32

ʻO ka mea i hāʻawi mai iaʻu i ka manaʻo e hana i kahi mea hana ʻeke no ka nānā ʻana i nā pūnaewele WiFi kēia ʻatikala.

Mahalo iā lākou no ka manaʻo. ʻAʻohe aʻu mea e hana ai.

Ua hanaʻia nā hana a pau ma keʻano he leʻaleʻa no ka leʻaleʻa a me ka hoʻonuiʻana i koʻuʻike ma ke kahua o nāʻenehana pūnaewele. Me ka mālie, 1..4 hola o ka pule, mai ka hoʻomaka ʻana o kēia makahiki.
ʻAʻole wau i hoʻolālā i kahi hoʻohana pono. ʻO kēlā mau mea. ʻAʻole kēia he mea hana hacker.

I kēia manawa, ke hana nei nā hana i hoʻolālā ʻia. ʻO nā punawai a pau, mākaukau loa no ka hui ʻana, kau ʻia ma ʻaneʻi. Aia kekahi mau ʻōlelo aʻoaʻo, a pēlā aku. Ma kēia memo, ʻaʻole au e hoʻopālua i ka ʻike i kau ʻia ma github. E haʻi wale aku wau iā ʻoe i kaʻu mea i manaʻo ai he pono e wehewehe kaʻawale.

ʻO koʻu manaʻo ma ka "mea hana honua" a me ke kumu o ke koho ʻana i ka ESP32

ʻAʻole wau e ʻōlelo ʻo ia ka ʻoiaʻiʻo. Loaʻa i kēlā me kēia kanaka ko lākou iho. E ho'āʻo wau e hōʻoia i kaʻu koho ʻana i nā lako.

Manaʻo ʻia ma ka ʻatikala ka hihia hoʻohana o ka hui pū ʻana o Linux (ʻo Raspberry Pi mua) + "peripherals" ma ke ʻano o kahi mea hoʻoponopono (STM32) + CC1110 (8051 core) a me ka hoʻolālā e hoʻopili i nā mea āpau i laila (125kHz, NFC, 433mHz, USB, iButton, bluetooth, ?) ʻaʻole kūpono iaʻu. Eia naʻe, keia papahana Me he mea lā e noho pilikino a pani ʻia (flipper-zero github "ʻAʻohe hale waihona lehulehu o kēia hui.")

Malia paha ua hewa wau, a i ka wā e hiki mai ana e hoʻolaha nā mea kākau i nā kumu polokalamu i ka lehulehu. Akā inā ʻaʻole, a laila ʻaʻole wau e kūʻai i kēlā ʻāpana o ka lako me ka ʻole o ke code kumu.

ʻO kaʻu mau koi no ka "mea hana"

Pono ka pahu liʻiliʻi (ʻo ka liʻiliʻi ka maikaʻi).

No laila:

  • ʻAʻole pono ka pākaukau i kūkulu ʻia. Me kahi o kēia manawa> 100 mA i ka wā e hana pū ai me Wifi, e nui a lōʻihi paha ka pākaukau i kūkulu ʻia. No laila, e hoʻoikaika ʻia ka "pahu" e kahi waihona mana maʻamau. Eia naʻe, loaʻa iaʻu kahi panakō mana i loko o kaʻu ʻeke/kaʻa.
  • E mālama i kahi "pahu" Linux me nā mea hana i loko, kākau ʻia i nā makahiki he nui ma nā ʻōlelo a pau Me kahi pale liʻiliʻi a me kahi liʻiliʻi o nā pihi mana, ʻaʻohe manaʻo. Hiki ke ʻike ʻia nā hopena ma kahi kamepiula maʻamau me kahi kī piha a me ka pale.
  • Pono e maʻalahi a ʻike nui ʻia nā ʻāpana (loaʻa SDK, nā laʻana he nui a me nā palapala).

ʻO ka hopena, noʻu, ua maopopo ke koho - ESP32.

No nā hana a pau i ʻōlelo ʻia ma ka ʻatikala i koi iaʻu e hana, ua lawa nā mana o ka ESP32. ʻOiai ʻo kaʻu makemake nui e hana:

  • E pāʻani me ka Bluetooth.
  • E pāʻani a puni me ka laulā 433mHz me ka hāmeʻa maʻalahi loa (ka modulation amplitude wale nō, lawa ia no nā pono hana).

Lele i ka hamo ma ESP32

  • ʻO ka ESP32 SDK (IDF) he ʻano palaka.
  • ʻO kekahi o nā hana (WiFi stack, no ka laʻana) hele mai me ka ʻole kumu kumu ma ke ʻano o nā hale waihona puke i hui ʻia.
  • ʻAʻole kākoʻo ʻia ka band 5gHz a aia kekahi mau palena a me ka clumsiness i ka hana ʻana me WiFi.

Akā ʻo ke kumukūʻai / nui e hoʻopiʻi piha i kēia mau hemahema.

Hana lako polokalamu nui

E wehewehe pōkole wau i ka hana a me koʻu manaʻo e pili ana i...

Ka mālama ʻana i nā hoʻonohonoho a me ka hoʻouka ʻana i nā faila mai SD

Hana ʻia nā mana waho a pau ma o kahi ʻaoʻao pūnaewele maʻalahi, i hoʻokuʻu ʻia ma kahi papa kuhikuhi ʻokoʻa. Hoʻomaka ka ESP32 ma ke ʻano WiFi AP a hōʻike i kahi ʻaoʻao ma kahi helu IP paʻa.

ʻOiai ua wikiwiki loa nā cores ESP32, e like me ka hōʻike ʻana o nā hoʻokolohua, ʻo ka hana like ʻana o ka lawelawe pūnaewele i kūkulu ʻia a, no ka laʻana, ʻaʻole kūpono loa ke ʻano o ka router. No laila, ʻaʻohe mana ikaika a ʻaʻole loaʻa ka ʻaoʻao ma nā ʻano ʻano ʻē aʻe.
Eia kekahi, ʻaʻole pono ka mana dynamic no nā kumu noiʻi.

Ke ʻano o ka hana ʻana me nā pūʻolo Beacon

He banal nā ʻano a ʻaʻole hoihoi loa. Hana ʻia "no ka mea hiki." No ka nānā.
Aia nā hiʻohiʻona i nā hiʻohiʻona Espressif kūhelu.

ʻO ke ʻano hiʻohiʻona papa inoa AP.
ʻOiaʻiʻo, hiki i kēlā me kēia kelepona ke hana i kēia.
ʻAe, ma kēia ʻano e mālama ʻia ka papa inoa AP.
Mea hoʻopaʻa leka uila.
Hoʻomaka ka ESP32 ma ke ʻano he AP me kahi SSID huna a me kahi MAC random a hoʻomaka i ka hoʻouna ʻana [beacon frame] e like me kahi papa inoa o nā SSID i hana mua ʻia (i hana ʻia me ka lima a i loaʻa ma mua ma ka nānā ʻana i ka papa inoa AP)

ʻO ke ʻano sniffing packet WiFi

Ua hoʻohui nā mea hoʻomohala espressif i ka hiki ke loaʻa i nā polokalamu noi i nā ʻeke WiFi āpau "lele i ka lewa" ma o ka hana callback. ʻOiaʻiʻo, ʻaʻole nā ​​​​mea a pau, no ka mea hiki iā ʻoe ke hoʻonohonoho i ke ʻano no ke kahawai paʻa hoʻokahi.

Kau ʻia nā palena manawa paʻa loa i ka hana ʻana i kahi hana callback. Inā ʻaʻole kēia e hoʻopilikia i ke ʻano o ka hōʻiliʻili ʻikepili maʻalahi, a laila no ke ʻano hoʻopaʻa palapala PCAP ma ke kāleka SD pono wau e tinker, e hoʻonohonoho i ka hoʻopaʻa ʻana ma o kahi queue i ka hoʻomanaʻo a me nā semaphores. E noʻonoʻo ana i ka peculiarity e holo ana ke kaʻina hana i ka callback ma kekahi kumu, a me ke kaʻina hana e kākau ai i ka SD ma kekahi.

I ka wā o ka "ea walaʻau", ua nalowale kekahi mau ʻeke (ʻaʻohe wahi i loko o ka pila a hoʻolei ʻia lākou), akā me kahi "ea" maʻamau o kahi lumi i ke ahiahi (5..7 AP i loko o ka ʻike), hoʻopaʻa ʻia ma PCAP hoʻopau ʻia me ka nalowale ʻole o ka ʻeke.

Eia kekahi, no ka nānā ʻana a me ka hoʻopaʻa ʻana o PCAP, aia kahi ʻano kānana e pili ana i ka papa inoa MAC ma nā poʻomanaʻo packet.

No ka laʻana, hiki iā ʻoe ke nānā i ke ʻano o ke kanaka i loko o kahi kalapu/cafe ma mua o kona komo ʻana a ʻike ʻia paha. He kakaikahi ka poʻe i hoʻopau i ka WiFi a me nā pili aunoa i nā AP i ʻike ʻia. (Ke hoʻopau nei au i kēia manawa..)

ʻO ka nānā ʻana i nā kaʻa i hoʻopaʻa ʻia ma Wireshark he mea hoʻonaʻauao a hoihoi hoʻi no ka hoʻomaopopo ʻana i nā palapala 'āina - hana nā mea āpau.

Ke ʻano no ka hana ʻana me nā pūʻolo deauth

Ma ka maʻamau, pāpā ʻia ka hoʻouna ʻana i kēia mau pūʻolo ma ka waihona libnet80211.a, hiki mai me ka ʻole o nā kumu. Akā, maʻalahi ka hoʻoponopono ʻana ma ka hoʻololi ʻana i ʻelua mau bits. I ka wā mua, ua kānalua wau inā he kūpono ke kau ʻana i ka patch. Akā ma hope o ka hele ʻana a puni nā wahi like ʻole me ka hoʻololi ʻana i ka mode scanning frame deauthentication, noʻonoʻo wau: "He aha ka pō." Eia kekahi, ma esp8266 ʻaʻole i pani ʻia ka lawe ʻana i kēia mau pūʻulu a aia nā hui ma github no esp8266.

Ma nā wahi he nui (ʻaʻole wau e haʻi i kahi) hoʻohana ʻia ke kāohi ʻana i nā AP makemake ʻole ma o kēia ʻano. A ʻaʻole kēia he "hoʻoweliweli" ...

A pūʻiwa hoʻi au no ka hana ʻole o kaʻu hoʻolaha pūnaewele mai kaʻu kelepona i kekahi mau wahi...

ʻO ke ʻano no ka nānā ʻana i ka helu a me ka RSSI o ia mau ʻeke he mea maikaʻi loa ia e hoʻomaopopo "kahi i makemake ʻole ai nā AP hema."

ʻano mea hoʻokele

ʻO kēia hiʻohiʻona paha ka mea hoihoi loa o nā mea a pau e makaʻala.

Kākoʻo ʻo ESP32 i ka hana like ʻana ma ke ʻano STA + SoftAP. No laila, hiki iā ʻoe ke hoʻokō i kahi router NAT maʻamau ma luna.

No ke kākoʻo ʻana i ka waihona pūnaewele, hoʻohana ʻo Espressif i kahi mākia (kokoke i hoʻololi ʻia) o ka waihona lwip.

Akā, ma ka maʻamau, i ka hana maʻamau, ʻaʻole hāʻawi ka waihona esp-lwip i ka hoʻouna ʻana ma waena o nā netif interfaces 'ap' (SoftAP) a me 'st' (STA).

ʻOiaʻiʻo, hiki iā ʻoe ke hana me ka ʻole NAT, akā aia kekahi pilikia me ka hoʻopili ʻana i ʻelua a ʻoi aku paha STA i ka 'ap' interface a me ka synchronizing IP address mai ka 'st' network interface i ka 'ap'. No laila ʻaʻole kūpono nā pilikia a ʻoi aku ka maʻalahi ma o NAT.

Eia kekahi, aia kahi fork esp-lwip mai martin-ger, e hoʻohui i kahi hoʻokō maʻalahi o NAT no IP4.

ʻOiai ua ʻeha koʻu mau lima e hana hou iā ia me ka cosmetically (i koʻu manaʻo, ʻoi aku ka maʻalahi me ka ʻole o ka pāhana, akā ma o LWIPHOOK nā hana i wehewehe ʻia i ka wā hui), akā ua lanakila ka palaualelo a ua hoʻohana ʻia ke koho mai martin-ger e like me ia.

Ma ke ala alalai, ʻike ʻia nā kaʻa IP4 komo a puka i waho.

ʻO ka mea kūikawā, ua unuhi ʻia kēia mai ia mea no ka hōʻike ʻana ma ka pale a me ka hōʻiliʻili ʻana i nā ʻikepili i kahi faila:

  • Ka inoa o ka hāmeʻa i hoʻopili ʻia me SoftAP ESP32 (nā ʻeke DHCP)
  • HKH mai nā noi DNS (UDP port 53) mai kahi mea i hoʻopili ʻia me SoftAP ESP32.

Eia hou, hiki iā ʻoe ke ʻae i ka hoʻopaʻa ʻana i nā kaʻa i kahi faila PCAP.

He mea maikaʻi loa kēia ʻano, no ka laʻana, e hoʻomaopopo, no ka laʻana, ka mea a kāu kelepona e hoʻouna ai i ka pūnaewele a me kahi e hele ai.

Hiki iā ʻoe ke noʻonoʻo i nā ala ʻē aʻe e hoʻohana ai i kēia ʻano, me ka noʻonoʻo ʻana i ka hiki ke hoʻomalu piha i ka softAP ESP32 i ke komo ʻana a me ka puka i waho ma ka pae o ka pūnaewele: Ehernet header (destMAC[6]+srcMAC[6]+type[2]) + uku uku (IP4, IP6, DCHP, etc. type).

Ma ke kumu, hoʻokō maikaʻi ka ESP32 me ka WiFi->WiFi router hana, e hele ana i nā kaʻa maʻamau me ka ʻole o nā lohi kūikawā. Ma ke kumu, ʻaʻole ʻike ʻia nā lohi i ke kelepona i hoʻopili ʻia ma kahi alalai ma kahi ESP32.

ʻO ka mea pōʻino, ʻaʻole hiki i ka Espressif API ke hoʻonohonoho i kahi kānana no MAC i hoʻopili ʻia me SoftAP EPS32. Akā, ua manaʻo ʻia e ʻōlelo "aloha" (esp_wifi_deauth_sta) i nā STA pili i "makemake ʻole".

ʻO ke kānana ʻana e MAC no nā STA pili pono e hana ʻia ma o ke kelepona esp_wifi_deauth_sta()

I ka hopena

ʻOiai ʻaʻole wau i loaʻa i kahi mea hou i loko o ke ʻano o ka hana ʻana me ESP32, malia paha e hoihoi kekahi i ka hopena (code source).

Makemake au e hoʻomaopopo ua kākau ʻia ke code no nā kumu hoʻonaʻauao wale nō. No ka "hacking", a me nā mea ʻē aʻe, ua hana ʻia ʻaʻole maʻalahi.

ʻAʻole wau i hana i kahi papa kaapuni i paʻi ʻia no ka mea he 1.5-2 mau hola e kūʻai aku ai i nā scarves i hoʻopau ʻia me ka uea.

A inā ʻoe e hana, pono ʻoe e hōʻuluʻulu ʻaʻole mai nā papa i mākaukau, akā mai nā ʻāpana pākahi. A laila e ʻoi aku ka liʻiliʻi o nā ana.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka