Бозӣ бо Wifi дар ESP32

Бозӣ бо Wifi дар ESP32

Он чизе ки ба ман идеяи сохтани асбоби ҷайбиро барои таҳлили шабакаҳои WiFi дод ин мақола.

Ташаккур ба онҳо барои идея. Ман танҳо коре надоштам.

Ҳама корҳо дар доираи як маҳфилӣ бо мақсади фароғат ва васеъ намудани дониши ман дар соҳаи технологияҳои шабакавӣ анҷом дода шуданд. Оҳиста-оҳиста, дар як ҳафта 1..4 соат, аз аввали соли ҷорӣ.
Ман ягон истифодаи амалиро ба нақша нагирифтаам. Онхое. Ин асбоби хакерӣ НЕСТ.

Дар айни замон тамоми функсияҳои ба нақша гирифташуда кор мекунанд. Ҳама манбаъҳо, ки комилан барои васлкунӣ омодаанд, дар ин ҷо нашр шудааст. Инчунин дастурҳои васлкунӣ ва ғайра мавҷуданд. Дар ин ёддошт, ман маълумоти дар github ҷойгиршударо такрор намекунам. Ман ба шумо танҳо он чизеро мегӯям, ки барои алоҳида тавсиф кардан лозим аст.

Фикри ман дар бораи "асбоби универсалӣ" ва сабаби интихоби ESP32

Ман даъво намекунам, ки ҳақиқат ҳастам. Ҳар кас худро дорад. Ман кӯшиш мекунам, ки интихоби худро дар бораи сахтафзор асоснок кунам.

Дар мақола пешниҳод шудааст ҳолати истифодаи маҷмӯи Linux (дар аввал Raspberry Pi) + "таҷҳизоти периферӣ" дар шакли контроллер (STM32) + CC1110 (8051 аслӣ) ва нақшаи пур кардани ҳама чизи имконпазир дар он ҷо (125 кГц, NFC, 433 мГц, USB, iButton, bluetooth, ?) барои ман мувофиқ набуд. Бо вуҷуди ин, ин лоиха Чунин ба назар мерасад, ки он хусусӣ ва пӯшида боқӣ мемонад (flipper-sile github "Ин созмон анбори ҷамъиятӣ надорад.") ва ба сахтафзорҳои на он қадар маъмул рафт.

Шояд ман хато карда бошам ва дар оянда муаллифон манбаъҳои нармафзорро дастраси умум хоҳанд кард. Аммо агар не, пас ман чунин порчаи сахтафзорро бе рамзи сарчашма намехарам.

Талаботи ман ба "асбоб"

Қуттӣ бояд хурд бошад (ҳар қадар хурдтар бошад, ҳамон қадар беҳтар аст).

Аз ин рӯ,

  • Батареяи дарунсохт лозим нест. Ҳангоми кор бо Wifi ҷараён > 100 мА, батареяи дарунсохт ё калон хоҳад буд ё дер давом намекунад. Аз ин рӯ, бигзор "қуттӣ" аз ҷониби як бонки барқии стандартӣ таъмин карда шавад. Ба ҳар ҳол, ман ҳамеша дар ҷайбам/мошинам як бонки барқӣ дорам.
  • "Қуттии" Linux-ро бо асбобҳо дар дохили худ нигоҳ доред, дар тӯли солҳои зиёд ба ҳама забонҳо навишта шудааст Бо экрани хурд ва маҷмӯи ночизи тугмаҳои идоракунӣ, ин маънои онро надорад. Натиҷаҳоро дар ноутбуки муқаррарӣ бо клавиатура ва экрани пурра дидан/кор кардан мумкин аст.
  • Унсурҳо бояд ба осонӣ дастрас ва ба таври васеъ маълум бошанд (SDK дастрас, мисолҳои зиёд ва ҳуҷҷатҳо).

Дар натиҷа, барои ман, интихоб равшан буд - ESP32.

Барои ҳамаи вазифаҳои дар мақола зикршуда, ки маро ба андешидани чораҳо водор карданд, имкониятҳои ESP32 хеле кофӣ мебошанд. Гарчанде ки ман то ҳол мехоҳам аз ҳама бештар кор кунам:

  • Бо Bluetooth бозӣ кунед.
  • Бо диапазони 433 мГс бо соддатарин сахтафзор бозӣ кунед (танҳо модуляцияи амплитуда, ки барои эҳтиёҷоти амалӣ кофӣ аст).

Дар равғани атрафшон дар ESP32 парвоз кунед

  • ESP32 SDK (IDF) то андозае нофаҳмо аст.
  • Баъзе функсияҳо (масалан, стеки WiFi) бе рамзи сарчашма дар шакли китобхонаҳои статикии ҷамъшуда меоянд.
  • Банди 5 ГГц дастгирӣ намешавад ва дар кор бо WiFi баъзе маҳдудиятҳо ва бесарусомониҳо мавҷуданд.

