---
name: mitre_attack_mapping
phase: 6_reporting
tools: [python, markdown]
dependencies: [vulnerabilities_identified]
mitre_tactic: N/A
---

# Objetivo
Mapear todas as vulnerabilidades, técnicas e táticas utilizadas durante o pentest para o framework MITRE ATT&CK, fornecendo uma visão padronizada das ameaças para a equipe de defesa (Blue Team).

# Condições de Execução
- O pentest foi concluído e todas as vulnerabilidades e técnicas de exploração foram registradas no Knowledge Graph ou arquivos de resultados.

# Comandos e Sintaxe

## 1. Extrair Técnicas Utilizadas
O agente deve ler o log de execução e identificar quais táticas e técnicas foram bem-sucedidas.
```bash
# Exemplo de script Python para gerar a tabela MITRE
cat << 'EOF' > {workspace}/generate_mitre.py
import json

# Dicionário de mapeamento (Vulnerabilidade -> MITRE)
mitre_map = {
    "SQL Injection": {"tactic": "TA0001 (Initial Access)", "technique": "T1190 (Exploit Public-Facing Application)"},
    "Weak Password": {"tactic": "TA0006 (Credential Access)", "technique": "T1110 (Brute Force)"},
    "SUID Privilege Escalation": {"tactic": "TA0004 (Privilege Escalation)", "technique": "T1548.001 (Setuid and Setgid)"},
    "Pass the Hash": {"tactic": "TA0008 (Lateral Movement)", "technique": "T1550.002 (Pass the Hash)"},
    "Webshell Upload": {"tactic": "TA0003 (Persistence)", "technique": "T1505.003 (Web Shell)"}
}

# Ler vulnerabilidades encontradas (simulado)
with open("vulnerabilities.txt", "r") as f:
    vulns = f.read().splitlines()

print("| Tática (Tactic) | Técnica (Technique) | ID | Vulnerabilidade Associada |")
print("|---|---|---|---|")
for vuln in vulns:
    if vuln in mitre_map:
        m = mitre_map[vuln]
        print(f"| {m['tactic']} | {m['technique'].split(' ')[1]} | {m['technique'].split(' ')[0]} | {vuln} |")
EOF

python3 {workspace}/generate_mitre.py > {workspace}/mitre_table.md
```

## 2. Gerar Matriz Visual (Opcional)
Se o cliente utilizar o MITRE ATT&CK Navigator, o agente pode gerar um arquivo JSON compatível.
```bash
# O agente deve formatar os IDs das técnicas em um JSON do Navigator
echo '{
  "name": "MundiX Pentest Results",
  "version": "4.3",
  "domain": "enterprise-attack",
  "techniques": [
    {"techniqueID": "T1190", "color": "#ff6666", "comment": "SQL Injection found on /login"},
    {"techniqueID": "T1110", "color": "#ff6666", "comment": "Admin password cracked"}
  ]
}' > {workspace}/mitre_navigator.json
```

# Análise de Resultados
- Verifique se a tabela gerada cobre toda a "kill chain" do ataque (desde o Initial Access até o Impact/Exfiltration).
- Se houver lacunas (ex: pulou direto para Privilege Escalation sem Initial Access claro), revise os logs para identificar a técnica inicial.

# Próximos Passos
- Insira a tabela gerada na seção 5 do relatório final (`generate_pentest_report`).
- Entregue o arquivo `mitre_navigator.json` como anexo ao relatório.

# Tratamento de Erros
- Se uma vulnerabilidade não tiver mapeamento direto no MITRE ATT&CK, mapeie para a técnica mais próxima ou categorize apenas a Tática.
