# Impacket
> [!warning] Toolkit de Duplo Uso - Essencial em Post-Exploitation
> Impacket e o toolkit Python de protocolos Windows mais utilizado tanto por pentesters quanto por atacantes em operações de pos-exploração. Sua versatilidade para execução remota, dump de credenciais e ataques Kerberos sem precisar de um ambiente Windows dedicado o torna indispensavel. O [[g1016-fin13|FIN13]] usou Impacket extensivamente em operações de intrusão prolongada contra organizacoes financeiras no Mexico e LATAM.
## Visão Geral
[[s0357-impacket|Impacket]] e uma coleção de módulos Python de código aberto para construcao e manipulação programatica de protocolos de rede Windows - SMB, WMI, Kerberos, MSRPC, LDAP, DCERPC e mais. Originalmente desenvolvida pela Core Security (2012), agora mantida pela **Fortra** no GitHub (`fortra/impacket`).
A diferenca critica do Impacket para outras ferramentas e que opera em **Python puro**, independente de Windows. Um atacante em uma maquina Linux pode executar comandos remotos em um Windows alvo, despejar o Active Directory inteiro, ou realizar ataques Kerberos sem precisar de uma estacao Windows de salto. Isso torna o Impacket particularmente valioso em operações de red team e extremamente popular entre grupos de APT e ransomware em pos-exploração.
Em 2024, o secretsdump.py recebeu uma atualização importante: suporte a **criação de VSS (Volume Shadow Copy) via WMI remotamente**, permitindo dump do NTDS.dit sem passar pelo LSASS - técnica que evade alguns controles de detecção voltados para acesso direto ao LSASS.
| Campo | Detalhe |
|-------|---------|
| **Tipo** | Post-Exploitation Toolkit / Protocol Library |
| **Linguagem** | Python |
| **Desenvolvedor** | Fortra (ex-Core Security) |
| **MITRE ID** | S0357 |
| **Plataformas** | Linux, macOS, Windows |
| **Repositorio** | github.com/fortra/impacket |
## Scripts Principais
### secretsdump.py - Dump de Credenciais
O script mais impactante do Impacket. Despejá credenciais de múltiplas fontes remotamente:
```bash
# DCSync - sem arquivo, extrai via replicacao de AD
secretsdump.py domain/admin:
[email protected]
# Via VSS (2024+) - cria shadow copy via WMI e extrai NTDS.dit
secretsdump.py domain/admin:
[email protected] -use-vss
# Com hash NTLM (pass-the-hash)
secretsdump.py -hashes :a9fdfa038c4b75ebc76dc855dd74f0da domain/
[email protected]
```
Extrai: hashes LSASS, SAM, NTDS.dit, segredos LSA (senhas de servico, credenciais de dominio cached).
### psexec.py - Execução Remota via SMB
```bash
# Upload de executavel anonimo em ADMIN$ e criação de servico Windows
psexec.py domain/admin:password@target cmd.exe
```
Comportamento: cria um executavel com nome aleatorio em `C:\Windows`, registra como servico, executa, remove. Gera Event ID 7045 (servico criado) - fortemente monitorado por EDRs.
### wmiexec.py - Execução via WMI (stealth)
```bash
# Nenhum arquivo gravado em disco, nenhum servico criado
wmiexec.py domain/admin:password@target
```
Mais stealth que psexec: usa WMI para execução de comandos via shell semi-interativo. Saida redirecionada para arquivo temporario em ADMIN$ que e lido e deletado. Gera Event ID 5857/5858 (WMI activity).
### GetUserSPNs.py - Kerberoasting
```bash
# Lista SPNs registrados e solicita TGS tickets para cracking offline
GetUserSPNs.py -request domain/user:password -dc-ip <DC_IP>
```
Kerberoasting (T1558.003): qualquer usuario autenticado pode solicitar tickets de servico (TGS) para contas com SPN. Os tickets podem ser quebrados offline para obter a senha da conta de servico.
### smbclient.py - Cliente SMB
```bash
# Enumeracao e transferencia de arquivos via SMB
smbclient.py domain/user:password@target
```
Usado para enumeracao de compartilhamentos, transferencia de ferramentas para sistemas alvo e configuração de ataques de relay.
## Attack Flow - Uso em Intrusão
```mermaid
graph TB
A["🔓 Acesso com Credencial<br/>Usuario de dominio obtido<br/>via phishing / spray"] --> B["🔍 Enumeracao LDAP<br/>GetUserSPNs.py<br/>Contas de servico com SPN"]
B --> C["🎫 Kerberoasting<br/>TGS tickets solicitados<br/>Cracking offline"]
C --> D["⬆️ Escalada de Privilegio<br/>Conta de servico com DA<br/>ou acesso privilegiado"]
D --> E["💾 DCSync / NTDS Dump<br/>secretsdump.py<br/>Todos os hashes do dominio"]
E --> F["↔️ Movimento Lateral<br/>psexec.py / wmiexec.py<br/>Pass-the-Hash"]
F --> G["💀 Impacto<br/>Ransomware / Exfiltração<br/>Controle total do dominio"]
classDef initial fill:#e74c3c,stroke:#c0392b,color:#fff
classDef recon fill:#f39c12,stroke:#d68910,color:#fff
classDef cred fill:#2980b9,stroke:#1a5276,color:#fff
classDef priv fill:#8e44ad,stroke:#7d3c98,color:#fff
classDef lateral fill:#27ae60,stroke:#1e8449,color:#fff
classDef impact fill:#c0392b,stroke:#922b21,color:#fff
class A initial
class B recon
class C,D,E cred
class F lateral
class G impact
```
## Timeline
```mermaid
timeline
title Impacket - Adocao e Evolução
2012 : Lancamento pela Core Security
: Foco inicial em protocolos SMB/MSRPC
2014 : Kerberoasting implementado via GetUserSPNs
: Adocao crescente em red team
2016 : DCSync via secretsdump
: Alternativa ao Mimikatz para dump de AD
2018 : Adocao por APTs - APT41, Dragonfly
: Impacket aparece em investigacoes de IR
2020 : FIN13 usa Impacket em operacoes LATAM
: Elephant Beetle abusa por meses sem detecção
2022 : Storm-0501 e Storm-1811 adotam toolkit
: Paired com Cobalt Strike em ransomware
2024 : secretsdump + VSS via WMI (evasão EDR)
: Ainda top ferramenta em Red Canary reports
2025 : Persistência como standard de pos-exploração
: Preferido sobre Cobalt Strike em ambientes EDR
```
## TTPs Mapeados
| Tática | Técnica | Script / Uso |
|--------|---------|-------------|
| Acesso a Credenciais | [[t1003-003-ntds\|T1003.003]] | `secretsdump.py` - extrai NTDS.dit via DCSync ou VSS |
| Acesso a Credenciais | [[t1003-001-lsass-memory\|T1003.001]] | `secretsdump.py` - dump remoto de LSASS |
| Acesso a Credenciais | [[t1003-002-security-account-manager\|T1003.002]] | `secretsdump.py` - extrai SAM remotamente |
| Acesso a Credenciais | [[t1003-004-lsa-secrets\|T1003.004]] | `secretsdump.py` - segredos LSA (senhas de servico) |
| Acesso a Credenciais | [[t1558-003-kerberoasting\|T1558.003]] | `GetUserSPNs.py` - solicita TGS para cracking offline |
| Acesso a Credenciais | [[t1558-005-ccache-files\|T1558.005]] | Manipulação de ccache para importar tickets |
| Execução | [[t1569-002-service-execution\|T1569.002]] | `psexec.py` / `smbexec.py` - execução via servico SMB |
| Execução | [[t1047-windows-management-instrumentation\|T1047]] | `wmiexec.py` - execução via WMI remoto |
| Movimento Lateral | [[t1021-002-smbwindows-admin-shares\|T1021.002]] | Acesso a ADMIN$ e IPC$ para execução remota |
| Movimento Lateral | [[t1570-lateral-tool-transfer\|T1570]] | Transferencia de ferramentas via SMB entre hosts |
| Sniffing | [[t1040-network-sniffing\|T1040]] | `sniffer6.py` - captura de trafego de rede |
| NTLM Relay | [[t1557-001-llmnrnbt-ns-poisoning-and-smb-relay\|T1557.001]] | `ntlmrelayx.py` - relay de autenticação NTLM |
## Relevância LATAM/Brasil
O [[g1016-fin13|FIN13]] (também conhecido como Elephant Beetle, G1016) e um grupo criminoso financeiramente motivado com foco extensivo no Mexico e LATAM desde 2016. O FIN13 **utilizou extensivamente o Impacket** em operações de intrusão prolongada, permanecendo em redes de organizacoes financeiras e de varejo por meses ou anos:
- `secretsdump.py` para extrair NTDS.dit de Domain Controllers e descriptografar localmente
- Combinado com [[mimikatz|Mimikatz]], ProcDump e PWdump7 para extração de LSASS/SAM
- `wmiexec.py` para execução remota de comandos sem criar arquivos em disco
- Transacoes financeiras fraudulentas via acesso a sistemas POS e ATM
O Impacket foi central para o modus operandi do FIN13: **intrusão silenciosa e longa duracao** antes de qualquer acao de impacto, aproveitando credenciais de dominio para movimento lateral progressivo por toda a infraestrutura financeira alvo.
Alem do FIN13, grupos de ransomware que operam no [[financial|setor financeiro]] e [[government|governamental]] brasileiro usam Impacket como parte padrao do playbook de pos-comprometimento junto com [[s0154-cobalt-strike|Cobalt Strike]] ou [[brute-ratel-c4|Brute Ratel C4]].
## Detecção e Defesa
**Event IDs prioritarios:**
- **Windows Event ID 7045 (New Service Installed):** Servico com nome aleatorio criado por `psexec.py` ou `smbexec.py` - nome de executavel em `C:\Windows` com caracteres aleatorios.
- **Windows Event ID 5145 (Network Share Object Access):** Acesso a `IPC
seguido de criação de servico - padrao de psexec. Acesso a `ADMIN
por Python.exe ou processos inesperados.
- **Windows Event ID 4769 (Kerberos Service Ticket):** Solicitacoes TGS com tipo de criptografia `0x17` (RC4-HMAC) oriundo de conta de usuario (nao de computador) - Kerberoasting via `GetUserSPNs.py`.
- **Windows Event ID 8222 (VSS Shadow Copy):** Criação de shadow copy remotamente seguida de acesso a `\Volume{...}\Windows\NTDS\ntds.dit` - secretsdump via VSS (update 2024).
- **Sysmon Event ID 3 (NetworkConnect):** Conexoes SMB (porta 445) ou WMI (porta 135) originadas de `python.exe` ou `python3.exe` - uso direto do Impacket sem wrapper.
**Regras Sigma:**
- `proc_creation_win_impacket_tools.yml` - detecta execução de ferramentas Impacket via IMPHASH e padroes de command-line.
- `win_susp_smb_impacket_secretsdump.yml` - acesso remoto a registro SAM/LSA via SMB.
- Correlação: Event ID 4769 com tipo RC4 para SPNs de servico - Kerberoasting indicator.
**Mitigacoes:**
- Implementar **Kerberos AES** e desabilitar RC4-HMAC para contas de servico (elimina Kerberoasting eficaz).
- Habilitar **SMB Signing** obrigatorio para bloquear NTLM relay via `ntlmrelayx.py`.
- Configurar **Protected Users Security Group** para contas administrativas - previne delegacao Kerberos e WDigest.
- Monitorar acesso a ADMIN$ e IPC$ de fontes nao-administrativas; alertar em criação de servico por processos Python.
## Referências
- [1](https://attack.mitre.org/software/S0357) MITRE ATT&CK S0357
- [2](https://github.com/fortra/impacket) GitHub fortra/impacket - repositorio oficial
- [3](https://redcanary.com/threat-detection-report/threats/impacket/) Red Canary - Impacket Threat Report 2024
- [4](https://cloud.google.com/blog/topics/threat-intelligence/fin13-cybercriminal-mexico/) Mandiant - FIN13 uso de Impacket no Mexico
- [5](https://attack.mitre.org/groups/G1016/) MITRE ATT&CK - FIN13 (G1016)
- [6](https://reliaquest.com/blog/exploring-impacket-abuse/) ReliaQuest - Impacket Abuse Patterns 2024
- [7](https://neil-fox.github.io/Impacket-usage-&-detection/) Neil Fox - Impacket Usage and Detection
- [8](https://www.cisa.gov/news-events/cybersecurity-advisories/aa24-038a) CISA AA24-038A - Impacket em operações APT iraniano