Играње са Ви-Фи на ЕСП32

Играње са Ви-Фи на ЕСП32

Оно што ми је дало идеју да направим џепни алат за анализу ВиФи мрежа је Овај чланак.

Хвала им на идеји. Једноставно нисам имао шта да радим.

Сав посао је рађен као део хобија у циљу забаве и проширења знања из области мрежних технологија. Полако, 1..4 сата недељно, од почетка ове године.
Нисам планирао никакву практичну употребу. Оне. Ово НИЈЕ алатка хакера.

У овом тренутку све планиране функционалности раде. Сви извори, потпуно спремни за склапање, објављено овде. Ту су и упутства за састављање итд. У овој напомени нећу дуплирати информације објављене на гитхуб-у. Рећи ћу вам само оно што сматрам потребним да опишем посебно.

Моје мишљење о „универзалном алату“ и разлогу за избор ЕСП32

Не тврдим да сам истина. Свако има своје. Покушаћу да оправдам свој избор хардвера.

Предложено у чланку случај употребе комбинације Линука (у почетку Распберри Пи) + „периферије“ у облику контролера (СТМ32) + ЦЦ1110 (8051 језгро) и план да се у њега угура све што је могуће (125кХз, НФЦ, 433мХз, УСБ, иБуттон, блуетоотх, ?) није ми се чинило прикладним. Међутим, Овај пројекат Изгледа да ће остати приватна и затворена (флиппер-зеро гитхуб „Ова организација нема јавна спремишта.“) и ишла ка не баш уобичајеном хардверу.

Можда грешим и у будућности ће аутори изворе софтвера учинити јавно доступним. Али ако не, онда не бих купио такав комад хардвера без изворног кода.

Моји захтеви за "алат"

Кутија треба да буде мала (што је мања, то боље).

Стога:

  • Није потребна уграђена батерија. Са струјом > 100 мА када радите са Вифи, уграђена батерија ће или бити велика или ће трајати дуго. Стога, нека се „кутија“ напаја стандардним повер банком. У сваком случају, увек имам повер банк у џепу/аутомобилу.
  • Држите Линук „кутију“ са алатима унутра, писана дуги низ година на свим језицима Са малим екраном и оскудним скупом контролних дугмади, нема смисла. Резултати се могу видети/обрадити на нормалном лаптопу са потпуном тастатуром и екраном.
  • Компоненте треба да буду лако доступне и широко познате (доступан СДК, много примера и документације).

Као резултат тога, за мене је избор био очигледан - ЕСП32.

За све задатке наведене у чланку који су ме подстакли да предузмем акцију, могућности ЕСП32 су сасвим довољне. Иако највише што још желим да урадим је:

  • Играјте се са Блуетоотх-ом.
  • Поиграјте се са опсегом од 433 мХз са најједноставнијим хардвером (само амплитудна модулација, што је довољно за практичне потребе).

Нанесите маст у ЕСП32

  • ЕСП32 СДК (ИДФ) је помало неспретан.
  • Неке од функционалности (ВиФи стецк, на пример) долазе без изворног кода у облику склопљених статичких библиотека.
  • Опсег од 5гХз није подржан и постоје нека ограничења и неспретности у раду са ВиФи мрежом.

Али цена/величина у потпуности надокнађује ове недостатке.

Главна функционалност софтвера

Укратко ћу описати функционалност и своје мишљење о...

Управљање подешавањима и отпремање датотека са СД-а

Сва спољна контрола се врши преко једноставне веб странице, која се покреће у посебној ставци менија. ЕСП32 се покреће у ВиФи АП режиму и приказује страницу на фиксној ИП адреси.

Иако су језгра ЕСП32 прилично брза, као што су експерименти показали, истовремени рад уграђеног веб сервиса и, на пример, режим рутера нису баш компатибилни. Због тога нема динамичке контроле и страница није доступна у свим другим режимима.
Штавише, динамичка контрола није потребна у сврху истраживања.

Начин рада са Беацон пакетима

Режими су банални и нису баш занимљиви. Направљено „јер је могуће“. За проверу.
Постоје примери у званичним примерима Еспрессиф-а.

Режим скенирања АП листе.
У ствари, сваки паметни телефон то може.
Па, у овом режиму ће бити сачувана АП листа.
Беацон спамер.
ЕСП32 почиње као АП са скривеним ССИД-ом и насумичним МАЦ-ом и почиње да шаље [беацон фраме] у складу са унапред креираном листом ССИД-а (направљеном ручно или добијеном раније скенирањем АП листе)

Режим њушкања ВиФи пакета

Програмери Еспрессиф-а су додали могућност апликативног софтвера да прима све ВиФи пакете који „лете у ваздуху” преко функције повратног позива. Заправо не све, пошто можете подесити режим само за један фиксни канал.

За обраду функције повратног позива намећу се веома строга временска ограничења. Ако ово не ствара проблеме за једноставан режим прикупљања статистике, онда сам за режим снимања ПЦАП датотека на СД картици морао да петљам, организујући снимање кроз ред у меморији и семафорима. Узимајући у обзир посебност да се процес који позива повратни позив ради на једном језгру, а процес који уписује у СД на другом.

Током „бучног ваздуха” неки пакети се губе (нема места у реду и одбацују се), али са типичним „ваздухом” стана увече (5..7 АП у оквиру видљивости), снимање у ПЦАП се завршава без губитка пакета.

Додатно, за ПЦАП праћење и снимање, постоји режим филтрирања заснован на МАЦ листи у заглављима пакета.

На пример, можете да пратите изглед особе у клубу/кафеу пре него што уопште уђе или се појави на видику. Мало људи онемогућава ВиФи и аутоматске везе са познатим АП-овима. (Сада га искључујем..)

Гледање снимљеног саобраћаја у Виресхарку је едукативно и занимљиво за разумевање мапа - све функционише.

Режим за рад са деаутх пакетима

Подразумевано, слање ових пакета је забрањено у библиотеци либнет80211.а, која долази без извора. Али то је лако поправити подешавањем неколико битова. У почетку сам сумњао да ли је вредно објављивања закрпе. Али након што сам ходао по различитим местима са укљученим режимом скенирања оквира за поништавање идентитета, помислио сам: „шта дођавола“. Штавише, у есп8266 испорука ових пакета није затворена и постоје склопови на гитхуб-у за есп8266.

На многим местима (нећу рећи где) се користи сузбијање нежељених АП-ова овим методом. И то нису "насилници"...

И био сам изненађен што моја интернет дистрибуција са мог телефона на неким местима није радила...

Режим за праћење броја и РССИ таквих пакета је веома користан да би се разумело „где се леви АП не свиђа“.

режим рутера

Ова карактеристика је вероватно најзанимљивија од свих за истраживање.

ЕСП32 подржава истовремени рад у СТА + СофтАП режиму. Стога на њему можете имплементирати класични НАТ рутер.

Да би подржао мрежни стек, Еспрессиф користи виљушку (практично непромењену) лвип библиотеке.

Али, подразумевано, у стандардној верзији, есп-лвип библиотека не обезбеђује прослеђивање између нетиф интерфејса 'ап' (СофтАП) и 'ст' (СТА).

Наравно, можете то учинити и без НАТ-а, али постоји проблем са симултаним повезивањем два или више СТА на 'ап' интерфејс и синхронизовањем ИП адреса са 'ст' мрежног интерфејса на 'ап'. Дакле, тешкоће нису вредне тога и лакше је кроз НАТ.

Штавише, постоји форк есп-лвип од мартин-гер, који додаје једноставну имплементацију НАТ-а за ИП4.

Иако су ме руке сврбеле да га преправим чисто козметички (по мом мишљењу, било је лакше без виљушке пројекта, али преко ЛВИП-аКУКА функције дефинисане током склапања), али је превладала лењост и опција из мартин-гера се користи као што јесте.

У режиму рутера гледа се долазни и одлазни ИП4 саобраћај.

Конкретно, из њега се издваја следеће за приказ на екрану и прикупљање статистике у датотеку:

  • Назив уређаја који се повезао на СофтАП ЕСП32 (ДХЦП пакети)
  • УРЛ из ДНС захтева (УДП порт 53) са уређаја повезаног на СофтАП ЕСП32.

Поред тога, можете омогућити снимање саобраћаја у ПЦАП датотеку.

Овај режим је веома користан, на пример, за разумевање, на пример, шта ваш телефон шаље мрежи и куда иде.

Можете смислити друге начине коришћења овог режима, узимајући у обзир могућност потпуне контроле софтАП ЕСП32 долазног и одлазног саобраћаја на нивоу мрежног интерфејса: Ехернет заглавље (дестМАЦ[6]+срцМАЦ[6]+типе[2]) + носивост (ИП4, ИП6, ДЦХП итд. тип).

У принципу, ЕСП32 се прилично добро носи са функцијом ВиФи->ВиФи рутера, пролазећи кроз нормалан саобраћај без посебних застоја. Субјективно, кашњења у телефону повезаном преко рутера на ЕСП32 нису приметна.

Нажалост, Еспрессиф АПИ нема могућност подешавања филтера за МАЦ повезан са СофтАП ЕПС32. Уместо тога, предлаже се да се каже „збогом“ (есп_вифи_деаутх_ста) већ повезаним СТА-овима који „не желе“.

Филтрирање према МАЦ-у за повезане СТА-ове је морало да се обави преко есп_вифи_деаутх_ста() позива

У закључку

Иако нисам смислио ништа ново у оквиру рада са ЕСП32, можда ће резултат (изворни код) некоме бити занимљив.

Желим да напоменем да је код писан искључиво у образовне сврхе. За „хаковање“ итд., намерно је направљено да није баш згодно.

Нисам направио штампану плочу јер је требало 1.5-2 сата да се готови шалови залеми жицом.

А ако то урадите, потребно је да га саставите не од готових плоча, већ од појединачних компоненти. Тада ће димензије бити још мање.

Извор: ввв.хабр.цом

Додај коментар