Impacket: o canivete suíço de ataques ao Active Directory

Ferramenta

Impacket: o canivete suíço de ataques ao Active Directory

Rodrigo ColissiRodrigo Colissi
04 de setembro de 20268 min de leitura
PentestMalwareThreat Intelligence

O que é

O Impacket é uma suíte de código aberto escrita em Python que dá acesso de baixo nível aos protocolos de rede do Windows — SMB (protocolo de compartilhamento de arquivos e execução remota), MS-RPC (chamadas de procedimento remoto usadas por serviços Windows), Kerberos (protocolo de autenticação por tickets), LDAP (protocolo de consulta a diretórios) e NetBIOS — com implementações completas desses protocolos, e não apenas pacotes avulsos. Criado originalmente pela Core Security e mantido hoje pela Fortra, o projeto reúne mais de 68 scripts prontos que transformam a biblioteca em um canivete suíço para pentest, pós-exploração e avaliação de segurança em ambientes Active Directory (serviço de diretórios da Microsoft que gerencia usuários, computadores e permissões de uma rede corporativa). O mesmo poder que o torna indispensável em testes de invasão o torna um dos conjuntos de ferramentas mais abusados por grupos de ransomware e APTs (Advanced Persistent Threats, ameaças persistentes e sofisticadas): o MITRE ATT&CK, a base de conhecimento de táticas de ataque, cataloga o Impacket como software malicioso sob o código S0357, associado a grupos como APT41, Ember Bear e Scattered Spider.

Principais características

CaracterísticaDetalhe
ProtocolosSMB 1/2/3, MS-RPC (DCE/RPC), Kerberos v5, LDAP, NetBIOS, TDS (MSSQL)
AutenticaçãoNTLM e Kerberos, com senha, hash, ticket ou chave AES
LinguagemPython 3.9 a 3.13, instalável via pip ou pipx
LicençaApache (modificada), open source
Scripts inclusos68+ exemplos, de extração de credenciais a ataques Kerberos
ManutençãoFortra (ex-Core Security / SecureAuth)

Os scripts mais conhecidos formam um mapa das fases de um ataque a redes Windows:

ScriptFunção principalTécnica ATT&CK
secretsdump.pyExtrai hashes e segredos remotos (SAM, NTDS.dit, LSA)T1003 (dumping de credenciais)
psexec.py, smbexec.py, wmiexec.py, atexec.pyExecução remota de comandosT1021.002, T1047
GetUserSPNs.pyKerberoasting (coleta de tickets de serviço)T1558.003
GetNPUsers.pyAS-REP Roasting (contas sem pré-autenticação)T1558.004
ntlmrelayx.pyRelay de autenticação NTLM (SMB, HTTP, LDAP)T1557, T1021
ticketer.py, getST.py, getTGT.pyCriação e manipulação de tickets KerberosT1558.001, T1558.005
smbserver.pyServidor SMB para transferir arquivosT1570 (transferência lateral)
GetADUsers.py, net.pyEnumeração de usuários e grupos via LDAP/SAMRT1087

Casos de uso práticos

A instalação é direta e funciona em qualquer distribuição Linux, inclusive no Kali Linux, que já empacota os scripts no metapacote impacket-scripts:

python3 -m pipx install impacket
# ou via pip
python3 -m pip install impacket

Extração de credenciais com secretsdump

O secretsdump.py é o script mais famoso da suíte. Com credenciais de um usuário com privilégios, ele consegue despejar hashes (impressões digitais criptográficas da senha) do SAM (banco de senhas locais do Windows), do NTDS.dit (banco de credenciais do Active Directory) e dos segredos LSA (segredos de serviços e contas do sistema) diretamente pela rede — incluindo o ataque DCSync, que simula uma réplica do controlador de domínio para extrair todas as senhas do domínio:

secretsdump.py dominio/usuario:senha@192.168.1.10
 
# pass-the-hash: autenticar com o hash NTLM, sem saber a senha
secretsdump.py -hashes :aad3b435b51404eeaad3b435b51404ee dominio/administrador@192.168.1.10

Kerberoasting com GetUserSPNs

O Kerberoasting explora contas de serviço com Service Principal Names (SPNs) — identificadores que associam um serviço a uma conta no domínio. O script solicita um ticket de serviço (TGS) criptografado com a senha da conta de serviço; esse ticket sai da rede e é quebrado offline com ferramentas de força bruta:

GetUserSPNs.py dominio/usuario:senha -dc-ip 192.168.1.10 -request -outputfile kerberoast.txt

AS-REP Roasting com GetNPUsers

Contas com a opção "não exigir pré-autenticação Kerberos" — o primeiro passo de autenticação no protocolo — devolvem um ticket criptografado com a própria senha do usuário, sem necessidade de senha para solicitá-lo. O GetNPUsers lista essas contas e exporta os tickets para quebra offline:

GetNPUsers.py dominio/ -usersfile usuarios.txt -dc-ip 192.168.1.10 -format john -outputfile asrep.txt

Execução remota e movimentação lateral

