Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Приветствую! Сегодня речь пойдет об одной очень интересной угрозе, которая способна действовать максимально скрытно при своей чудовищной эффективности. И имя этой угрозы — Mirai. С японского это слово переводится как «будущее» и создатели отнюдь не ошиблись, назвав этот ботнет именно так. Ведь для крупных мировых компаний, порталов и серверов Мираи — это полноценный специалист по лишению будущего.
Но обо всем по порядку. Недавно специалисты обнаружили новые версии этого ботнета в сети. Одна из вариаций зловреда нацелилась на дешевые игровые TV-приставки, работающие на Android. Вторая же начала атаковать уязвимые сетевые устройства D-Link, TP-Link, Zyxel, Tenda и Netgear.
Что же такое ботнет и в чём его основная опасность?
Botnet (сокращение от английского «robot network» или «bot network») — это сеть устройств, управляемых злоумышленниками с использованием вредоносного программного обеспечения. Такое ПО может заражать компьютеры и другие устройства вовсе без участия их владельцев, так как распространяется в основном по методологии сетевого червя или уязвимости.
Основные характеристики ботнета включают в себя:
Контроль: Злоумышленники могут удаленно управлять всей сетью ботнета, отправляя команды на зараженные устройства.
Скрытность: Зараженные компьютеры могут работать в фоновом режиме и скрывать свою активность, чтобы их владельцы не замечали. Здесь стоит уточнить, что далеко не только телефоны и компьютеры подвержены этой напасти. В один прекрасный день вы можете обнаружить, что ваш тостер с микроволновкой совершают DDOS-атаку на Пентагон. Имейте в виду, заражению подвержено практически любое устройство, имеющее доступ в интернет.
DDoS (Distributed Denial of Service) атака — это кибератака, в которой злоумышленники пытаются перегрузить целевой сервер или сеть, отправляя огромное количество запросов или трафика с множества устройств. Целью такой атаки является временное или даже долгосрочное отключение целевой системы, делая ее недоступной для легитимных пользователей.
Масштаб: Ботнеты могут включать в себя тысячи и даже миллионы устройств, что делает их мощными инструментами для различных кибератак.
Злоумышленники могут использовать ботнеты для разных целей, включая массовые атаки на веб-сайты (DDoS-атаки), распространение вредоносного программного обеспечения, воровство личных данных, спам и многое другое. Они могут арендовать или продавать доступ к ботнетам на киберподпольных рынках, что позволяет другим злоумышленникам использовать их для своих целей.
Борьба с ботнетами является важной задачей для кибербезопасности. Множество методов и технологий разработаны для обнаружения, предотвращения и разрешения атак, связанных с ботнетами, но всего этого недостаточно. Так, в октябре 2022 года с помощью этого ботнета была организована одна из крупнейших DDOS-атак в мире. Правда, она была нацелена на сервер Minecraft, но это уже не так важно. Компания CloudFlare смогла отразить эту атаку, пиковые значения которой достигали 2,5 Т/cек.
А в марте 2023 года исследователи выяснили, что на момент подсчетов сеть ботов Mirai способна генерировать атаки от 3,3 Т/сек., и этот атакующий потенциал со временем будет только расти.
Хронология Будущего (Mirai)
На самом деле этот вредонос имеет достаточно занимательную историю, а его создатель до сих пор находится за решеткой.
20 сентября 2016 года: ботнет Mirai атаковал сайт Krebs on Security (достаточно крупная компания, проводящая исследования в области кибербезопасности). Эта атака длилась 77 часов и вывела из строя все серверы Krebs. По примерным подсчетам, в атаке принимало участие около 24,000 зараженных устройств, а генерируемый ими трафик составлял от 600 до 700 миллионов бит в секунду. Компания была вынуждена выключить свои серверы на несколько недель с последующим переходом на защиту Google Project Shield. На то время это было беспрецедентное происшествие. Расследование установило, что к этому был причастен некий ботнет, на то время ещё неизвестный.
1 октября 2016 года: пользователь с ником Анна-Семпай публикует исходный код на многих площадках, включая PasterBin, Github и др., вместе с подробными инструкциями по сбору ботов. Естественно, такой материал не проходит мимо глаз злоумышленников и начинается настоящая вакханалия. За 20 дней после публикации сеть ботнета насчитывала уже более 100 тысяч устройств.
21 октября 2016 года: американский крупный провайдер Dyn атакован ботнетом Mirai. Примечательно, что этот провайдер обслуживал такие сервисы, как Netflix и Twitter. Впоследствии оба ресурса были недоступны на протяжении недели. Аналитики Dyn насчитали более 100 тысяч уникальных IP-адресов.
1 ноября 2016 года: в Либерии больше нет интернета. Mirai выступает против нескольких либерийских телекоммуникационных компаний, активно нарушая подключение к Интернету по всей стране. На этом моменте трафик атаки уже превышает 500 Гб/сек.
4 ноября 2016 года: Mirai атаковал российские социальные сети, принадлежащие к Mail.ru Group. Атака не была особо эффективной и смогла парализовать работу социальных сетей лишь на несколько часов.
30 ноября 2016 года: охота за интернет-провайдерами продолжается. На этот раз страдает немецкий Deutsch Telekom. Мощность атаки составляла около 700 Гб/сек и лишила более 600 тысяч пользователей доступа к интернету. Здесь в дело вступает первая модифицированная версия Mirai. Используя уязвимости, она захватывала контроль над роутерами TP-Link и Zyxel, что привело к значительному росту мощности атак.
1 января 2017 года: автор пойман. Гражданин США Фарас Джа был приговорен к 10 годам лишения свободы. Следствие установило, что лично он был причастен только к самой первой атаке, но несмотря на это, Фарас получил весьма суровое наказание. Намного больше вреда нанесла публикация исходного кода Мираи в сети, после чего множество модифицированных версий начали действовать по всему миру.
2018 год: появление ботнета OMG, который является усиленной и оптимизированной версией Mirai.
2020 год: новые версии ZHTrap и Mukashi начинают действовать.
2022 год: Mirai и его модификации начали действовать в комплекте с бэкдором Pandora.
И с каждым новым годом количество модификаций возрастает, и они, естественно, становятся все более опасными.
Краткий статистический анализ компьютерной версии Mirai
Список инструментов, используемых для анализа:
DIE — Detect It Easy: многофункциональный инструмент, имеющий просто огромный арсенал. Позволит нам опередить тип компилятора вредоноса, язык, библиотеки и таблицы импорта/экспорта с последующим дизассемблированием.
PE Bear — неплохой инструмент для просмотра и редактирования составляющих PE-файла.
Tiny Tracer — утилита для динамического отслеживания исполнения бинарных элементов. Так называемый трейсер.
IDA PRO — инструмент для реверс-инжиниринга.
Reko — декомпилятор, также знаком нам с прошлых статей.
HollowHunter — утилита, распознает и сбрасывает множество потенциально вредоносных имплантов (замененные/имплантированные PE, шелл-коды, перехватчики, патчи в памяти).
В этой части мы разберем Mirai не как ботнет, а именно как вредонос, который скрыто может находиться и на вашем ПК или телефоне.
Почему я не рассматриваю более крупный сегмент, связанный с IP-камерами, умными лампочками или чайниками? Всё очень просто: в основном Mirai получает доступ к таким устройства или посредством использования уязвимостей, или банального bruteforce. К слову, ранее упомянутые IP-камеры имеют прекрасный потенциал для любого ботнета: достаточно мощные процессоры и качественное интернет соединение. А если добавить к этому нежелание некоторых администраторов обновлять ПО этих устройств, да какие обновления… Многие ленятся даже сменить пароль с admin:admin. О роутерах речь пойдет далее.
Дроппер — это компонент или программа, которая используется для загрузки и выполнения других вредоносных программ (полезных нагрузок) на зараженном компьютере.
BruteForce — это метод атаки, при котором злоумышленник пытается взломать систему, угадывая или перебирая все возможные комбинации паролей, ключей или других аутентификационных данных.
Примечательно, что сама по себе конечная вредоносная составляющая Мираи очень проста, однако здесь имеет место сотрудничество с другими вредоносными компонентами, а именно лоадерами или дропперами.
Общий концепт работы Mirai сводится к следующему:
Развертывание первичной полезной нагрузки: от огромных популярных дропперов до самописных маленьких и неказистых.
Установка и запуск клиентской части Mirai на устройстве жертвы.
Развертывание первичной полезной нагрузки: неизвестный вирус на Delphi
Доставка первичной полезной нагрузки может происходить самыми различными способами — от фишинговых рассылок до использования уязвимостей нулевого дня. Мне удалось заполучить небольшой дроппер, распространяющийся через фишинговые рассылки. В конечном итоге этот дроппер загружает на устройство жертвы Mirai и CoinMiner.
Полученный образец, уже по традиции, не имеет никакой подробной информации, весит 1,34 МБ и имеет достаточно странную иконку в виде «W». Сперва воспользуемся DIE для получения дополнительной информации о вредоносе.
Как вы можете увидеть, это 32-битный исполняемый PE-файл, написанный на Delphi. В качестве компилятора был использован неизвестный мне Turbo Linker. Время компиляции, естественно, заменено — этот метод называется TimeStomping.
Timestomping представляет собой технику, которая используется злоумышленниками для изменения метаданных о времени создания. Это делается с целью скрыть следы действий злоумышленника и ввести в заблуждение специалистов быстрого реагирования.
Virustotal на этот раз не подвел и показал внушительную статистику детекта, что не может не радовать. Для удобства я дал этому вирусу название Dolphin, то есть Дельфин.
Этот вредонос имеет ступенчатый алгоритм работы и всё сводится к следующим шагам:
Извлечение данных и декодирование вторичной полезной нагрузки;
Выполнение вторичной полезной нагрузки и скачивание конечного этапа;
Непосредственное выполнение загруженных вредоносов в памяти.
Извлечение данных и декодирование вторичной полезной нагрузки
Открыв образец в IDA, я был поражён количеством загруженных функций — 5800, что, на самом деле, очень много. В точке входа приложения мы видим следующий код:
Этот код не дает абсолютно никакой информации. Далее я заметил, что большинство функций представляют собой дефолтные функции Delphi или системные вызовы Windows. На анализ и перебор каждой функции ушло достаточно много времени, но мне удалось найти функцию, которая отвечает за декодирование полезной нагрузки второго этапа, а также её запуск.
На данный момент сложно понять, где именно расположен файл второго этапа, поэтому с помощью дебаггера и моих кривых рук превращаем этот нечитабельный фрагмент в это:
Это далеко не идеальный вариант, но уже здесь понятно, что эта функция является скрытой точкой входа, и выполнение основного предназначения происходит именно здесь. Весь код отвечает отвечает за анализ вторичной полезной нагрузки, ее отображение в памяти и выполнение.
Если мы запустим обратную трассировку, то она остановится на функции Sub_4994EC, и после её расшифровки можно сделать следующий вывод:
Функция считывает все данные в участке памяти с названием T__7412N16D и переносит их непосредственно в память.
Выполняет декодирование вторичной полезной нагрузки и запускает.
На этом выполнение этого файла прекращается, в действие вступает
Выполнение вторичной полезной нагрузки и скачивание конечного этапа
Извлечь второй этап можно разными способами, но так как он запускается непосредственно в памяти, подобно импланту, проще всего будет воспользоваться утилитой Hollow Hunter. Поначалу я сомневался в этой затее, но всё получилось.
Воспользуемся DIE для получения дополнительных сведений о файле. И практически никаких различий с ранее увиденным от первого этапа. Исполняемый PE32-файл, написанный на Delphi, компилятор аналогичен.
VirusTotal же совсем не обрадовал, ведь показатель обнаружения составляет всего-то 10 из 72. Переходим к IDA.
Нас снова встречает огромное количество функций, которые, как и образце первого этапа, являются либо системными вызовами Windows, либо стандартными от Delhpi. По тому же принципу я начал искать функцию, которая отвечает за декодирование окончательной полезной нагрузки и выделение места в памяти.
Удача мне улыбнулась, и я нашел функцию sub_45BE08. Выглядит она следующим образом:
Обратите внимание, что после процесса расшифровки вредонос сразу же проверит наличие подключения к интернету, запросив пинг от сайта Microsoft. Но это не так интересно, как функция f_main_loader, которая и выполняет большинство оставшейся работы. Сперва происходит декодирование URL-адреса для получения конечной полезной нагрузки:
Затем с помощью WinHTTP WinHttpRequest происходит скачивание конечной полезной нагрузки.
WinHTTP (Windows HTTP Services) — это набор API, предоставляемый операционной системой Windows для выполнения операций, связанных с протоколом HTTP.
Конечная полезная нагрузка
Как уже упоминалось ранее, этот дроппер загружает на устройство жертвы два вредоноса — CoinMiner и Mirai. В рамках этой статьи первый не представляет для нас никакого интереса, поэтому перейдем сразу к анализу Mirai.
По своему устройству компьютерная версия очень проста: конкретно эта претерпела некоторые изменения со стороны злоумышленника, но фундаментально ничего не изменилось.
Перед нашими глазами исполняемый файл PE64, написанный на C++, весом в 54 КБ. Дата компиляции похожа на реальную, поэтому говорить здесь больше не о чем. Кроме того, процент обнаружения на VirusTotal составил 0/71, что порядком меня удивило.
Единственное интересное, что я заметил при вскрытии этого образца, так это территориальная защита. Говоря простым языком, вредонос уничтожает другие вирусы на компьютере жертвы, а также ограничивает попытки установки удаленного подключения к зараженному устройству.
Менее интересный аспект был обнаружен в функции, отвечающей за связь с C&C сервером. В коде была использована кириллица. Скорее всего, это попытка запутать следы.
Конкретно этот образец закрепляется в системе путем добавления соответствующего ключа реестра Windows. Он маскируется под дефолтный процесс системы Windows Driver Foundation.
Как Мираи поработил роутеры и маршрутизаторы
Как я уже говорил, влияние этого ботнета на такие устройства, как роутеры, IP-камеры и прочее, осуществляется за счет уязвимостей. Зачастую даже старых, так как владельцы пренебрегают элементарной защитой.
Здесь поведаю на примере самого свежего инцидента с уязвимостью нулевого дня CVE-2023-1389.
Уязвимость нулевого дня (Zero-Day Vulnerability) — это уязвимость в программном обеспечении или в операционной системе, которая стала известна злоумышленникам или широкой общественности, прежде чем разработчики соответствующего программного продукта выпустили официальное исправление (патч).
CVE-2023-1389 — в Wi-Fi маршрутизаторах TP-Link Archer A21, позволяющая злоумышленнику обходить аутентификацию и выполнять на устройстве произвольные команды. Впервые была продемонстрирована на хакерском соревновании Pwn2Own в декабре прошлого года.
Эта уязвимость очень проста и единственное, что нужно сделать злоумышленнику — это отправить на устройство запрос, содержащий в себе параметр страны, а затем второй аналогичный запрос с указанной командой вместо прошлого параметра.
Самое печальное, что на том же GitHub находятся несколько PoC-эксплоитов для этой уязвимости, стоит их немного подправить и автоматизировать, как в ваших руках уже мощный инструмент. Даже несмотря на то, что TP-Link исправили эту уязвимость, в мире до сих пор находятся сотни тысяч уязвимых устройств. И каждое из них может быть использовано в схеме Mirai. Это самый свежий пример, но на самом деле их имеется целая гора.
Выводы
Приведу пример из своей школьной жизни. Может, мало кому интересно будет, но я хочу это написать. В свои годы я маялся написанием простеньких брутфорсеров для IP-камер, и естественно, тогда не задумывался об использовании их для DDoS. Но суть остается сутью: тогда с небольшого количества IP-диапазонов и словарем дефолтных паролей размером в 10 комбинаций можно было получить доступ к сотням устройств.
В качестве эксперимента я повторил подобные действия и практически ничего не изменилось. Устройств с идентификационными данными 123;123 стало меньше, но всего процентов на 30%.
Касательно Mirai на компьютерах, всё сложно, причём настолько, что антивирус вам не поможет. Почему? Сейчас объясню. В сегодняшней цепочке мы разобрали такой примитивный метод доставки, что дроппер обнаруживался даже самыми бесполезными антивирусами, но вот конечная полезная нагрузка в виде самого Мираи не воспринимается как вирус.
Объяснение этому есть и оно достаточно простое: публикация исходного кода вредоноса привела к тому, что каждый может его переделать. А следовательно, после компиляции конечная хэш-сумма будет другой, и антивирус уже ничего не видит.
Инструкции по удалению вредоноса с устройства.
А на этом у меня всё. До скорого.
Автор статьи @DeathDay
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.