Аммо нарх/андоза ин норасоихоро пурра мебарорад.

Функсияи асосии нармафзор

Ман ба таври мухтасар функсия ва андешаи худро дар бораи...

Идоракунии танзимот ва боркунии файлҳо аз SD

Ҳама назорати беруна тавассути веб-саҳифаи оддӣ, ки дар банди алоҳидаи меню оғоз карда мешавад, анҷом дода мешавад. ESP32 дар ҳолати WiFi AP оғоз мешавад ва саҳифаро дар суроғаи IP собит намоиш медиҳад.

Гарчанде ки ядроҳои ESP32 хеле зуданд, тавре ки таҷрибаҳо нишон доданд, кори ҳамзамон хидмати веби дарунсохт ва, масалан, режими роутер чандон мувофиқ нестанд. Аз ин рӯ, назорати динамикӣ вуҷуд надорад ва саҳифа дар ҳама шеваҳои дигар дастрас нест.
Ғайр аз он, барои мақсадҳои тадқиқотӣ назорати динамикӣ лозим нест.

Усули кор бо бастаҳои Beacon

Модулҳо оддӣ ҳастанд ва чандон ҷолиб нестанд. "Азбаски ин имконпазир аст" сохта шудааст. Барои чек.
Дар мисолҳои расмии Espressif мисолҳо мавҷуданд.

Ҳолати сканкунии рӯйхати AP.
Дар асл, ҳар як смартфон метавонад ин корро кунад.
Хуб, дар ин режим рӯйхати AP захира карда мешавад.
Спамери маяк.
ESP32 ҳамчун AP бо SSID-и пинҳонӣ ва MAC-и тасодуфӣ оғоз мешавад ва ба фиристодани [чаҳорчӯбаи маяк] мувофиқи рӯйхати қаблан сохташудаи SSIDҳо оғоз мекунад (ба таври дастӣ сохта шудааст ё қаблан тавассути сканкунии рӯйхати AP гирифта шудааст)

Ҳолати бӯи бастаи WiFi

Таҳиягарони Espressif қобилияти ба нармафзори барномавӣ барои қабул кардани ҳама бастаҳои WiFi-и "дар ҳаво парвозкунанда" тавассути функсияи бозгашт илова кардаанд. Дар асл, на ҳама, зеро шумо метавонед режимро танҳо барои як канали собит муқаррар кунед.

Барои коркарди функсияи бозгашт маҳдудиятҳои хеле сахти вақт ҷорӣ карда мешаванд. Агар ин барои режими оддии ҷамъоварии омор мушкилот ба вуҷуд наорад, пас барои ҳолати сабти файли PCAP дар корти SD ман маҷбур будам, ки сабтро тавассути навбат дар хотира ва семафорҳо ташкил кунам. Бо дарназардошти хусусияти он, ки раванди занги бозпас дар як ядро ​​​​кор мекунад ва раванде, ки ба SD дар дигараш менависад.

Ҳангоми "ҳавои пурғавғо" баъзе пакетҳо гум мешаванд (дар навбат ҷой нест ва онҳо партофта мешаванд), аммо бо "ҳавои" маъмулии манзил дар шом (5..7 AP дар доираи намоён), сабт дар PCAP бе талафи пакет анҷом дода мешавад.

Илова бар ин, барои мониторинг ва сабти PCAP, режими филтркунӣ дар асоси рӯйхати MAC дар сарлавҳаҳои баста мавҷуд аст.

Масалан, шумо метавонед намуди зоҳирии шахсро дар клуб/қаҳвахона пеш аз ворид шудан ё пайдо шудани ӯ пайгирӣ кунед. Теъдоди ками одамон WiFi ва пайвастҳои автоматиро ба AP-ҳои маълум хомӯш мекунанд. (Ман ҳоло онро хомӯш мекунам ..)

Намоиши трафики сабтшуда дар Wireshark барои фаҳмидани харитаҳо таълимӣ ва ҷолиб аст - ин ҳама кор мекунад.

Ҳолати кор бо бастаҳои марг

Ба таври нобаёнӣ, фиристодани ин бастаҳо дар китобхонаи libnet80211.a, ки бидуни манбаъ меояд, манъ аст. Аммо бо як чанд бит ислоҳ кардан осон аст. Дар аввал ман шубҳа доштам, ки оё он барои интишори патч меарзад. Аммо пас аз сайру гашт дар ҷойҳои гуногун бо режими сканеркунии чаҳорчӯбаи аутентификатсия, ман фикр кардам: "чӣ ҷаҳаннам." Гузашта аз ин, дар esp8266 интиқоли ин бастаҳо баста нашудааст ва дар github барои esp8266 анборҳо мавҷуданд.

Дар бисёр ҷойҳо (ман намегӯям, ки дар куҷо) рафъи НМ номатлуб тавассути ин усул истифода мешавад. Ва инҳо "безор" нестанд...

