Содержание статьи
Два года назад мы уже писали про Pwnagotchi — прикольный хакерский девайс, который можно собрать, что называется, на коленке из Raspberry Pi Zero и веток дешевого дисплея на электронных чернилах. Панагочи хорош буквально всем, кроме разве что своих скудных возможностей, которые ограничиваются перехватом хендшейков в сетях Wi-Fi. И вот в арсенале злобных хакеров пентестеров появился еще один мощный инструмент под названием Bjorn. Так зовут забавного викинга, который живет в прошивке устройства, использует аппаратную платформу панагочи, но обладает при этом другим арсеналом функций: на его борту имеется автономный сканер сетей и уязвимостей (за счет использования Nmap), модули для подбора учетных данных к SSH, FTP, SMB, RDP, Telnet и базам данных по словарям, а также инструменты для аккуратной эксфильтрации обнаруженной информации в случае успешного подбора.
Вся прелесть девайса — в автоматизации тестирования: нам не нужно открывать ноут, вводить какие‑либо команды, все происходит само, нужно только подключить устройство к атакуемому Wi-Fi. Ценная информация эксфильтруется только в том случае, если сработал перебор паролей.

Кое‑кто называет Bjorn специфической прошивкой для панагочи, но это не в полной мере соответствует действительности. Кажется, что в базовой конфигурации у Bjorn и Pwnagotchi действительно много общего, однако функционально эти два проекта разные.
Например, сам по себе Bjorn не умеет перехватывать хеши Wi-Fi-паролей, но он может автоматически исследовать Wi-Fi-сеть, к которой мы уже знаем пароль, что делает его хорошим дополнением к Pwnagotchi. Можно сказать, что Bjorn — это такая автономная система для автоматического исследования сетей, которая подойдет тем, кто любит проверять безопасность в новых местах, не заморачиваясь каждый раз с запуском одних и тех же скриптов. Залил прошивку, один раз прописал параметры доступа к новой точке Wi-Fi, а дальше просто смотри, что интересного мультяшный викинг сумел для тебя найти.
Однако прежде чем мы перейдем к изучению особенностей этого проекта, давай немного освежим в памяти матчасть.
Изучаем матчасть
Как и в случае с Pwnagotchi, в основе Bjorn лежит одноплатный компьютер семейства Raspberry Pi. Официально автор ориентирует сборку на «нулевые» модели: Raspberry Pi Zero W в 32-битной конфигурации, но, как показывают отзывы из юзерской тусовки, Zero 2 W в 64-битном варианте тоже работает (правда, с оговорками по совместимости дисплеев и прошивок).
Визуальная составляющая Bjorn — крошечный черно‑белый e-paper-экран диагональю 2,13 дюйма. Проект проверен на модулях Waveshare (в документации и обсуждениях упоминаются версии V2/V4), и именно под такие дисплеи собирается фирменная прошивка и UI-логика. Для описанного в статье панагочи в свое время был куплен дисплей Waveshare V4, поэтому он вполне пригоден и для Bjorn, но, если ты хочешь поэкспериментировать с другими моделями, помни, что разные ревизии панелей могут потребовать своей прошивки или мелких правок в конфигурации (config/ для выбора правильного epd_type) — поэтому, прежде чем покупать первый попавшийся экран, полезно пролистать вики и сабреддит проекта.

Питание у викинга может быть устроено по‑разному: от компактного пауэрбанка до аккуратного модульного аккумулятора, который крепится прямо под платой Raspberry Pi и питает девайс без торчащих в разные стороны проводов. Для полноценной работы требуется карта памяти MicroSD не менее 32 Гбайт, желательно Class 10, — туда записывается образ с системой и всеми компонентами, которые и превращают Bjorn в уникальный инструмент пентестера.

