# T1059.006 - Python ## Técnica Pai Esta é uma sub-técnica de [[t1059-command-scripting-interpreter|T1059 - T1059 - Command and Scripting Interpreter]]. ## Descrição Adversários abusam de comandos e scripts Python para executar código malicioso nos sistemas comprometidos. Python é uma das linguagens de programação mais populares do mundo e está presente de forma nativa ou facilmente instalável em práticamente todas as plataformas modernas - Windows, Linux, macOS e até ambientes ESXi. A flexibilidade da linguagem, combinada com sua vasta biblioteca padrão, permite que atacantes realizem desde downloads de payloads e execução de shellcode até movimentação lateral, coleta de credenciais e comunicação C2, tudo dentro de um único script interpretado que muitas vezes não dispara alertas de AV por ser código legítimo. O Python pode ser executado de forma interativa via `python.exe` ou `python3`, a partir de scripts `.py` distribuídos ao sistema, ou ainda como bytecode compilado em arquivos `.pyc` - forma que dificulta a análise estática. Além disso, ferramentas como PyInstaller e Nuitka permitem empacotar scripts Python em binários standalone executáveis, eliminando a dependência do interpretador no host alvo e tornando a detecção mais difícil. Adversários também exploram bibliotecas como `ctypes`, `subprocess` e `socket` para interagir com o sistema operacional subjacente, injetar código em outros processos e estabelecer canais de comunicação cifrados. **Contexto Brasil/LATAM:** O grupo [[g0095-machete|Machete]], com histórico de operações na América Latina - incluindo alvos no Brasil, Venezuela e Equador - utiliza Python extensivamente em seus implantes para espionagem governamental e militar. O grupo [[g0106-rocke|Rocke]], focado em cryptomining, distribui scripts Python que se propagam via servidores expostos na internet, tendo afetado infraestrutura de nuvem de organizações brasileiras. A popularidade do Python em ambientes de desenvolvimento e ciência de dados no Brasil cria um desafio adicional: o interpretador está presente em estações de trabalho de analistas, engenheiros e pesquisadores, tornando sua execução difícil de bloquear indiscriminadamente sem impactar produtividade. ## Attack Flow ```mermaid graph TB A[Acesso Inicial] --> B[Entrega do Script] B --> C["T1059.006<br/>Execução via Python"]:::highlight C --> D[Persistência / C2] C --> E[Coleta de Dados] classDef highlight fill:#e74c3c,color:#fff ``` ## Como Funciona ### 1. Preparação O adversário prepara o payload em Python - sejá um script `.py` simples, um módulo compilado em `.pyc`, ou um binário empacotado com PyInstaller. O script é entregue ao sistema alvo por meio de phishing ([[t1566-phishing|T1566]]), exploração de aplicação exposta, ou download via outro implante já instalado. Em ambientes onde o Python não está presente, o atacante pode instalá-lo silenciosamente usando gerenciadores de pacotes do sistema (`apt`, `yum`, `winget`) ou empacotar o interpretador junto com o payload como binário standalone. ### 2. Execução O script é invocado diretamente (`python script.py`), como one-liner via argumento `-c`, ou executado por outro processo malicioso. Bibliotecas como `ctypes` permitem chamar funções nativas do sistema operacional e injetar shellcode diretamente na memória. O módulo `socket` viabiliza a criação de shells reversos e canais C2 sem dependências externas. Scripts de cryptomining, RATs e stealers são frequentemente distribuídos como pure-Python para maximizar portabilidade entre plataformas. Em ambientes Linux e macOS, scripts com shebang (`#!/usr/bin/env python3`) podem ser executados diretamente como binários. ### 3. Pós-execução Após a execução inicial, o script pode estabelecer persistência via [[t1053-scheduled-task-job|tarefas agendadas]], cron jobs ou chaves de registro, garantindo sobrevivência ao reboot. A comunicação C2 costuma usar HTTPS, WebSockets ou DNS sobre HTTPS (DoH) para se misturar com tráfego legítimo. Logs de execução podem ser apagados e o script original removido, deixando apenas o processo Python em memória ou um binário standalone difícil de rastrear até o código-fonte original. Em ambientes de contêineres e ESXi, Python é especialmente valioso pela portabilidade nativa entre imagens de sistema. ## Detecção **Event IDs relevantes (Windows e Linux):** | Event ID | Fonte | Descrição | |----------|-------|-----------| | 4688 | Security (Windows) | Criação de processo - monitorar `python.exe`, `python3.exe`, `pythonw.exe` com argumentos `-c` ou nomes de script suspeitos | | 1 | Sysmon | Process Creaté - linha de comando com `-c "import socket"`, `ctypes`, `subprocess` ou URLs embutidas | | 3 | Sysmon | Network Connection - conexões de saída originadas de `python.exe` para IPs externos não reconhecidos | | 11 | Sysmon | FileCreaté - criação de arquivos `.py`, `.pyc` ou binários PyInstaller em diretórios temporários | | auditd | Linux | `execve` com argumento `python` seguido de `-c` ou caminho em `/tmp`, `/dev/shm` | **Sigma Rule:** ```yaml title: Execução Suspeita de Python com Payload Inline (T1059.006) id: a4c2e8f1-33b7-4d9a-b0e5-7f1c2d4a8e3b status: experimental description: Detecta execução de Python com argumentos inline (-c) contendo padrões comuns de payload malicioso - módulos de socket, ctypes, subprocess ou invocação de funções de execução de bytecode. references: - T1059.006 logsource: category: process_creation product: windows detection: selection_python_inline: Image|endswith: - '\python.exe' - '\python3.exe' - '\pythonw.exe' CommandLine|contains: - ' -c ' selection_suspicious_modules: CommandLine|contains: - 'import socket' - 'import ctypes' - 'import subprocess' - 'import base64' - '__import__' - 'compile(' selection_temp_path: CommandLine|contains: - '\Temp\' - '\AppData\Local\Temp' - '/tmp/' - '/dev/shm/' condition: selection_python_inline and (selection_suspicious_modules or selection_temp_path) timeframe: 1m falsepositives: - Scripts legítimos de automação de TI usando Python inline - Ferramentas de desenvolvimento e CI/CD pipelines - Ambientes de ciência de dados com execução interativa level: medium tags: - attack.execution - attack.t1059.006 ``` ## Mitigação | Controle | Mitigação | Recomendação Prática para Organizações Brasileiras | |----------|-----------|-----------------------------------------------------| | [[m1047-audit\|M1047 - Audit]] | Auditoria de execução de intérpretes | Registrar toda execução de `python.exe` e `python3` com argumentos completos via Sysmon ou EDR. Criar baseline de uso legítimo por departamento - TI e dados usam Python rotineiramente; RH e financeiro provavelmente não. | | [[Antimalware]] | Detecção comportamental | Configurar EDR para sinalizar processos Python que estabelecem conexões de rede externas, especialmente fora do horário comercial. Soluções como CrowdStrike e SentinelOne têm detecções específicas para Python shells reversos. | | [[m1033-limit-software-installation\|M1033 - Limit Software Installation]] | Restrição de instalação | Em estações de trabalho que não necessitam de Python (ex.: jurídico, RH, finanças), bloquear instalação via GPO ou MDM. No Brasil, muitas empresas instalam Python por padrão como dependência de outras ferramentas sem controle de acesso. | | [[m1038-execution-prevention\|M1038 - Execution Prevention]] | Prevenção de execução | Implementar Application Control (AppLocker/WDAC) para restringir execução de Python a caminhos autorizados. Bloquear execução de `.py` e `.pyc` a partir de diretórios temporários e de usuário sem aprovação explícita. | ## Threat Actors - [[g0067-apt37|APT37]] - grupo norte-coreano que utiliza scripts Python como droppers de segunda fase em campanhas de espionagem, frequentemente entregues via spear-phishing com anexos Office - [[g0060-bronze-butler|BRONZE BUTLER]] - APT jáponês que usa Python para automação de coleta de dados e exfiltração de propriedade intelectual de indústrias de manufatura e tecnologia - [[g0131-tonto-team|Tonto Team]] - grupo chinês que emprega implantes Python multiplataforma para manter persistência em ambientes heterogêneos com Windows e Linux - [[g0128-zirconium|ZIRCONIUM]] - APT chinês (APT31) que usa Python para proxying de tráfego C2 e comúnicações cifradas em campanhas de espionagem governamental - [[g0106-rocke|Rocke]] - grupo focado em cryptomining que distribui scripts Python para mineração de Monero em servidores Linux e instâncias de nuvem expostas, incluindo alvos no Brasil - [[g0095-machete|Machete]] - grupo hispanófono com foco em LATAM que usa Python como linguagem primária de seus implantes de espionagem militar e governamental - [[g1048-unc3886|UNC3886]] - grupo de espionagem chinês que explora vulnerabilidades em VMware ESXi e usa Python para persistência em hipervisores comprometidos - [[g1006-earth-lusca|Earth Lusca]] - APT chinês que utiliza Python em campanhas de espionagem contra governos e mídias em países asiáticos e LATAM - [[g0069-mango-sandstorm|MuddyWater]] - APT iraniano que frequentemente usa scripts Python como RATs leves e ferramentas de reconhecimento em campanhas contra governos do Oriente Médio - [[g1052-contagious-interview|Contagious Interview]] - campanha norte-coreana que disfarça malware Python como projetos de entrevista de emprego para desenvolvedores de software ## Software Associado - [[s0581-ironnetinjector|IronNetInjector]] - ferramenta que injeta código .NET usando Python como veículo de execução, usada em campanhas de espionagem contra alvos governamentais - [[s0547-dropbook|DropBook]] - backdoor Python que usa o Facebook e Simplenote como canais C2, dificultando detecção por proxies corporativos - [[s1218-virtualpie|VIRTUALPIE]] - backdoor Python leve usado pelo grupo [[g1048-unc3886|UNC3886]] em hosts VMware ESXi comprometidos para execução remota de comandos - [[s0196-punchbuggy|PUNCHBUGGY]] - downloader Python usado pelo grupo [[g0061-fin8|FIN8]] para baixar e executar payloads de segunda fase em ambientes POS - [[s0695-donut|Donut]] - ferramenta de geração de shellcode que pode encapsular scripts Python em formato injetável em memória de outros processos - [[s0681-lizar|Lizar]] - kit de ferramentas modular com componentes Python usado pelo grupo [[g0046-fin7|FIN7]] em ataques ao setor financeiro e varejo - [[s1217-virtualpita|VIRTUALPITA]] - backdoor Python usado em conjunto com [[s1218-virtualpie|VIRTUALPIE]] para persistência em hipervisores ESXi comprometidos - [[s0374-speakup|SpeakUp]] - backdoor Python para Linux que se propagou via vulnerabilidades em servidores de aplicação, incluindo Apache e ThinkPHP - [[s1187-regeorg|reGeorg]] - ferramenta de tunelamento web escrita em Python que cria proxies SOCKS dentro de servidores web comprometidos para movimentação lateral - [[s1032-pydcrypt|PyDCrypt]] - loader Python usado pelo grupo [[g1030-agrius|Agrius]] para descriptografar e executar payloads destrutivos em campanhas direcionadas --- *Fonte: [MITRE ATT&CK - T1059.006](https://attack.mitre.org/techniques/T1059/006)*