# 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)*