Kaulinan sareng Wifi dina ESP32

Kaulinan sareng Wifi dina ESP32

Anu masihan kuring ide pikeun ngadamel alat saku pikeun nganalisis jaringan WiFi nyaéta Artikel ieu.

Hatur nuhun ka aranjeunna pikeun ide. Kuring ngan teu boga nanaon pikeun ngalakukeun.

Sadaya padamelan dilakukeun salaku bagian tina hobi pikeun tujuan ngahibur sareng ngalegaan pangaweruh kuring dina widang téknologi jaringan. Lalaunan, 1..4 jam saminggu, ti mimiti taun ieu.
Abdi henteu ngarencanakeun panggunaan praktis. Jelema. Ieu NOT alat hacker urang.

Di momen, sadaya fungsionalitas rencanana jalan. Sadaya sumber, lengkep siap pikeun assembly, dipasang di dieu. Aya ogé parentah assembly, jsb Dina catetan ieu, abdi moal duplikat informasi dipasang dina github. Kuring ngan bakal ngabejaan ka maneh naon kuring anggap perlu ngajelaskeun misah.

Pamadegan kuring ngeunaan "alat universal" sareng alesan pikeun milih ESP32

Abdi henteu ngaku leres. Sarerea boga sorangan. Kuring bakal nyobian menerkeun pilihan hardware.

Diajukeun dina artikel kasus pamakéan kombinasi Linux (mimitina Raspberry Pi) + "periferal" dina bentuk controller (STM32) + CC1110 (8051 inti) jeung rencana pikeun cram sagalana mungkin di dinya (125kHz, NFC, 433mHz, USB, iButton, bluetooth, ?) Teu sigana cocog pikeun kuring. Tapi, proyék ieu Sigana éta bakal tetep pribadi sareng ditutup (flipper-zero github "Organisasi ieu teu aya repositori umum.") Sareng nuju ka hardware anu henteu umum pisan.

Panginten kuring salah, sareng ka hareupna pangarang bakal ngajantenkeun sumber parangkat lunak sayogi pikeun umum. Tapi upami henteu, maka kuring moal mésér sapotong hardware tanpa kode sumber.

Syarat kuring pikeun "alat"

Kotakna kedah leutik (leutik langkung saé).

Ku sabab eta:

  • Taya batré diwangun-di diperlukeun. Kalayan arus> 100 mA nalika damel sareng Wifi, batré anu dipasang bakal ageung atanapi henteu tahan lami. Ku alatan éta, hayu "kotak" jadi Powered by bank kakuatan baku. Atoh, kuring sok gaduh power bank dina saku/mobil.
  • Nyimpen hiji "kotak" Linux Ubuntu jeung parabot di jero, ditulis mangtaun-taun dina sagala basa Kalawan layar leutik sarta set meager tombol kontrol, teu aya rasa. Hasilna tiasa ditingali / diolah dina laptop normal sareng keyboard sareng layar lengkep.
  • Komponén kudu gampang diakses sarta dipikawanoh lega (sadia SDK, loba conto jeung dokuméntasi).

Hasilna, pikeun kuring, pilihan éta atra - ESP32.

Pikeun sadaya pancén anu dinyatakeun dina tulisan anu nyababkeun kuring nyandak tindakan, kamampuan ESP32 cukup cekap. Sanajan anu paling kuring masih hoyong laksanakeun nyaéta:

  • Maén sabudeureun kalawan Bluetooth.
  • Maénkeun sabudeureun kalawan rentang 433mHz kalawan hardware pangbasajanna (ngan modulasi amplitudo, nu cukup keur kaperluan praktis).

Ngapung dina salep dina ESP32

  • ESP32 SDK (IDF) rada kagok.
  • Sababaraha pungsionalitasna (WiFi tumpukan, contona) asalna tanpa kode sumber dina bentuk dirakit perpustakaan statik.
  • Pita 5gHz henteu dirojong sareng aya sababaraha watesan sareng kagok dina damel sareng WiFi.

Tapi harga / ukuran lengkep compensates pikeun shortcomings ieu.

fungsionalitas software utama

Kuring bakal ngajelaskeun sakeudeung fungsionalitas sareng pendapat kuring ngeunaan ...

