Impacket is a powerful collection of Python classes designed to work with various network protocols, providing low-level access to packet construction and parsing.
Originally developed by SecureAuth and now maintained by Fortra’s Core Security, Impacket offers a versatile toolset for security researchers and educators to explore network protocol implementations.
Key Features Of Impacket
- Protocol Support: Impacket supports a wide range of protocols, including Ethernet, IP, TCP, UDP, ICMP, IGMP, ARP, and both IPv4 and IPv6. It also includes high-level implementations for SMB1-3 and MSRPC version 5, with support for different transports like TCP, SMB/TCP, SMB/NetBIOS, and HTTP.
- Authentication Methods: The library supports plain, NTLM, and Kerberos authentications using passwords, hashes, tickets, or keys.
- MSRPC Interfaces: Impacket includes portions or full implementations of several MSRPC interfaces such as EPM, DTYPES, LSAD, LSAT, NRPC, RRP, SAMR, SRVS, WKST, SCMR, BKRP, DHCPM, EVEN6, MGMT, SASEC, TSCH, DCOM, WMI, OXABREF, NSPI, and OXNSPI.
- Additional Protocols: It also provides partial implementations of TDS (MSSQL) and LDAP protocols.
To start using Impacket, you can install the latest stable version using pipx
:
bashpython3 -m pipx install impacket
For experimenting with the latest development version, you can download it from the master branch and install it locally:
bashpython3 -m pipx install .
Impacket also supports Docker, allowing you to build and run its image for a containerized environment:
bashdocker build -t "impacket:latest" .
docker run -it --rm "impacket:latest"
Impacket uses the pytest framework for testing, tox for automation across Python versions, and coverage for statistics.
The library is licensed under a modified Apache Software License, emphasizing its use for research and educational purposes rather than production environments.
Impacket is a valuable tool for anyone interested in network protocol manipulation and analysis.
Its extensive protocol support and flexible API make it an ideal choice for security researchers and educators looking to explore network protocol implementations in depth.