В мире информационной безопасности даже у угрозовых акторов случаются промахи, которые превращаются в бесценный источник разведданных для защитников. В то время как одни ошибки, вроде неправильно настроенного сервера или повторно использованного TLS-сертификата, требуют тщательного анализа, другие оказываются настолько вопиющими, что напоминают открытую книгу операций. Именно такой случай, когда злоумышленник оставил открытым рабочий каталог на своей промежуточной инфраструктуре, недавно детально исследовала команда Hunt.io. В результате был обнаружен и проанализирован многослойный проект, совмещающий сеть для обхода интернет-цензуры и развивающийся ботнет для DDoS-атак, что дало уникальное представление о тактиках, технике и процедурах (TTP) конкретного оператора.
Описание
Инцидент начался в ходе планового мониторинга открытых серверов в Иране с помощью платформы Hunt.io и её функции AttackCapture. 24 февраля исследователи обнаружили сервер с IP-адресом 185.221.239[.]162, на порту 8080 которого был доступен открытый каталог с файлами. Этот сервер, размещённый у иранского интернет-провайдера Dade Samane Fanava Company (PJS), содержал 449 файлов в 59 подкаталогах. Среди них оказались не просто случайные данные, а полное рабочее окружение оператора: конфигурационные файлы, скрипты развёртывания, история команд bash, а также исходный и скомпилированный вредоносный код. Автоматическая система тегирования платформы сразу отметила папку с инструментом MHDDos, файл ".bash_history" и присвоила индикатору тактику T1016 (обнаружение конфигурации сети) по фреймворку MITRE ATT&CK - структурированному перечню тактик и техник киберпреступников.
Анализ инфраструктуры начался с изучения истории TLS-сертификатов на этом хосте. Обнаруженный сертификат Let's Encrypt для домена "*.server21[.]org" с уникальным отпечатком (SHA-256) стал ключевой точкой для дальнейшего расследования. Используя эту информацию, исследователи обнаружили целую сеть из 15 серверов, семь из которых были размещены у хостинг-провайдера Hetzner в Финляндии, а ещё семь - у иранских провайдеров. Это не было случайным повторным использованием сертификата, а указывало на управляемую, единую ретрансляционную сеть, развёрнутую одним оператором. Дальнейшие запросы с использованием внутреннего языка HuntSQL позволили выявить дополнительные узлы, включая сервер в сети OVH SAS в Лондоне, что говорило о стремлении злоумышленника диверсифицировать и расширить свою инфраструктуру.
Наиболее информативным источником стал файл ".bash_history", который детально документировал все действия оператора, разбивая их на три логические фазы. Первая фаза была посвящена развёртыванию туннельной сети для обхода цензуры. В истории команд последовательно фигурировали скрипты для настройки инструментов paqet, sepehr-GRE-FORWARDER, rathole-tunnel и, в конечном итоге, панели управления прокси 3x-ui. Paqet - это инструмент с открытым исходным кодом, специально созданный для обхода национальной системы фильтрации интернета в Иране и других регионах. Он использует протокол KCP поверх UDP с шифрованием AES для противодействия глубинному анализу пакетов (DPI). Наличие веб-панели 3x-ui с управлением пользователями и квотами трафика указывает на то, что данная сеть, вероятно, эксплуатировалась в коммерческих целях, предоставляя услуги по обходу блокировок внутри страны.
Вторая фаза, отражённая в истории команд, демонстрировала резкий переход от построения инфраструктуры к созданию инструментов для атак. Оператор вручную компилировал на сервере несколько инструментов для DDoS-атак на языке C: "syn.c", "flood.c" и "au.c", реализующих SYN-flood и UDP-flood атаки. Также был клонирован и настроен популярный инструмент MHDDoS. В качестве целей для тестовых атак в истории фигурировали два IP-адреса: игровой сервер FiveM (GTA) на порту 30120 и другой сервер на стандартных веб-портах 80 и 443. Оператор активно экспериментировал с настройками, пытаясь максимизировать мощность атаки, подбирая количество потоков и лимиты памяти.
Третья, наиболее интересная фаза, была посвящена разработке ботнета для автоматизации и масштабирования атак. Здесь эволюционировали Python-скрипты от "oh.py" до "ohhhh.py", а также велась активная работа над файлами "bot.c" и "cnc.c". Скрипт "ohhhh.py" играл ключевую роль в развёртывании: он читал файл с учётными данными в формате "хост:порт|имя_пользователя|пароль" и устанавливал до 500 параллельных SSH-сессий на заражённые машины. На каждой из них он затем компилировал исходный код клиента ботнета ("cnc.c") прямо на целевом хосте с помощью "gcc", переименовывал полученный бинарный файл в "hex" и запускал его в фоновом режиме. Такой подход «компиляции на месте» является техникой уклонения от обнаружения, так как позволяет обходить сигнатуры антивирусов, нацеленные на конкретные хэши предварительно собранных вредоносных файлов.
Анализ строк в скомпилированном бинарном файле "cnc" (исходный код восстановить не удалось) показал, что это клиент ботнета версии 1.0. Он регистрируется на командном сервере (C2), отправляя IP-адрес, имя хоста и идентификатор процесса жертвы. В коде присутствуют команды для запуска и остановки атаки, а также важная логика автоматического переподключения к C2 в случае разрыва связи. Это означает, что даже если промежуточный сервер или командный центр будут обезврежены, уже внедрённые боты на скомпрометированных хостах останутся активными и будут пытаться восстановить соединение, что требует индивидуального лечения каждой заражённой системы.
На основе совокупности доказательств - размещение в иранских сетях, использование персидского языка в комментариях к коду, специфический выбор инструментов для обхода цензуры - исследователи пришли к выводу, что оператор, скорее всего, базируется в Иране или свободно владеет языком. При этом характер целей (игровой сервер) и уровень сложности инструментов не указывают на деятельность, направляемую государством (APT). Скорее всего, это мотивированный финансово или личностно индивид или небольшая группа, находящаяся на ранней стадии развития своих вредоносных возможностей.
Для специалистов по защите данный кейс служит напоминанием о важности базовых, но эффективных мер. К ним относятся: жёсткий контроль и мониторинг учётных записей SSH, включая запрет аутентификации по паролю и использование ключей; внедрение систем обнаружения аномалий, которые могут выявить нехарактерную активность вроде массовой компиляции ПО через "gcc" на рабочих серверах; регулярный аудит конфигураций веб-серверов и файловых менеджеров для предотвращения появления открытых каталогов. Кроме того, блокировка на сетевом уровне выявленных IP-адресов инфраструктуры злоумышленника может помочь прервать цикл атаки. Этот инцидент наглядно показывает, что даже небольшая оплошность со стороны атакующего может превратиться в детальную карту его операций, предоставляя защитникам не только данные для реагирования, но и ценнейшие сведения для проактивного укрепления обороны.
Индикаторы компрометации
IPv4
- 185.221.239.121
- 185.221.239.160
- 185.221.239.162
- 185.221.239.188
- 185.221.239.198
- 185.221.239.84
- 185.236.38.79
- 185.236.38.81
- 194.147.222.183
- 212.74.39.128
- 65.109.184.58
- 65.109.187.102
- 65.109.196.138
- 65.109.204.0
- 65.109.209.147
- 65.109.213.131
- 65.109.214.203
Domains
- bot.kilashin.info
- down.celltoocall.com
- finland1.server21.org
- finland2.server21.org
- finland4.server21.org
- finland5.server21.org
- finland6.server21.org
- hzf09853311.xyz
- parsashonam-sub.blog
- re.dangidog.site
- robot5.server21.org
- sir.ffakhar.ir
SHA256
- 1e3a7e978953bbe040cc5e0743b926fe3407ab949370b791d2de6655a704ef73
- 73048cb6506443e482935586edb2af3f6a0c8ca44b061172b5be826a0f1e92f6
- acfd59afbb50331925cc3980e7c40044807e0a8bf44e0c38f9f0af9988ea060e