Ngatur setélan sareng unggah file tina SD

Kabéh kontrol éksternal dipigawé ngaliwatan kaca Wéb basajan, dibuka dina item menu misah. ESP32 dimimitian dina mode WiFi AP tur mintonkeun kaca dina alamat IP tetep.

Sanajan cores ESP32 cukup gancang, sakumaha percobaan geus ditémbongkeun, operasi simultaneous sahiji layanan Web diwangun-di na, contona, modeu router teu pisan cocog. Ku alatan éta, teu aya kontrol dinamis sarta kaca teu sadia dina sakabéh modeu séjén.
Leuwih ti éta, kontrol dinamis henteu diperlukeun pikeun tujuan panalungtikan.

Modeu gawé bareng bungkusan Beacon

Modeu anu banal sareng henteu pikaresepeun pisan. Dijieun "sabab éta mungkin." Pikeun dipariksa.
Aya conto dina conto Espressif resmi.

modeu scanning daptar AP.
Sabenerna, smartphone naon waé tiasa ngalakukeun ieu.
Nya, dina modeu ieu daptar AP bakal disimpen.
Spammer lantera.
ESP32 dimimitian salaku AP sareng SSID disumputkeun sareng MAC acak sareng mimitian ngirim [bingkai beacon] dumasar kana daptar SSID anu tos didamel (dijieun sacara manual atanapi dicandak sateuacanna ku nyeken daptar AP)

modeu sniffing pakét WiFi

pamekar Espressif geus ditambahkeun kamampuhan pikeun software aplikasi pikeun nampa sakabéh pakét WiFi "ngalayang dina hawa" ngaliwatan fungsi callback. Sabenerna henteu sadayana, sabab anjeun ngan ukur tiasa nyetél mode pikeun hiji saluran tetep.

Watesan waktos anu ketat pisan ditumpukeun dina ngolah fungsi callback. Upami ieu henteu ngabalukarkeun masalah pikeun mode kempelan statistik basajan, lajeng pikeun mode rekaman file PCAP dina kartu SD kuring kungsi tinker, ngatur rekaman ngaliwatan antrian dina mémori jeung semaphores. Nyandak kana akun peculiarity yén prosés nelepon callback dijalankeun dina hiji inti, jeung prosés nu nulis ka SD di sejen.

Salila "hawa ribut", sababaraha pakét leungit (teu aya rohangan dina antrian sareng aranjeunna dipiceun), tapi kalayan "hawa" has tina apartemen magrib (5..7 AP dina pisibilitas), ngarékam dina PCAP. geus réngsé tanpa pakét leungitna.

Salaku tambahan, pikeun ngawaskeun sareng ngarékam PCAP, aya mode nyaring dumasar kana daptar MAC dina header pakét.

Contona, anjeun tiasa ngalacak penampilan hiji jalma di klub/kafe saméméh anjeunna malah asup atawa muncul dina tetempoan. Sababaraha urang nganonaktipkeun WiFi sareng sambungan otomatis ka AP anu dikenal. (Abdi mareuman ayeuna..)

Ningali lalu lintas anu dirékam di Wireshark mangrupikeun atikan sareng pikaresepeun pikeun ngartos peta - sadayana tiasa dianggo.

Modeu pikeun gawé bareng bungkusan death

Sacara standar, ngirim pakét ieu dilarang dina perpustakaan libnet80211.a, nu asalna tanpa sumber. Tapi éta gampang pikeun ngalereskeun ku tweaking sababaraha bit. Awalna kuring ragu naha éta patut masangkeun patch. Tapi saatos leumpang ngurilingan tempat anu béda sareng modeu scanning pigura deauthentication dihurungkeun, kuring mikir: "Naon sih." Sumawona, dina esp8266 pangiriman bungkusan ieu henteu ditutup sareng aya rakitan dina github pikeun esp8266.

Dina loba tempat (Kuring moal nyebutkeun dimana) suprési AP teu dihoyongkeun ngaliwatan metoda ieu dipaké. Sareng ieu sanés "bullies" ...

Sareng kuring ogé kaget yén distribusi Internét tina telepon kuring henteu tiasa dianggo di sababaraha tempat...