Com credenciais válidas — senha ou hash, em um movimento conhecido como pass-the-hash (autenticação usando o hash NTLM em vez da senha) — os scripts de execução remota entregam um shell sem precisar de um agente instalado. O psexec.py cria um serviço temporário via SMB, o wmiexec.py usa WMI (Windows Management Instrumentation, a interface de gerenciamento do Windows) e o smbexec.py executa por meio de um share administrativo:

psexec.py dominio/usuario:senha@192.168.1.50
wmiexec.py dominio/usuario:senha@192.168.1.50
smbexec.py -hashes :hash_nth dominio/administrador@192.168.1.50

Relay de autenticação com ntlmrelayx

O ntlmrelayx.py intercepta tentativas de autenticação NTLM capturadas na rede — por exemplo, pelo Responder (ferramenta que envenena consultas de resolução de nomes para capturar credenciais) — e as retransmite para outros servidores. Se a máquina alvo não exigir assinatura SMB (validação criptográfica das mensagens), o atacante autentica nela com as credenciais da vítima sem nunca conhecer a senha:

ntlmrelayx.py -t 192.168.1.50 -smb2support
# relay para LDAP, permitindo abusar de permissões de delegação
ntlmrelayx.py -t ldap://192.168.1.10 --delegate-access

Servidor SMB para transferência de arquivos

Durante a pós-exploração, o smbserver.py monta um compartilhamento SMB no host do atacante para servir payloads e coletar arquivos da vítima:

smbserver.py SHARE /tmp/payloads

O Impacket no Brasil: o caso BREEZE COMET

O Impacket não é só teoria de laboratório — ele apareceu recentemente em uma campanha contra bancos brasileiros. Segundo o Google Cloud Threat Intelligence, o grupo hacker BREEZE COMET baixou o Impacket e outras ferramentas do GitHub e as executou em memória via PowerShell para reconhecimento, enumeração e escalonamento de privilégios dentro das redes de instituições financeiras no Brasil (veja a análise da campanha BREEZE COMET). Esse padrão — ferramentas legítimas de pentest usadas como armas — é o mesmo observado em operações do grupo russo Ember Bear, da APT41 e do Scattered Spider, todos com uso de Impacket documentado pelo MITRE ATT&CK.

Como se defender e riscos

Assinatura SMB obrigatória. Exigir assinatura SMB em todos os clientes e servidores neutraliza a maioria dos ataques de relay do ntlmrelayx, incluindo o relay para o próprio controlador de domínio. No Windows 11 24H2 e no Windows Server 2025 a assinatura já é obrigatória por padrão — mantenha essa configuração.

Monitoramento de eventos Windows. Grande parte do uso do Impacket deixa rastros em logs: criação de serviços (eventos 7045 e 4697), execução de processos incomuns via WMI (evento 4688 com linha de comando), solicitações de tickets Kerberos com criptografia RC4 (evento 4769 com tipo de criptografia 0x7) e conexões SMB em shares administrativos (evento 5145). Um SOC que correlaciona esses eventos detecta movimentação lateral antes que ela vire domínio comprometido.

Regras Sigma e SIEM. Existem regras Sigma públicas — formato aberto de regras de detecção para SIEMs — específicas para os padrões do Impacket: a assinatura de serviço do smbexec, a execução via WMI e os requests RC4 de Kerberoasting. Importá-las no SIEM dá detecção imediata sem esperar um EDR.

Mitigações de Kerberos. Desativar o RC4-HMAC (algoritmo de criptografia legado do Kerberos) inviabiliza boa parte do Kerberoasting, e usar contas gMSA (Group Managed Service Accounts, contas de serviço com senha rotacionada automaticamente) elimina as senhas fracas de serviço que o ataque explora. Exigir pré-autenticação em todas as contas de usuário encerra o AS-REP Roasting.

Menor privilégio e segmentação. Contas com privilégios administrativos locais em várias máquinas dão ao Impacket um raio de movimentação enorme. Segmentar a rede, usar contas dedicadas para administração e aplicar LAPS (solução que rotaciona a senha do administrador local de cada máquina) limitam o que um único hash comprometido permite fazer.

Proteção das bases de credenciais. O DCSync depende de uma conta com permissões de replicação do domínio — restrinja esse direito e monitore quem o possui. No caso de comprometimento, trate os hashes extraídos como senhas em texto puro: todos precisam ser rotacionados.

Risco de falso positivo. O Impacket é dual-use: mais da metade das detecções registradas pelo Red Canary foram marcadas pelos próprios clientes como testes legítimos de segurança. Antes de investigar um incidente a fundo, correlacione os alertas com janelas de pentest autorizadas e contas de serviço conhecidas — caçar Impacket sem esse contexto gera ruído e cansa a equipe.

Conclusão

O Impacket é a prova de que ferramentas de pentest e armas de APTs são frequentemente as mesmas: o que dá a um testador de invasão acesso a um Active Directory inteiro dá a um grupo de ransomware o mesmo caminho. Dominar seus scripts é essencial para quem atua em segurança ofensiva — e conhecer seus padrões de comportamento é igualmente essencial para quem defende, porque o mesmo conhecimento que permite usar psexec e secretsdump permite reconhecê-los nos logs antes que a rede inteira seja comprometida.

Fontes e leituras adicionais

Gostou? Receba novos conteúdos por e-mail.

Entre na comunidade

Discussões técnicas e novidades em primeira mão.