SOC Prime Bias: Критичний

05 Jun 2026 15:40 UTC

C0XMO: Новий варіант Gafgyt з кросплатформовим розповсюдженням

Author Photo
SOC Prime Team linkedin icon Стежити
C0XMO: Новий варіант Gafgyt з кросплатформовим розповсюдженням
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Laboratorії FortiGuard виявили новий штам ботнету Gafgyt під назвою C0XMO, який поширюється, експлуатуючи помилку переповнення буфера в маршрутизаторах DD-WRT, відомий як CVE-2021-27137. Шкідливе програмне забезпечення використовує окремий сканер на основі Python для розширення інфекцій через різні архітектури ЦП, покладаючись також на атаки зі слабкими обліковими даними, кілька можливостей DDoS та процедури видалення конкуруючого шкідливого ПЗ. Після інфекції, вона створює стійкість через приховані файли, завдання cron і зміну профілю оболонки перед тим, як зв’язатися з сервером управління і контролю. Звіт також містить індикатори та рекомендації щодо захисту для організацій, які експлуатують відкриті IoT-пристрої.

Розслідування

Аналіз показує, що C0XMO зловживає CVE-2021-27137 в службі UPnP DD-WRT для отримання початкового доступу, потім отримує сканер Python з 217.160.125.125:15527. Цей сканер здійснює атаки грубої сили для Telnet і SSH, запускає кілька запитів на експлуатацію на основі HTTP та розгортає двійкові файли на основі архітектури залежно від цільової середовища. Стійкість підтримується через приховані файли, розміщені на таких шляхах, як /tmp, /var/tmp, /dev/shm, та у домашніх каталогах користувачів, разом із записями cron-job і редагуванням профілю оболонки. Потім шкідливе ПЗ зв’язується з інфраструктурою C2 на 85.215.131.70 з використанням користувацької процедури рукостискання.

Пом’якшення

Організації повинні оновити прошивку DD-WRT до випуску, новішого за зміни 45723 і застосувати виправлення для всіх пов’язаних CVE. Необхідно вимкнути непотрібні віддалені служби, такі як UPnP, Telnet і SSH, на пристроях, звернених до інтернету, якщо це можливо. Повинні бути забезпечені сильні, унікальні облікові дані для всіх пристроїв переднього краю, і регулярний перегляд відкритих сервісів повинен бути регулярно виконуваним. Також слід розгорнути мережні детектори для виявлених IP-адрес, портів та зловмисних командних шаблонів, пов’язаних з кампанією.

Відповідь

Захисники повинні моніторити вихідний трафік для з’єднань із відомою інфраструктурою C2 та портом для завантаження сканера. Повідомлення повинні бути налаштовані для прихованих файлів з ім’ям .sys, змін cron, які виконуються кожні 15 хвилин, та виконання сценарію сканера. Виявлені зловмисні IP та домени повинні бути заблоковані на брандмауері, а будь-які скомпрометовані пристрої повинні бути ізольовані для судово-медичного огляду та повного очищення.

