# IronNetInjector
> [!danger] BYOI - Turla Toolchain via IronPython
> Toolchain do [[g0010-turla|Turla]] (Snake/Uroburos) que implementa BYOI (Bring Your Own Interpreter) - usa IronPython (.NET) para executar scripts Python que injetam o [[s0126-comrat|ComRAT]] em processos legítimos como `explorer.exe`. Técnica sofisticada que evade detecção por AV/EDR baseada em execução de Python nativo.
## Visão Geral
**IronNetInjector** é uma toolchain desenvolvida pelo [[g0010-turla|Turla]] que combina o interpretador IronPython (implementação .NET do Python) com um injector .NET para carregar e executar payloads maliciosos - principalmente o [[s0126-comrat|ComRAT]] v4 - via injeção em processos legítimos do Windows.
A abordagem BYOI (Bring Your Own Interpreter) é a característica central: em vez de usar o executável Python padrão (`python.exe`) - facilmente detectado por EDRs - o Turla empacota o runtime IronPython dentro do toolchain, tornando-o um assembly .NET que opera via `ipy.exe` (IronPython interpreter) ou como biblioteca embutida. Scripts Python maliciosos são armazenados cifrados com algoritmo Rijndael e descriptografados em runtime.
A análise do Unit 42 (Palo Alto) em 2021 revelou o funcionamento interno completo: o IronNetInjector identifica o processo `explorer.exe`, injeta o ComRAT como DLL via injeção reflexiva, e registra sua atividade em `%PUBLIC%\Metadata.dat`.
**Plataformas:** Windows
## Como Funciona
O IronNetInjector opera em três estágios:
**Estágio 1 - Loader .NET:**
- Assembly .NET carrega o runtime IronPython
- Descriptografa scripts Python cifrados com Rijndael
- Executa o script Python no contexto do IronPython embutido
**Estágio 2 - Python Injector Script:**
- Script Python usa ctypes/win32api para chamar APIs Windows nativas
- Enumera processos em execução (T1057) para encontrar `explorer.exe`
- Injeta o payload (ComRAT DLL) via DLL injection reflexiva (T1055.001)
- Arquivo de log: `%PUBLIC%\Metadata.dat` registra estado da injeção
**Estágio 3 - ComRAT em explorer.exe:**
- [[s0126-comrat|ComRAT]] v4 executado no contexto de `explorer.exe`
- C2 via Gmail (protocolo HTTP para webmail do Google)
- Persistência via Scheduled Task disfarçada como tarefa de sistema (T1036.004)
## Uso Ofensivo
```mermaid
graph TB
A["📁 Arquivo cifrado<br/>IronPython + payload Rijndael"] --> B["⚙️ Assembly .NET<br/>IronNetInjector loader"]
B --> C["🐍 IronPython runtime<br/>embutido - BYOI"]
C --> D["📜 Script Python<br/>descriptografado em runtime"]
D --> E["🔍 Process Discovery<br/>Encontra explorer.exe"]
E --> F["💉 DLL Injection<br/>ComRAT em explorer.exe"]
F --> G["📡 ComRAT C2<br/>Gmail / Gmail API"]
G --> H["📊 Log atividade<br/>%PUBLIC%\\Metadata.dat"]
```
**Cadeia completa Turla - persistência e C2:**
```mermaid
graph TB
A["🎯 Alvo comprometido<br/>Governo / Diplomacia"] --> B["🔑 Acesso inicial<br/>Spear-phishing / watering hole"]
B --> C["📦 IronNetInjector<br/>dropper instalado"]
C --> D["⏰ Scheduled Task<br/>Disfarçada como sistema"]
D --> E["🔄 Execução periódica<br/>Injeção ComRAT em explorer"]
E --> F["📧 C2 via Gmail<br/>Caixa compartilhada"]
F --> G["🌍 Operador Turla<br/>Controle furtivo"]
```
## Timeline
| Ano | Evento |
|-----|--------|
| 2014 | [[g0010-turla\|Turla]] começa a usar o [[s0126-comrat\|ComRAT]] v4 como payload principal de espionagem |
| 2020 | IronNetInjector identificado como vetor de entrega do ComRAT |
| 2021-02 | Unit 42 (Palo Alto Networks) pública análise detalhada do IronNetInjector toolchain |
| 2021 | ESET documenta [[g0010-turla\|Turla]] usando IronNetInjector em campanhas contra governos europeus |
| 2022 | NSA/CISA públicam advisory sobre operações Turla incluindo toolchain IronPython |
| 2023 | Turla detectado em campanhas contínuas com variantes da toolchain IronPython |
## TTPs
| ID | Nome | Uso pelo IronNetInjector |
|----|------|-------------------------|
| [[t1059-006-python\|T1059.006]] | Python | IronPython runtime embutido - BYOI para execução de scripts |
| [[t1055-001-dynamic-link-library-injection\|T1055.001]] | DLL Injection | ComRAT injetado reflexivamente em explorer.exe |
| [[t1055-process-injection\|T1055]] | Process Injection | Injeção genérica em processos legítimos do sistema |
| [[t1057-process-discovery\|T1057]] | Process Discovery | Enumeração de processos para encontrar alvo de injeção |
| [[t1036-004-masquerade-task-or-service\|T1036.004]] | Masquerade Task | Scheduled Task com nome de tarefa legítima do Windows |
| [[t1053-005-scheduled-task\|T1053.005]] | Scheduled Task | Persistência via tarefa agendada |
| [[t1140-deobfuscatedecode-files-or-information\|T1140]] | Deobfuscaté Files | Descriptografia Rijndael do script Python em runtime |
| [[t1027-013-encryptedencoded-file\|T1027.013]] | Encrypted File | Scripts Python cifrados com Rijndael no artefato |
## Atores que Utilizam
- [[g0010-turla|Turla]] (Snake / Uroburos / Waterbug) - desenvolvedor e único utilizador documentado
## Relevância LATAM/Brasil
O [[g0010-turla|Turla]] é um grupo de espionagem do FSB russo com foco em governos, diplomacia, forças armadas e organizações de pesquisa. Embora o foco histórico sejá na Europa e no Oriente Médio, o Brasil - como potência regional com representações diplomáticas em todo o mundo - é um alvo de interesse estratégico. Escritórios de embaixadas e missões diplomáticas brasileiras em regiões de interesse do Turla são vetores de comprometimento documentados.
A técnica BYOI (Bring Your Own Interpreter) é particularmente relevante para organizações que dependem de detecção baseada em EDR: como o IronNetInjector usa um runtime Python completamente diferente do Python padrão do sistema (`python.exe`), regras baseadas em assinatura que detectam execução de Python podem não capturar a atividade. A detecção requer monitoramento comportamental de injeção de DLL em processos de sistema.
## Detecção
**Indicadores de comprometimento:**
- Assembly .NET executando scripts Python via IronPython sem `python.exe` em execução
- Arquivo `%PUBLIC%\Metadata.dat` criado ou modificado por processos não identificados
- DLL injetada em `explorer.exe` sem correspondência com carregamentos legítimos do Windows
- Scheduled Task criada com nome imitando tarefa de sistema (`\Microsoft\Windows\*`) sem origem de instalação conhecida
**Fontes de dados recomendadas:**
- **Sysmon Event ID 7 (ImageLoad):** DLL carregada em `explorer.exe` não assinada pela Microsoft
- **Sysmon Event ID 11 (FileCreaté):** Criação de `%PUBLIC%\Metadata.dat` por processo não esperado
- **Sysmon Event ID 1 (ProcessCreaté):** Assembly .NET carregando `ipy.exe` ou implementação IronPython
- **EDR - Process Injection:** Detecção de injeção reflexiva de DLL em processos de sistema (explorer, svchost)
- **Windows Event ID 4698:** Criação de Scheduled Task - auditar nomes suspeitos que imitam tarefas do sistema
**Regras de detecção:**
- Sigma: `proc_creation_win_ironpython_susp_exec.yml` - detecta execução IronPython em contextos suspeitos
- Sigma: `sysmon_dll_load_unsigned_in_explorer.yml` - DLL não-assinada carregada em explorer.exe
- Yara: Unit 42 públicou regras para strings do IronNetInjector (2021)
## Referências
- [1](https://attack.mitre.org/software/S0581) MITRE ATT&CK - S0581 IronNetInjector (2024)
- [2](https://unit42.paloaltonetworks.com/ironnetinjector/) Unit 42 - IronNetInjector: Turla's New Malicious Toolchain Uses IronPython (2021)
- [3](https://www.welivesecurity.com/2020/05/26/agentbtz-comratv4-turla-link/) ESET - ComRAT v4: A Sophisticated Espionage Tool (2020)
- [4](https://media.defense.gov/2023/Apr/18/2003197949/-1/-1/0/CSA_HUNTING_RUSSIAN_INTELLIGENCE_SNS_CREEPER.PDF) NSA/CISA - Hunting Russian Intelligence Snake Malware (2023)
- [5](https://attack.mitre.org/groups/G0010/) MITRE ATT&CK - G0010 Turla Group Profile (2024)