Потрошим шпионскую «малину». Как я нашел неизвестную Raspberry Pi в серверной и установил владельца

Потрошим шпионскую «малину». Как я нашел неизвестную Raspberry Pi в серверной и установил владельца

Форсайт

Недавно мы с коллегами случайно нашли в серверной неопознанный одноплатник Raspberry Pi — проанализировали его (не без помощи сообщества с Reddit) и даже сумели вычислить владельца вредоносной «малины». И сейчас я расскажу, как нам это удалось.

Это перевод статьи Кристиана Хашека, впервые опубликованной в его блоге. Перевела Алёна Георгиева. Все иллюстрации в статье принадлежат автору.

На прошлой неделе мой коллега прислал мне вот такое сообщение с фото.

Сообщение от моего коллеги

Я попросил его отключить «малину», поместить в безопасное место, отфотографировать все части одноплатника и снять образ с SD-карты (поскольку сам я в основном работаю удаленно). Я часто имел дело с Raspberry Pi и был уверен, что смогу выяснить, чем занимается эта машинка.

В тот момент никто не думал, что «малина» окажется вредоносной, — скорее полагали, что кто-то из сотрудников фигней мается.

 

Части одноплатника

Наша «малина» состояла из трех частей:

  • Raspberry Pi (модель B) первого поколения;
  • таинственный электронный ключ;
  • карта SD на 16 гигов (быстрая).
Электронный ключ и SD-карта

 


Первое, что нужно сделать: опросить всех, кто имеет доступ к серверной

Число людей, которые имеют доступ к этому шкафу, очень невелико — ключ от серверной есть только у четырех человек:

  • руководитель;
  • завхоз;
  • мой коллега;
  • я.

Никто из нас ничего не знал о «малине», так что я спросил других коллег из IT — и озадачил их не меньше. Разумеется, я слышал, что некоторые люди за деньги размещают подобные штуки там, где им не место, — поэтому мне было очень интересно, чем же на самом деле занимается эта конкретная.


Что ж это за ключ?

В поисках разгадки я обратился к сообществу Reddit — и оно меня не подвело. В ключе уверенно опознали микропроцессор nRF52832-MDK — почти такой же мощный, как сам Raspberry Pi.

Это серьезное считывающее устройство для Bluetooth, Wi-Fi и RFID.

Микропроцессор nRF52832-MDK в виде USB-ключа

Он, безо всяких сомнений, должен был дать старенькому Raspberry Pi возможность подключаться по Wi-Fi и Bluetooth. Отлично, подумал я, теперь у этой штуковины еще и вайфай есть…

 


Препарируем образ SD-карты

На карте оказалось несколько разделов. Файловой системой большинства из них была ext4 (Linux), а у одного (загрузочного) раздела — FAT16.

Образ карты в GParted

Отлично, самое время их вскрыть.

Моя дебиановская песочница принесла первую серьезную подсказку: я обнаружил установленный Resin.

«Резиновые» разделы на SD-карте

 

Что за Resin?

Resin (недавно переименованный в Balena) — это платный веб-сервис, где можно генерировать образы для устройств IOT, развертывать их, получать и передавать обновления и данные.

А еще Resin устанавливает на девайс VPN — так что можно безопасно передавать собранные данные. Очевидно, устройство планировали забрать — ведь если использовать платный сервис, это оставляет следы.

 

Приглядимся к разделам

Первый раздел называется resin-boot.

Видишь что-нибудь цепляющее взгляд? Правильно — config.json. Неужто мы сорвали джекпот?

Файл config.json из раздела resin-boot

Что мы можем вытащить из этого файла.

  1. Приложение, развернутое на нашем «резиновом» девайсе, называется logger. Ничего хорошего.
  2. У нас есть username. По всей видимости, это имя пользователя от аккаунта Resin, связанного с девайсом.
  3. Подтверждение того, что девайс использует VPN через порт 443.
  4. Дата регистрации. Устройство было зарегистрировано (или развернуто? или настроено?) 13 мая 2018 года.

 

Насчет имени пользователя…

Прогуглив имя из файла config.json, я нашел человека в том же городе, где была обнаружена «малина». Затем компания проверила свои записи о нем, но ничего не нашла.

Как ни странно, по тому же запросу я нагуглил еще и сайт 2001 года, где родители «одаренных детей» пишут статьи о своих чадах и почему-то подписывают их домашним адресом и номером телефона. Так я получил имена и адрес целой семьи.

Сайт об одаренных детях — не тот самый, но похожий

Зацепка может оказаться ложной, ведь одни и те же имена могут использовать совершенно разные люди — так что пока просто его запомним.

 

resin-data

В директории с данными, собственно, не хранилось никаких данных (в смысле, собранных данных), зато обнаружилось приложение на Node.js, сильно сбившее меня с толку — признаться, я до сих пор не могу четко сказать, чем оно занималось. Кажется, «разговаривало» с ключом через последовательное соединение, но я так и не смог выяснить, что за данные оно собирало. Полагаю, отслеживало движение устройств Bluetooth и Wi-Fi в зоне действия (вокруг кабинетов руководства, между прочим) и, может быть, перехватывало необработанные пакеты Wi-Fi.

Зато я нашел кое-что поинтересней — файл LICENSE.md.

Скриншот файла License.md

Странно… Зачем в такой приложухе на Node.js предупреждение о конфиденциальности? Я прогуглил компанию из копирайта — и знаешь что?

 


Чувак с именем из config-файла — совладелец компании

Почему сооснователь компании раскидывает эти девайсы по городу — выше моего понимания, но ладно…


Получаем домашний адрес злоумышленников

Другую интересную деталь я нашел в третьем разделе (resin-state) по адресу /root-overlay/etc/NetworkManager/system-connections/. Файл назывался resin-wifi-01 — и угадайте, что в нем было.


А были в нем учетные данные Wi-Fi, через который настраивали (или тестили) устройство. И это определенно не Wi-Fi нашей конторы. А что мы делаем, когда хотим найти локацию, связанную с именем конкретного вайфая? Идем на wigle.net, вводим SSID (то есть имя вайфая) — и получаем координаты.

Не то имя и не та локация — просто для примера

И что ты думаешь? Это адрес тех самых родителей одаренного ребенка. Именно отсюда, согласно Wigle.net, настраивали наш девайс.

 


Последствия

Как и когда «малина» вообще к нам попала?

Я проверил логи DNS и выяснил точное время, когда «малина» впервые появилась в сети. Следом я проверил логи Radius, чтобы посмотреть, кто из сотрудников находился тогда в помещении, — и увидел кучу сообщений о том, что к Wi-Fi пытается подключиться деактивированный аккаунт.

Деактивированный аккаунт принадлежал бывшему сотруднику — тот (по некоторым причинам) договорился с руководством, чтобы ему оставили ключи, пока он не заберет все свои пожитки из офиса (не спрашивай…).

 

Что теперь?

Теперь в игру вступают юристы — я же сделал свое дело, а остальное находится за пределами моих компетенции и зарплаты. Но для меня эта история стала интересным челленджем — и я благодарен пользователям Reddit, которые помогли мне с кусочками этого пазла.

Источник

Report Page