На­вер­няка читате­ли «Хакера» хотя бы однажды задава­лись воп­росом: мож­но ли самос­тоятель­но соб­рать недоро­гое устрой­ство, которое будет что‑нибудь взла­мывать по нажатию одной кноп­ки? Или вов­се без кноп­ки, само, авто­мати­чес­ки? Мож­но! Встре­чай­те Pwnagotchi — самодель­ный хакер­ский девайс для взло­ма бес­про­вод­ных сетей, работа­ющий на осно­ве искусс­твен­ного интеллек­та. Да еще и с циф­ровым питом­цем внут­ри!

Гля­дя на малень­кую конс­трук­цию с дис­пле­ем, на котором вир­туаль­ный питомец кор­чит забав­ные рожицы, невоз­можно отде­лать­ся от ощу­щения, что Pwnagotchi чем‑то похож на Flipper Zero. Опре­делен­ное родс­тво этих про­ектов дей­стви­тель­но прос­лежива­ется: в ин­тервью «Хакеру» соз­датель «Флип­пера» Павел Жов­нер упо­минал о том, что, при­думы­вая свое устрой­ство, он вдох­новлял­ся Pwnagotchi. «Тамаго­чи для хакеров» (наз­вание Pwnagotchi пред­став­ляет собой гиб­рид жар­гонно­го сло­веч­ка Pwn и наз­вания популяр­ной игрушки от ком­пании Bandai) дей­стви­тель­но появил­ся на свет рань­ше: пер­вая вер­сия это­го девай­са была анон­сирова­на в октябре 2019 года, а Flipper Zero зашел на Kiсkstarter в июле 2020-го.

На­конец, эти устрой­ства дей­стви­тель­но раз­ные. «Флип­пер» — это «швей­цар­ский нож» хакера или пен­тесте­ра, бла­года­ря допол­нитель­ным модулям и при­ложе­ниям он поз­воля­ет исполь­зовать широкий набор раз­нооб­разных инс­тру­мен­тов. С одним важ­ным огра­ниче­нием: в нем есть поч­ти всё, кро­ме средств для взло­ма Wi-Fi. Что­бы получить такую воз­можность, поль­зователь «Флип­пера» дол­жен при­обрести отдель­ный модуль, в то вре­мя как Pwnagotchi, наобо­рот, соз­дан для решения одной‑единс­твен­ной прак­тичес­кой задачи — взло­ма Wi-Fi. Есть и еще одно отли­чие: для вза­имо­дей­ствия с Flipper Zero исполь­зует­ся целых две кноп­ки, тог­да как Pwnagotchi вооб­ще лишен каких‑либо орга­нов управле­ния. Дос­таточ­но вклю­чить питание… и он прос­то работа­ет. Кста­ти, а как имен­но?

 

Как работает Pwnagotchi?

Ког­да твой телефон, ноут­бук или дру­гой девайс уста­нав­лива­ет бес­про­вод­ное соеди­нение с точ­кой дос­тупа по про­токо­лу WPA2, они обме­нива­ются четырь­мя спе­циаль­ными пакета­ми дан­ных, поз­воля­ющи­ми наладить меж­ду устрой­ства­ми безопас­ный канал свя­зи. Этот про­цесс называ­ется четырех­сту­пен­чатым рукопо­жати­ем. Во вре­мя рукопо­жатия по бес­про­вод­ной сети переда­ются сооб­щения EAPOL (extensible authentication protocol over LAN). Во вто­ром пакете (EAPOL M2) кли­ент сооб­щает точ­ке дос­тупа, что ему известен ключ PSK. В ответном сооб­щении (EAPOL M3) точ­ка дос­тупа переда­ет информа­цию о том, что ключ валиден. Если под­твержде­ния не при­ходит, устрой­ство, веро­ятнее все­го, попыта­лось выпол­нить под­клю­чение с неп­равиль­ным паролем.

Pwnagotchi перех­ватыва­ет и сох­раня­ет дан­ные из под­твержден­ных пакетов M2. Впос­ледс­твии поль­зователь устрой­ства может вос­ста­новить пароль бес­про­вод­ной сети из хеша методом перебо­ра по сло­варю. Для это­го сущес­тву­ют спе­циаль­ные прог­раммы, нап­ример hashcat, или онлай­новые сер­висы вро­де Onlinehashcrack.

