SECUREAUTH LABS. Copyright (C) 2022 SecureAuth Corporation. All rights reserved.
Impacket is a collection of Python classes for working with network protocols. Impacket is focused on providing low-level programmatic access to the packets and for some protocols (e.g. SMB1-3 and MSRPC) the protocol implementation itself. Packets can be constructed from scratch, as well as parsed from raw data, and the object-oriented API makes it simple to work with deep hierarchies of protocols. The library provides a set of tools as examples of what can be done within the context of this library.
A description of some of the tools can be found at SecureAuth Labs' Open Source Website.
What protocols are featured?
- Ethernet, Linux "Cooked" capture.
- IP, TCP, UDP, ICMP, IGMP, ARP.
- IPv4 and IPv6 Support.
- NMB and SMB1, SMB2 and SMB3 (high-level implementations).
- MSRPC version 5, over different transports: TCP, SMB/TCP, SMB/NetBIOS and HTTP.
- Plain, NTLM and Kerberos authentications, using password/hashes/tickets/keys.
- Portions/full implementation of the following MSRPC interfaces: EPM, DTYPES, LSAD, LSAT, NRPC, RRP, SAMR, SRVS, WKST, SCMR, BKRP, DHCPM, EVEN6, MGMT, SASEC, TSCH, DCOM, WMI, OXABREF, NSPI, OXNSPI.
- Portions of TDS (MSSQL) and LDAP protocol implementations.
Table of Contents
Impacket v0.10.1-dev (master branch)
In order to grab the latest stable release with
python3 -m pip install impacket
ℹ️This will make the Impacket library available to your Python code, but will not provide you with the example scripts.
Installing the library + example scripts
In order to install the library and the example scripts, download and extract the package, and execute the following command from the directory where the Impacket's release has been unpacked:
python3 -m pip install .
ℹ️This will install the library into the default Python modules path, where you can make use of the example scripts from the directory.
⚠️Make sure the example scripts you're using are consistent with the library version that's installed in your python environment. We recommend using virtual environments to make sure system-wide installations doesn't interfere with it.
Build Impacket's image:
$ docker build -t "impacket:latest" .
Using Impacket's image:
$ docker run -it --rm "impacket:latest"
The library leverages the pytest framework for organizing and marking test cases, tox to automate the process of running them across supported Python versions, and coverage to obtain coverage statistics.
A comprehensive testing guide is available.
This software is provided under a slightly modified version of the Apache Software License. See the accompanying LICENSE file for more information.
SMBv1 and NetBIOS support based on Pysmb by Michael Teo.
The spirit of this Open Source initiative is to help security researchers, and the community, speed up research and educational activities related to the implementation of networking protocols and stacks.
The information in this repository is for research and educational purposes and not meant to be used in production environments and/or as part of commercial products.
If you desire to use this code or some part of it for your own uses, we recommend applying proper security development life cycle and secure coding practices, as well as generate and track the respective indicators of compromise according to your needs.
Whether you want to report a bug, send a patch, or give some suggestions on this package, drop us a few lines at email@example.com.
For security-related questions check our security policy.