graph TB %% Class definitions classDef technique fill:#ffcc99 classDef action fill:#99ff99 classDef malware fill:#ff9999 classDef tool fill:#ccccff classDef process fill:#ffdd66 %% Nodes tech_scanning[“<b>Техніка</b> – <b>T1595.002 Активне Сканування</b><br/><b>Опис</b>: Сканує діапазони IP-адрес для пошуку відкритих портів і вразливих сервісів.”] class tech_scanning technique tech_exploit_upnp[“<b>Техніка</b> – <b>T1546.017 Виконання, Ініційоване Подією: Правила Udev</b><br/><b>Опис</b>: Ініціює виконання коду через спеціально сформовані UDP M-SEARCH запити, що експлуатують CVE-2021-27137 в UPnP.”] class tech_exploit_upnp technique tech_exploit_other[“<b>Техніка</b> – <b>T1210 Експлуатація Віддалених Сервісів</b><br/><b>Опис</b>: Експлуатує додаткові HTTP/UPnP вразливості, такі як CVE-2015-2051 та CVE-2022-35914.”] class tech_exploit_other technique tech_hijack_exec[“<b>Техніка</b> – <b>T1574.005 Перехоплення Потоку Виконання: Слабкі Дозволи Файлів Інсталятора</b><br/><b>Опис</b>: Розміщує шкідливі ELF-бінарні файли у прихованих каталогах із правами на виконання.”] class tech_hijack_exec technique tech_persistence_cron[“<b>Техніка</b> – <b>T1053.003 Заплановане Завдання/Робота: Cron</b><br/><b>Опис</b>: Створює cron-завдання для запуску корисного навантаження кожні 15 хвилин.”] class tech_persistence_cron technique tech_shell_mod[“<b>Техніка</b> – <b>T1546.004 Виконання, Ініційоване Подією: Модифікація Конфігурації Unix Shell</b><br/><b>Опис</b>: Додає команди до ~/.bashrc, ~/.profile та ~/.bash_profile.”] class tech_shell_mod technique tech_compromise_binary[“<b>Техніка</b> – <b>T1554 Компрометація Бінарного Файлу Програмного Забезпечення Хоста</b><br/><b>Опис</b>: Встановлює або замінює бінарні файли у прихованих місцях для збереження контролю.”] class tech_compromise_binary technique tech_bruteforce[“<b>Техніка</b> – <b>T1110 Підбір Паролів (Brute Force)</b><br/><b>Опис</b>: Виконує атаки з підбором облікових даних проти Telnet і SSH.”] class tech_bruteforce technique tech_forced_auth[“<b>Техніка</b> – <b>T1187 Примусова Автентифікація</b><br/><b>Опис</b>: Використовує стандартні або слабкі облікові дані для отримання доступу.”] class tech_forced_auth technique tech_remote_ssh[“<b>Техніка</b> – <b>T1021.004 Віддалені Сервіси: SSH</b><br/><b>Опис</b>: Використовує викрадені облікові дані для входу на інші пристрої через SSH/Telnet.”] class tech_remote_ssh technique tech_indicator_removal[“<b>Техніка</b> – <b>T1070.009 Видалення Індикаторів: Очищення Механізмів Закріплення</b><br/><b>Опис</b>: Завершує роботу та видаляє конкуруючі шкідливі програми і механізми закріплення.”] class tech_indicator_removal technique tech_exclusive_control[“<b>Техніка</b> – <b>T1668 Ексклюзивний Контроль</b><br/><b>Опис</b>: Видаляє файли та cron-завдання конкуруючих ботнетів для збереження одноосібного контролю.”] class tech_exclusive_control technique tech_nonstandard_port[“<b>Техніка</b> – <b>T1571 Нестандартний Порт</b><br/><b>Опис</b>: Здійснює зв’язок із C2 через TCP-порт 15527 за допомогою власного протоколу.”] class tech_nonstandard_port technique malware_c0xmo[“<b>Шкідливе ПЗ</b> – C0XMO<br/><b>Роль</b>: Корисне навантаження ботнету, що виконує сканування, експлуатацію вразливостей і забезпечує закріплення.”] class malware_c0xmo malware process_upnp_exploit[“<b>Процес</b> – Надсилання спеціально сформованого UDP M-SEARCH запиту”] class process_upnp_exploit process process_elf_deploy[“<b>Процес</b> – Розгортання ELF-бінарних файлів у /tmp/.sys, /var/tmp/.sys, /dev/shm/.sys”] class process_elf_deploy process process_cron_setup[“<b>Процес</b> – Створення запису cron для запуску кожні 15 хвилин”] class process_cron_setup process process_shell_mod[“<b>Процес</b> – Додавання виклику корисного навантаження до shell rc-файлів”] class process_shell_mod process process_brute[“<b>Процес</b> – Сканування IP-адрес і підбір облікових даних для Telnet/SSH”] class process_brute process process_c2[“<b>Процес</b> – Підтримка каналу C2 на порту 15527”] class process_c2 process %% Connections tech_scanning –>|призводить_до| tech_exploit_upnp tech_scanning –>|також_ініціює| tech_exploit_other tech_exploit_upnp –>|виконує| process_upnp_exploit process_upnp_exploit –>|розгортає| malware_c0xmo malware_c0xmo –>|розміщує| tech_hijack_exec tech_hijack_exec –>|призводить_до| process_elf_deploy process_elf_deploy –>|забезпечує| tech_compromise_binary tech_compromise_binary –>|підтримує| tech_persistence_cron tech_compromise_binary –>|підтримує| tech_shell_mod tech_persistence_cron –>|створює| process_cron_setup tech_shell_mod –>|створює| process_shell_mod malware_c0xmo –>|виконує| tech_bruteforce malware_c0xmo –>|виконує| tech_forced_auth tech_bruteforce –>|забезпечує| process_brute tech_forced_auth –>|забезпечує| process_brute process_brute –>|отримує_облікові_дані_для| tech_remote_ssh tech_remote_ssh –>|поширюється_на_інші_хости| malware_c0xmo malware_c0xmo –>|усуває_конкурентів_через| tech_indicator_removal malware_c0xmo –>|зберігає_ексклюзивний_контроль_через| tech_exclusive_control malware_c0xmo –>|здійснює_C2_зв’язок_через| tech_nonstandard_port tech_nonstandard_port –>|використовує| process_c2

Потік атак

Виявлення

Можливе використання Crontab для прямого виконання (через командний рядок)

Команда SOC Prime
05 червня 2026

Віддалене завантаження / завантаження файлів за допомогою стандартних інструментів (через командний рядок)

Команда SOC Prime
05 червня 2026

Прихований файл створено на хості Linux (через file_event)

Команда SOC Prime
05 червня 2026

IOCs (HashSha256) для виявлення: Внутрішнє крос-платформне поширення нового варіанту Gafgyt C0XMO

Правила AI SOC Prime
05 червня 2026

IOCs (SourceIP) для виявлення: Внутрішнє крос-платформне поширення нового варіанту Gafgyt C0XMO

Правила AI SOC Prime
05 червня 2026

IOCs (DestinationIP) для виявлення: Внутрішнє крос-платформне поширення нового варіанту Gafgyt C0XMO

Правила AI SOC Prime
05 червня 2026

Виявлення C2 зв’язку ботнету C0XMO [Брандмауер]

Правила AI SOC Prime
05 червня 2026

Виявлення завантаження пакету C0XMO Gafgyt Variant [Створення процесу Linux]

Правила AI SOC Prime
05 червня 2026

Виявлення операцій файлового шкідливого ПЗ C0XMO [Подія файлу Linux]

Правила AI SOC Prime
05 червня 2026

Сканування процесу C0XMO та перевірка стійкості [Створення процесу Linux]

Правила AI SOC Prime
05 червня 2026

Виконання симуляції

Попередня умова: Телеметрія та перевірка попередньої готовності базової лінії повинні бути пройдені.

Обґрунтування: Цей розділ детально описує точне виконання техніки противника (TTP), розроблену для ініціювання правила виявлення. Команди та наратив повинні безпосередньо відображати виявлені TTP та націлені на створення саме тієї телеметрії, яку очікує логіка виявлення.

  • Наратив атаки та команди:
    Бот противника, вже встановлений на скомпрометованому хості через виконання служби (T1546.007), ініціює C2 рукостискання з сервером з жорстким кодуванням 217.160.125.125 на порті 15527. Підключення використовує простий TCP сокет для отримання команд, абсолютно відповідаючи критеріям правила. Ця активність типова для поведінки ботнету C0XMO “дзвінок додому”.

  • Скрипт регресійного тесту:

    # Імітація зв'язку C0XMO C2 – запускає Sigma правило
    $c2Ip = "217.160.125.125"
    $c2Port = 15527
    
    # Відкрити TCP з'єднання, надіслати мінімальний вантаж, потім закрити
    $client = New-Object System.Net.Sockets.TcpClient
    $client.Connect($c2Ip, $c2Port)
    
    $stream = $client.GetStream()
    $payload = [System.Text.Encoding]::ASCII.GetBytes("PING`n")
    $stream.Write($payload, 0, $payload.Length)
    
    # Коротке чекання для імітації реалізму
    Start-Sleep -Seconds 2
    
    $stream.Close()
    $client.Close()
  • Команди очищення:

    # Не було внесено ніяких постійних змін; просто забезпечте, що будь-які відкриті сокети закриті
    # (Скрипт вже закриває сокет; це захисна сітка.)
    Get-Process -Name "powershell" | Where-Object { $_.MainWindowTitle -eq "" } | Stop-Process -Force