Для сбо­ра хешей Pwnagotchi исполь­зует ути­литу Bettercap, хорошо зна­комую всем, кто имел дело с Kali Linux. Это спе­циаль­ный инс­тру­мент для перех­вата тра­фика в бес­про­вод­ных сетях и про­веде­ния MITM-атак. Pwnagotchi ска­ниру­ет эфир и в момент под­клю­чения кли­ент­ских устрой­ств к точ­ке дос­тупа зах­ватыва­ет хен­дшейк, а затем записы­вает получен­ные дан­ные на SD-кар­ту в виде фай­лов PCAP для пос­леду­юще­го ана­лиза. «Рукопо­жатия» про­исхо­дят регуляр­но, нап­ример ког­да в зоне дей­ствия сети появ­ляют­ся вла­дель­цы под­клю­чав­шихся рань­ше к этой точ­ке дос­тупа мобиль­ных телефо­нов или при вклю­чении бес­про­вод­ных прин­теров. Пос­коль­ку такая ата­ка пол­ностью пас­сивна, выявить ее очень слож­но — Pwnagotchi дей­ству­ет бес­шумно и незамет­но.

Од­нако устрой­ство может «фор­сировать» сбор хен­дшей­ков, задей­ство­вав более агрессив­ные методы, чем прос­тое ска­ниро­вание эфи­ра. Пер­вый — деаутен­тифика­ция: Pwnagotchi отправ­ляет от име­ни кли­ента и точ­ки дос­тупа всем под­клю­чен­ным к сети устрой­ствам спе­циаль­ные пакеты, раз­рыва­ющие соеди­нение. Потеряв­шие связь кли­енты возоб­новля­ют прер­ванное под­клю­чение, а Pwnagotchi перех­ватыва­ет переда­ваемые ими хеши паролей.

Вто­рой метод — это отправ­ка точ­ке дос­тупа спе­циаль­ных пакетов EAPOL с целью спро­воци­ровать утеч­ку PMKID. В этом слу­чае перех­ват хен­дшей­ка и вов­се не тре­бует­ся: PMKID переда­ется в пер­вом пакете четырех­сту­пен­чатого рукопо­жатия (М1) еще до эта­па аутен­тифика­ции с исполь­зовани­ем пароля. Эта фун­кция исполь­зует­ся роуте­рами в некото­рых кор­поратив­ных сетях для перек­лючения меж­ду точ­ками дос­тупа с иден­тичны­ми име­нами, но далеко не все устрой­ства под­верже­ны такой уяз­вимос­ти.

В сво­ей работе Pwnagotchi исполь­зует искусс­твен­ный интеллект, а если говорить точ­нее, AI-модель под наз­вани­ем Actor Advantage Critic (A2C). В рам­ках модели A2C алго­ритм оце­нива­ет текущее сос­тояние устрой­ства и выда­ет рекомен­дации для его даль­нейше­го поведе­ния с целью получить наилуч­ший резуль­тат, то есть соз­дает логичес­кие цепоч­ки «сос­тояние — дей­ствие — воз­награж­дение». Таким обра­зом, Pwnagotchi «учит­ся» взла­мывать бес­про­вод­ные сети, что называ­ется, «на ходу»: чем боль­ше успешных попыток перех­вата хешей совер­шит девайс, тем быс­трее он ста­нет дей­ство­вать в будущем, выбирая в каж­дом кон­крет­ном слу­чае наибо­лее выгод­ную так­тику.

Что ж, как работа­ет Pwnagotchi, мы в общих чер­тах разоб­рались, теперь давай пос­мотрим, как эта игрушка устро­ена.

 

Устройство Pwnagotchi

Конс­трук­ция Pwnagotchi очень прос­та: все ком­понен­ты мож­но купить на AliExpress, при­чем сто­ят они отно­ситель­но недоро­го.

Конструктивные элементы Pwnagotchi
Конс­трук­тивные эле­мен­ты Pwnagotchi