Ва ман ҳам ҳайрон шудам, ки тақсимоти интернети ман аз телефонам дар баъзе ҷойҳо кор намекунад...

Реҷаи пайгирии рақам ва RSSI-и чунин бастаҳо барои фаҳмидани "дар куҷо ба AP-ҳои чап маъқул нест" хеле муфид аст.

ҳолати роутер

Ин хусусият шояд аз ҳама ҷолибтарин барои омӯхтан бошад.

ESP32 амалиёти ҳамзамон дар ҳолати STA + SoftAP -ро дастгирӣ мекунад. Аз ин рӯ, шумо метавонед роутери классикии NAT-ро дар он татбиқ кунед.

Барои дастгирии стеки шабакавӣ, Espressif форкро (тақрибан бетағйир) китобхонаи lwip истифода мебарад.

Аммо, ба таври нобаёнӣ, дар сохтани стандартӣ, китобхонаи esp-lwip интиқолро байни интерфейсҳои netif 'ap' (SoftAP) ва 'st' (STA) таъмин намекунад.

Албатта, шумо метавонед ин корро бидуни NAT анҷом диҳед, аммо дар як вақт пайваст кардани ду ё зиёда STA ба интерфейси "ap" ва ҳамоҳангсозии суроғаҳои IP аз интерфейси шабакаи "st" ба "ap" мушкилот вуҷуд дорад. Ҳамин тавр, душвориҳо ба он намеарзанд ва тавассути NAT осонтар аст.

Ғайр аз он, як fork esp-lwip аз martin-ger мавҷуд аст, ки татбиқи оддии NAT-ро барои IP4 илова мекунад.

Ҳарчанд дастони ман хориш мекарданд, ки онро сирф косметикӣ аз нав созанд (ба андешаи ман, бе порчаи лоиҳа осонтар буд, аммо тавассути LWIPчангак функсияҳое, ки ҳангоми ҷамъомад муайян карда шудаанд), аммо танбалӣ бартарӣ дошт ва варианти Мартин-гер ҳамон тавре истифода мешавад.

Дар реҷаи роутер трафики даромад ва баромади IP4 дида мешавад.

Аз ҷумла, аз он барои намоиш дар экран ва ҷамъоварии омор дар файл истихроҷ карда мешавад:

  • Номи дастгоҳе, ки ба SoftAP ESP32 (бастаҳои DHCP) пайваст шудааст
  • URL аз дархостҳои DNS (порти UDP 53) аз дастгоҳи ба SoftAP ESP32 пайвастшуда.

Илова бар ин, шумо метавонед сабти трафикро ба файли PCAP фаъол созед.

Ин режим хеле муфид аст, масалан, барои фаҳмидани, масалан, телефони шумо ба шабака чӣ мефиристад ва ба куҷо меравад.

Шумо метавонед роҳҳои дигари истифодаи ин режимро бо дарназардошти қобилияти пурра идора кардани трафики даромад ва содиротии softAP ESP32 дар сатҳи интерфейси шабака фикр кунед: сарлавҳаи Ehernet (destMAC[6]+srcMAC[6]+намуд[2]) + сарборӣ (намуди IP4, IP6, DCHP ва ғайра).

Аслан, ESP32 бо функсияи роутери WiFi->WiFi хеле хуб кор мекунад ва аз трафики муқаррарӣ бидуни таъхирҳои махсус мегузарад. Субъективӣ, таъхирҳо дар телефоне, ки тавассути роутер дар ESP32 пайваст карда шудаанд, назаррас нестанд.

Мутаассифона, Espressif API қобилияти насб кардани филтр барои MAC-и ба SoftAP EPS32 пайвастшударо надорад. Ба ҷои ин, пешниҳод карда мешавад, ки "хайр" (esp_wifi_deauth_sta) ба STA-ҳои аллакай пайвастшуда, ки "матлуб нестанд" гуфта шаванд.

Филтр аз ҷониби MAC барои STA-ҳои пайвастшуда бояд тавассути занги esp_wifi_deauth_sta() анҷом дода мешуд.

Дар охир

Гарчанде ки ман дар доираи кор бо ESP32 ягон чизи наве надидам, шояд натиҷа (рамзи сарчашма) барои касе ҷолиб бошад.

Ман мехоҳам қайд намоям, ки кодекс танҳо бо мақсади таълим навишта шудааст. Барои "хакерӣ" ва ғайра, он дидаву дониста он қадар қулай набуд.

Ман тахтаи чопӣ насозам, зеро барои кафшер кардани рӯймолҳои тайёр бо сим 1.5-2 соат вақт лозим буд.

Ва агар шумо ин корро кунед, шумо бояд онро на аз тахтаҳои тайёр, балки аз ҷузъҳои алоҳида ҷамъ кунед. Он гоҳ андозаҳо боз ҳам хурдтар хоҳанд шуд.

Манбаъ: will.com

Илова Эзоҳ