rustPacket is a collection of offensive and defensive network security tools written in Rust, inspired by the popular Python toolkit Impacket and its version in Golang, goPacket (https://github.com/mandiant/gopacket). It provides high-performance, memory-safe implementations of common Active Directory enumeration, Kerberos attacks, LDAP querying, and lateral movement utilities.
rustPacket is designed for penetration testers, red teamers, and security researchers who need reliable, fast tools for Active Directory assessments.
Please note, this is a beta version of the tools. We are aware that not all tools or functionalities are available, too many tokens have been spent :)
- Kerberoasting — Extract service account credentials via SPN enumeration
- AS-REP Roasting — Exploit users without Kerberos pre-authentication
- getTGT — Request and export Kerberos Ticket Granting Tickets (TGT)
- getST — Request and export Kerberos Service Tickets (ST) for specific services
- getPAC — Extract and analyze Privilege Attribute Certificate (PAC) from Kerberos tickets
- GetADComputers — Enumerate and retrieve computer objects from Active Directory
- GetADUsers — List AD users and extract detailed attribute information
- GetNPUsers — Identify users without Kerberos pre-authentication requirements
- GetUsersSPN — Enumerate Service Principal Names (SPNs) for user accounts
- findDelegation — Identify and enumerate delegation configurations in Active Directory
- LDAPCheckStatus — Verify LDAP service availability and connectivity
- ping — ICMP ping utility for host discovery and connectivity testing
- ping6 — ICMPv6 ping utility for IPv6 network host discovery
- sniff — Capture and analyze network traffic packets in real-time
- sniffer — Advanced packet sniffer for detailed network traffic inspection
- lookupsid — Perform reverse SID lookups to resolve usernames and group names
- samrdump — Extract local account information via SAM-R protocol
- smbclient — SMB client for file sharing enumeration and lateral movement
- RBCD — Exploit Resource-Based Constrained Delegation misconfigurations
- mssqclient — SQL Server client for database interaction and privilege escalation
git clone https://github.com/ivancabrera02/rustPacket.git
cd rustPacket/<project>
cargo build --releaseBinaries will be available at target/release/.
- Rust 1.70+
- Network access to the target environment
- Valid domain credentials (for most tools)
| Tool | Description |
|---|---|
| GetADComputers | Enumerates and retrieves information about computers in Active Directory |
| GetADUsers | Lists Active Directory users and their attributes |
| GetNPUsers | Identifies AD users without Kerberos pre-authentication requirement |
| GetUsersSPN | Searches and enumerates Service Principal Names (SPNs) for AD users |
| lookupsid | Performs reverse SID lookups to obtain usernames and group names |
| samrdump | Extracts local account information using the SAM-R protocol |
| smbclient | SMB client for enumerating network shares and resources |
| getTGT | Obtains Kerberos Ticket Granting Tickets (TGT) |
| getST | Requests and exports Kerberos Service Tickets (ST) for specific services |
| getPAC | Extracts and analyzes Privilege Attribute Certificate (PAC) from Kerberos tickets |
| findDelegation | Identifies and enumerates delegation configurations in Active Directory |
| ping | ICMP ping utility for network host discovery and connectivity testing |
| ping6 | ICMPv6 ping utility for IPv6 network host discovery |
| sniff | Captures and analyzes network traffic packets in real-time |
| sniffer | Advanced packet sniffer for detailed network traffic inspection |
| rbcd | Exploits Resource-Based Constrained Delegation (RBCD) configurations |
| mssqclient | Client for interacting with SQL Server databases |
| LDAPCheckStatus | Verifies the status and availability of LDAP services |
Contributions are welcome! If you'd like to add a new tool or improve an existing one:
- Fork the repository
- Create your feature branch
- Write your code and tests
- Commit your changes (
git commit -m 'Add new-tool') - Push to the branch (
git push origin feature/new-tool) - Open a Pull Request