Содержание статьи
Глядя на маленькую конструкцию с дисплеем, на котором виртуальный питомец корчит забавные рожицы, невозможно отделаться от ощущения, что 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, причем стоят они относительно недорого.
В основе устройства лежит одноплатный компьютер Raspberry Pi Zero WН — причем выбирать следует именно модификацию WН, поскольку такое устройство оборудовано беспроводным модулем Wi-Fi и Bluetooth и на нем уже распаян интерфейсный разъем, к которому подключается дисплей. Я покупал свой одноплатник у продавца по имени adrol, но магазинов, торгующих подобными девайсами, на «Али» множество.
info
Если ты читаешь эту статью в далеком и прекрасном будущем, ссылки на конкретные страницы с товарами на сайте AliExpress могут уже не работать. Не отчаивайся: нужные запчасти без труда находятся поиском.
В качестве дисплея лучше всего подойдет модуль для 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»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»