Impacket is a collection of Python classes for working with network protocols.
Impacket provides low-level programmatic access to network protocol packets and implements several protocols in full, particularly SMB1-3 and MSRPC. It allows packets to be constructed from scratch or parsed from raw data through an object-oriented API designed to handle deep protocol hierarchies. The library covers a wide range of protocols including Ethernet, IP, TCP, UDP, ICMP, IGMP, ARP, NMB, SMB variants, MSRPC over multiple transports, and partial implementations of TDS and LDAP. Authentication support includes plain, NTLM, and Kerberos methods using passwords, hashes, tickets, or keys. The tool ships with example utilities demonstrating practical applications of the library.
Impacket suits developers and security researchers who need programmatic control over network protocol interactions at a low level. It is particularly valuable for those working with Windows network protocols, SMB operations, and MSRPC interfaces. The library's strength lies in its comprehensive protocol coverage and flexibility in both constructing and parsing packets, making it suitable for security testing, protocol analysis, and network tool development where direct protocol manipulation is required.
The project maintains an active test suite using pytest, tox, and coverage tooling across supported Python versions. Development occurs on a master branch alongside stable releases, with a comprehensive testing guide provided for contributors. The codebase demonstrates sustained maintenance with organized test infrastructure and clear documentation of testing procedures.