SOC Prime Bias: Medium

29 Jan 2026 15:23 UTC

O Código PyRAT: Internos de um RAT Baseado em Python

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
O Código PyRAT: Internos de um RAT Baseado em Python
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O artigo perfila o PyRAT, um trojan de acesso remoto baseado em Python empacotado como um binário ELF utilizando o PyInstaller. Ele é executado tanto em Linux quanto em Windows, comunica-se com um servidor C2 sobre HTTP não criptografado e suporta execução de comandos, exfiltração de arquivos, captura de tela e uma rotina de autodestruição. A persistência é implementada através do XDG autostart no Linux e de uma chave de registro Run no Windows. O relatório enfatiza quão leve é a ferramenta e como ela pode ser facilmente repropósita por cibercriminosos.

Investigação

Pesquisadores extraíram o bytecode Python embutido com pyinstxtractor, descompilaram os módulos e identificaram a classe principal Agent que executa fingerprinting de host, geração de UID, gerenciamento de threads e coordenação de C2. A análise estática revelou importações chave, nomes de arquivos, interação com o registro e o endpoint HTTP POST usado para beaconing. Testes de comportamento mostraram o fluxo de trabalho completo: criação de persistência, execução de comandos, enumeração de arquivos, operações de upload/download, criação de arquivo ZIP, captura de tela e limpeza opcional de artefatos.

Mitigação

Monitore arquivos .desktop de autostart suspeitos criados em perfis de usuários e adições à chave de registro HKCURun usando nomes de executáveis desconhecidos. Na camada de rede, observe por tráfego HTTP POST de saída para hosts desconhecidos direcionados ao endpoint /api/{uid}/hello. Nos endpoints, sinalize binários ELF desconhecidos contendo conteúdo Python embutido e comportamento anômalo de processos, como execução frequente de subprocessos.

Resposta

Se detectado, isole o sistema, colete a amostra ELF e quaisquer arquivos .desktop associados, e preserve o estado do registro relevante. Extraia o UID, endereço C2, e quaisquer arquivos transferidos durante a execução como parte da análise forense. Bloqueie a infraestrutura C2 identificada, remova a persistência e complete uma limpeza total. Altere as credenciais para contas que possam ter sido expostas.

Fluxo de Ataque

Detecções

Possível Remoção Automática de Malware ou Operação de Ocultação de Stderr (via cmdline)

Equipe SOC Prime
28 Jan 2026

Arquivo Foi Criado Na Pasta Tmp do Linux (via file_event)

Equipe SOC Prime
28 Jan 2026

Possíveis Pontos de Persistência [ASEPs – Software/NTUSER Hive] (via cmdline)

Equipe SOC Prime
28 Jan 2026

Tentativa de Remoção de Chaves do Registro Possível (via process_creation)

Equipe SOC Prime
28 Jan 2026

Tentativa de Modificação de Arquivos Autostart do XDG no Linux Possível (via cmdline)

Equipe SOC Prime
28 Jan 2026

Permissões Perigosas para um Binário/Script/Pasta foram definidas (via cmdline)

Equipe SOC Prime
28 Jan 2026

IOCs (HashMd5) para detectar: O Código PyRAT: RAT Baseado em Python e seus Internos

Regras AI da SOC Prime
28 Jan 2026

Persistência no Windows via Chave Run do Usuário Atual [Evento do Registro do Windows]

Regras AI da SOC Prime
28 Jan 2026

Detecção de Persistência do PyRAT no Linux [Criação de Processo no Linux]

Regras AI da SOC Prime
28 Jan 2026

Execução de Simulação

Pré-requisito: A Verificação de Pré-vôo do Telemetria & Baseline deve ter passado.

Racional: Esta seção detalha a execução precisa da técnica adversária (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.

  • Narrativa de Ataque & Comandos:

    Um atacante obteve uma credencial SSH comprometida para um usuário regular. Após o login, eles executam um script de permanência :

    1. Escreve a carga útil ELF maliciosa (agent-svc.pyc) no diretório home do usuário, disfarçando-o como um arquivo de bytecode Python enquanto é na verdade um binário ELF.
    2. Copia uma ferramenta de pacote-debian mascarada nomeada dpkgn em /usr/local/bin, concedendo-lhe direitos de execução. A ferramenta é um invólucro fino que simplesmente lança a carga ELF.
    3. Instala uma entrada desktop autostart (dpkgn.desktop) em ~/.config/autostart para que a carga útil seja executada em cada início de sessão gráfica.
    4. Define permissões apropriadas para evitar suspeita imediata.

    Os eventos de arquivo combinados (agent-svc.pyc and dpkgn) satisfazem a primeira condição da regra, enquanto o .desktop arquivo satisfaz a segunda condição.

  • Script de Teste de Regressão:

    #!/usr/bin/env bash
    set -euo pipefail
    
    # 1. Deploy payload ELF disfarçado como .pyc
    MALWARE_PATH="$HOME/agent-svc.pyc"
    echo "Criando carga ELF falsa (binário dummy) ..."
    dd if=/dev/zero bs=1 count=1024 of="$MALWARE_PATH" status=none
    chmod +x "$MALWARE_PATH"
    
    # 2. Deploy ferramenta Debian falsa chamada dpkgn
    FAKE_TOOL="/usr/local/bin/dpkgn"
    echo "#!/usr/bin/env bash" | sudo tee "$FAKE_TOOL" > /dev/null
    echo "exec "$MALWARE_PATH" "$@"" | sudo tee -a "$FAKE_TOOL" > /dev/null
    sudo chmod +x "$FAKE_TOOL"
    
    # 3. Criar entrada autostart desktop
    AUTOSTART_DIR="$HOME/.config/autostart"
    mkdir -p "$AUTOSTART_DIR"
    DESKTOP_FILE="$AUTOSTART_DIR/dpkgn.desktop"
    cat > "$DESKTOP_FILE" <<EOF
    [Desktop Entry]
    Type=Application
    Exec=$FAKE_TOOL
    Hidden=false
    NoDisplay=false
    X-GNOME-Autostart-enabled=true
    Name=Package Manager
    Comment=Serviço de Atualização de Sistema
    EOF
    
    echo "Artefatos de persistência do PyRAT implantados."
  • Comandos de Limpeza:

    #!/usr/bin/env bash
    set -euo pipefail
    
    # Remover ELF malicioso
    rm -f "$HOME/agent-svc.pyc"
    
    # Remover ferramenta falsa
    sudo rm -f /usr/local/bin/dpkgn
    
    # Remover entrada autostart
    rm -f "$HOME/.config/autostart/dpkgn.desktop"
    
    echo "Limpeza concluída."