Modeu pikeun nyukcruk nomer sareng RSSI tina pakét sapertos kitu mangpaat pisan pikeun ngartos "dimana AP kénca henteu resep."

modeu router

Fitur ieu sigana anu paling pikaresepeun pikeun dijelajah.

ESP32 ngarojong operasi simultaneous dina modeu STA + SoftAP. Ku alatan éta, anjeun tiasa nerapkeun router NAT klasik dina éta.

Pikeun ngarojong tumpukan jaringan, Espressif ngagunakeun garpu (ampir unchanged) perpustakaan lwip.

Tapi, sacara standar, dina ngawangun standar, perpustakaan esp-lwip henteu nyayogikeun diteruskeun antara antarmuka netif 'ap' (SoftAP) sareng 'st' (STA).

Tangtu, Anjeun bisa ngalakukeun hal eta tanpa NAT, tapi aya masalah sareng sakaligus nyambungkeun dua atawa leuwih STAs kana panganteur 'ap' tur nyingkronkeun alamat IP tina panganteur jaringan 'st' ka 'ap'. Janten kasusah henteu pantes sareng langkung gampang ngalangkungan NAT.

Sumawona, aya garpu esp-lwip ti martin-ger, anu nambihan palaksanaan saderhana NAT pikeun IP4.

Sanaos panangan kuring gatel pikeun ngadamel deui sacara kosmétik murni (dina pamanggih kuring, éta langkung gampang tanpa garpu proyek, tapi ngalangkungan LWIP.cantol fungsi didefinisikeun salila assembly), tapi hoream prevailed sarta pilihan ti martin-ger dipaké sakumaha anu kasebut.

Dina modeu router, lalulintas IP4 asup jeung kaluar ditempo.

Khususna, ieu diekstrak tina éta pikeun dipidangkeun dina layar sareng ngumpulkeun statistik kana file:

  • Ngaran alat anu nyambung ka SoftAP ESP32 (pakét DHCP)
  • URL ti pamundut DNS (port UDP 53) ti alat disambungkeun ka SoftAP ESP32.

Salaku tambahan, anjeun tiasa ngaktipkeun rékaman lalu lintas kana file PCAP.

Modeu ieu mangpaat pisan, contona, pikeun ngartos, contona, naon anu dikirimkeun telepon anjeun ka jaringan sareng kamana.

Anjeun tiasa mikirkeun cara-cara anu sanés pikeun ngagunakeun modeu ieu, kalayan ngitung kamampuan pikeun ngadalikeun lalu lintas asup sareng kaluar softAP ESP32 dina tingkat antarmuka jaringan: Header Ehernet (destMAC[6]+srcMAC[6]+type[2]) + payload (IP4, IP6, DCHP, jsb tipe).

Sacara prinsip, ESP32 copes lumayan lah jeung WiFi-> fungsi router WiFi, ngaliwatan lalulintas normal tanpa reureuh husus. Sacara subyektif, telat dina telepon anu disambungkeun via router dina ESP32 henteu katingali.

Hanjakal, API Espressif teu boga kamampuhan pikeun nyetel saringan pikeun MAC disambungkeun ka SoftAP EPS32. Gantina, eta diusulkeun ngomong "wilujeng" (esp_wifi_deauth_sta) geus disambungkeun STAs nu "teu dipikahoyong".

Nyaring ku MAC pikeun STA anu disambungkeun kedah dilakukeun ngalangkungan esp_wifi_deauth_sta () sauran

dina kacindekan

Sanajan kuring teu datang nepi ka nanaon anyar dina kerangka gawé bareng ESP32, meureun hasilna (kode sumber) bakal metot batur.

Abdi hoyong dicatet yén kode ieu ditulis ngan ukur pikeun tujuan pendidikan. Pikeun "hacking", jeung sajabana, ieu ngahaja dijieun teu pisan merenah.

Kuring teu nyieun circuit board dicitak sabab butuh 1.5-2 jam solder nu scarves rengse kalayan kawat.

Sareng upami anjeun ngalakukeun, anjeun kedah ngumpul sanés tina papan anu siap, tapi tina komponén individu. Lajeng diménsi bakal malah leuwih leutik.

sumber: www.habr.com

Tambahkeun komentar