Сборка девайса полностью аналогична сборке панагочи — этот процесс мы уже подробно описывали в предыдущей статье, поэтому лишний раз повторяться не будем. Плата монтируется на стойки, дисплей подключается через соответствующий разъем, питание закрепляется снизу. Кто‑то печатает корпус на 3D-принтере, но и в «голом» виде устройство выглядит вполне аккуратно. Однако сам по себе одноплатник с экраном — это всего лишь одноплатник с экраном, в продвинутый инструмент хакера его превращает софт.
Устанавливаем софт
Чтобы твой одноплатный викинг проснулся и ринулся в бой, нужно немного терпения, доступ к интернету и пара чашек кофе (или ячменного пива, если следовать средневеково‑скандинавскому духу проекта). Для начала нам понадобится свежая Raspberry Pi OS (Bookworm) — именно «лайтовая» версия без графического интерфейса. Автор проекта настоятельно рекомендует 32-битную сборку для Raspberry Pi Zero W, хотя пользователи сообщают, что на Zero 2 W (64-bit) все работает, пусть и с нюансами. Главное — ядро 6.6, Debian 12 и правильное имя хоста. При установке системы с помощью Raspberry Pi Imager желательно указать в настройках Set имя bjorn, но если ты забыл это сделать, то его можно поменять после прошивки карты запуском следующей команды на самой Raspberry Pi:
sudo hostnamectl set-hostname bjorn
Также в ходе прошивки имеет смысл указать в Raspberry Pi Imager SSID и пароль от своего Wi-Fi, иначе как малинка узнает, куда подключаться, чтобы потом можно было зайти в ее настройки?
Затем нужно создать пользователя с таким же именем. Bjorn не любит, когда его зовут иначе, — часть скриптов ссылается на этот логин.
Дальше — самое простое и самое долгое: автоматическая установка. В репозитории лежит готовый скрипт, который делает всю грязную работу — подтягивает зависимости, ставит пакеты, собирает нужные модули и разворачивает веб‑интерфейс:
wget https://raw.githubusercontent.com/infinition/Bjorn/refs/heads/main/install_bjorn.sh
sudo chmod +x install_bjorn.sh && sudo ./install_bjorn.sh
После запуска установщик предложит выбрать режим: пункт 1 — полностью автоматический. Можно, конечно, выбрать ручной и все собрать по частям, но, если ты не мазохист и не пишешь диссертацию по Ansible, автоматический вариант — твой лучший друг.
Установка занимает ощутимое время: Raspberry Pi Zero не чемпион по скорости, а Bjorn тянет за собой внушительный хвост из утилит, библиотек и Python-зависимостей. На экране в это время будет мелькать поток команд, из которого трудно понять, что именно происходит, но главное — не трогать устройство и не выдергивать питание. После завершения система попросит перезагрузиться.
Когда Bjorn проснется после первого ребута, он уже будет полностью готов к работе. Если устройство подключено по Wi-Fi, его IP можно найти стандартным сканером сети (Nmap, Angry IP Scanner, Fing — на твой вкус) или посмотреть в списке клиентов на роутере. А если сканировать сеть лень — автор предусмотрительно выложил отдельный проект под названием Bjorn Detector & SSH Launcher, который сам находит нужный IP и открывает сессию.
А можно просто написать в консоли
ssh bjorn@bjorn
и ввести пароль. Еще можно выполнить команду ping и узнать нужный IP, но это сработает, если ты не продолбал пункт с установкой hostname в Raspberry Pi Imager.
Дальше все просто: подключаешься к устройству по SSH, вводишь пароль, и перед тобой — рабочая консоль Bjorn. Сканер сети, к которой подключен Bjorn по Wi-Fi, запускается автоматически при включении устройства. Можно посмотреть, как на e-Paper-экране начинает меняться картинка: количество целей (targetnbr), портов (portnbr), уязвимостей (vulnnbr), появляются значки подключения и текущий статус Bjorn (например, NetworkScanner, SSHBruteforce, IDLE) и, конечно, сам мультяшный викинг.

Веб‑интерфейс тоже доступен — достаточно ввести IP-адрес устройства в браузере и порт 8000. А можно использовать и такой адрес:
http://bjorn:8000/

Если на каком‑то этапе что‑то пошло не так (а Raspberry Pi любит сюрпризы), документация предлагает подробный раздел Troubleshooting. Там описаны типичные ошибки — от несовпадения архитектуры ядра до неправильно подключенного дисплея.
Интерфейсы
Экран с диагональю 2,13 дюйма физически не сможет вместить значительный объем информации, поэтому здесь отображается только самое необходимое, а для остального есть веб‑интерфейс. Среди необходимого — забавная рожица самого викинга Bjorn, которая меняется в зависимости от того, чем устройство занято в текущий момент, и короткие текстовые статусы.
Сверху выводится краткая телеметрия:
- количество видимых хостов в сети;
- общее количество открытых портов на этих хостах;
- количество найденных уязвимостей (CVE);
- количество учетных данных, которые удалось подобрать;
- количество «зомбированных» хостов (эта функция еще находится в разработке на момент написания статьи);
- число украденных файлов.

Кроме того, проект использует геймификацию — на экран выводятся игровые достижения и прогресс, что делает работу с устройством более увлекательной. Иными словами, дисплей показывает «пульс» устройства, дает быстрый ответ на три вопроса: что сейчас делает викинг, что он недавно нашел и в каком он настроении. Все, что показывает дисплей, одновременно дублируется в веб‑интерфейсе и логируется на SD-карту.
Веб‑интерфейс управляется встроенным веб‑сервером (в проекте он реализован в виде скрипта webapp.), который отдает HTML-страницы, изображение текущего состояния экрана и API-эндпоинты для управления данными. В практическом плане это значит, что ты можешь открыть в браузере страницу по IP-адресу девайса и получить тот же набор информации, что и на дисплее, но с удобной навигацией, логами и доступом к файлам. Сервер в репозитории описан как многопоточный, обрабатывающий GET/POST-запросы и логирующий события для отладки.

SSH-доступ остается базовым способом взаимодействия с Bjorn для тех, кто предпочитает командную строку: по SSH можно выполнять команды, править конфиги и просматривать содержимое директории data/, где Bjorn хранит все артефакты из своих рейдов — дампы, отчеты. Чтобы не лазить в сеть вручную, автор проекта разработал вспомогательный инструмент — Bjorn Detector, который сканирует локалку, находит IP девайса и отображает кнопку для быстрого SSH-доступа. Это удобно для «полевой» работы, например когда требуется быстро получить доступ к Bjorn с ноутбука или планшета.
Наконец, интерфейс проектировали с мыслью о расширяемости. Веб‑морда и скрипты легко поддаются модификации: можно добавить плагины, дополнительные страницы или визуализации, а сообщество активно делится готовыми фикcами и темплейтами.
Что умеет викинг?
Основное отличие Bjorn от Pwnagotchi состоит в том, что последний фокусируется именно на захвате рукопожатий (handshakes) и позволяет собирать хендшейки для последующего взлома паролей Wi-Fi. Bjorn же работает иначе: он подключается к сети с уже известным SSID и паролем, а затем занимается сканированием активных хостов, портов и сервисов в ней, а также пытается проводить брутфорс этих самых сервисов.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
