Содержание статьи
Два года назад мы уже писали про 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 и паролем, а затем занимается сканированием активных хостов, портов и сервисов в ней, а также пытается проводить брутфорс этих самых сервисов.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»