В осно­ве устрой­ства лежит одноплат­ный компь­ютер Raspberry Pi Zero WН — при­чем выбирать сле­дует имен­но модифи­кацию WН, пос­коль­ку такое устрой­ство обо­рудо­вано бес­про­вод­ным модулем Wi-Fi и Bluetooth и на нем уже рас­паян интерфей­сный разъ­ем, к которо­му под­клю­чает­ся дис­плей. Я покупал свой од­ноплат­ник у про­дав­ца по име­ни adrol, но магази­нов, тор­гующих подоб­ными девай­сами, на «Али» мно­жес­тво.

info

Ес­ли ты чита­ешь эту статью в далеком и прек­расном будущем, ссыл­ки на кон­крет­ные стра­ницы с товара­ми на сай­те AliExpress могут уже не работать. Не отча­ивай­ся: нуж­ные зап­части без тру­да находят­ся поис­ком.

Raspberry Pi Zero WН
Raspberry Pi Zero WН

В качес­тве дис­плея луч­ше все­го подой­дет модуль для RPi0 на элек­трон­ных чер­нилах. Если верить офи­циаль­ной стра­нице про­екта, Pwnagotchi под­держи­вает «из короб­ки» экра­ны Waveshare V2, но сегод­ня эта модель (как и V3) уже счи­тает­ся уста­рев­шей, и ее про­изводс­тво прек­ращено, поэто­му най­ти в про­даже такой экран не так‑то прос­то. Я купил дис­плей Waveshare диаго­налью 2,13″. Эта модель име­ет вер­сию V4, поэто­му с ее нас­трой­кой у меня воз­никли некото­рые проб­лемы — впро­чем, их уда­лось успешно пре­одо­леть.

Дисплейный модуль
Дис­плей­ный модуль

Что­бы Pwnagotchi работал авто­ном­но, мож­но исполь­зовать любой ком­пак­тный повер­банк со шну­ром Micro-USB, но луч­ше купить спе­циаль­ный акку­муля­тор­ный мо­дуль питания для Raspberry Pi Zero, нап­ример той же ком­пании Waveshare. Он под­клю­чает­ся к одноплат­ному компь­юте­ру сни­зу с помощью кон­тактов‑пинов, бла­года­ря чему соб­ранное изде­лие выг­лядит опрятно, без тор­чащих сбо­ку про­водов. Питание пода­ется на одноплат­ник с помощью перек­лючате­ля, а акку­муля­тор заряжа­ется через разъ­ем Micro-USB, смон­тирован­ный на модуле питания.

Модуль питания. Транспортная компания уронила на него бегемота, поэтому разъемы слегка погнуты
Мо­дуль питания. Тран­спортная ком­пания уро­нила на него бегемо­та, поэто­му разъ­емы слег­ка пог­нуты

На­конец, тебе понадо­бит­ся кар­та памяти фор­мата MicroSD емкостью не менее 32 Гбайт. В прин­ципе, подой­дет любая сто­имостью око­ло дол­лара.

 

Сборка и настройка

Ду­маю, сбор­ку Pwnagotchi оси­лит даже сред­неста­тис­тичес­кий посети­тель стар­шей груп­пы дет­ско­го сада. Под­клю­чаем акку­муля­тор­ную батарею к соот­ветс­тву­юще­му разъ­ему на пла­те модуля питания, уста­нав­лива­ем в отвер­стия по кра­ям пла­ты резь­бовые стой­ки и прик­ручива­ем свер­ху Raspberry Pi Zero WН — весь кре­пеж вхо­дит в ком­плект пос­тавки. Важ­но сле­дить, что­бы пины пла­ты с акку­муля­тором точ­но сов­пали с кон­такта­ми на ниж­ней сто­роне одноплат­ника. Теперь плот­но встав­ляем дис­плей­ный модуль свер­ху в интерфей­сный разъ­ем Raspberry Pi. Все, сбор­ка завер­шена, мож­но пить пи­во сму­зи. Кое‑кто рас­печаты­вает на 3D-прин­тере изящ­ные кор­пуса для сво­его устрой­ства (готовые STL-модели мож­но най­ти в интерне­те), но мы обой­дем­ся без подоб­ных изли­шеств.

Собранное устройство выглядит примерно так
Соб­ранное устрой­ство выг­лядит при­мер­но так

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    5 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии