SOC Prime Bias: Médio

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

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."