fortra

Impacket: Build and Parse Network Protocols with Python

Impacket is a Python library maintained by Fortra’s Core Security for low-level access to network protocols, including SMB and MSRPC. It helps developers and security researchers construct and parse packets and provides example tools.

Stars
16.2k
Forks
4k
Last commit
2 days ago
Contributors
100+
Releases, 12 months
1

Our take

Activeregular commits and releases

Health score

54/100

How it is scored
Activity
54
Community
78
Issues
43
Pull requests
39
  • More contributors than 78% of the projects we track
  • Merges more pull requests than 76% of the projects we track
  • Slower to close issues than 99% of the projects we track

Impacket is an actively maintained, broad protocol toolkit for Python, with frequent recent development and a large contributor base, though its maintainers explicitly frame it for research and education rather than production.

Good fit if

  • You need Python-level packet construction or parsing across protocols such as SMB, MSRPC, or Kerberos.
  • You are building security research or educational tooling and can work within its Python-based setup.
  • You want a project with recent commits and releases, and a contributor base that is not concentrated in one person.

Look elsewhere if

  • You need software the maintainers describe as suitable for production environments or commercial products.
  • Your work depends on a complete implementation of every listed protocol or interface, since the README describes some support as partial.
  • You need clearly established license terms without reviewing the repository’s license file, since the available license metadata is inconclusive.
All health signals
Last commit2026-11-04 (2 days ago)
Commits, last 90 days59
Releases, last 12 months1 (latest impacket_0_13_1, 2026-05-19)
Contributors100+ (top contributor: 53% of commits)
Issues closed, last 90 days20+ (typically closed in 997 days)
Pull requests merged, last 90 days54 (typically merged in 18 days)
Project age11 years

Checked on 2026-11-07 with the GitHub API.

Overview

Impacket is a Python library maintained by Fortra’s Core Security for low-level programmatic access to network protocols. It lets developers and security researchers construct packets, parse raw data, and work with nested protocol structures through an object-oriented API. For some protocols, including SMB and MSRPC, it also provides protocol implementations.

Its scope includes network layers such as IP and TCP, SMB1–3, MSRPC, and portions of TDS and LDAP. The repository also includes example tools that demonstrate uses of the library. It is intended to support security research and education, rather than production use.

Key Features

  • Construct network packets from scratch and parse them from raw data.
  • Work with Ethernet, IP, TCP, UDP, ICMP, IGMP, and ARP, including IPv4 and IPv6.
  • Use high-level implementations for NMB and SMB1, SMB2, and SMB3.
  • Access MSRPC over TCP, SMB/TCP, SMB/NetBIOS, and HTTP.
  • Use plain, NTLM, and Kerberos authentication with passwords, hashes, tickets, or keys.
  • Work with implementations or portions of numerous MSRPC interfaces, including SAMR, LSAD, DCOM, and WMI.
  • Explore example tools alongside the protocol library.

Use Cases

  • Security researchers can examine protocol behavior or build research utilities using direct access to packet structures.
  • Developers implementing network-protocol integrations can use the library’s packet parsing and construction APIs.
  • Red and blue team practitioners can study the included examples when developing or evaluating authorized security workflows.
  • Educators and students can use the protocol implementations to explore how network and Windows RPC protocols are structured.

What you need

Detected in the repository

  • Python (from setup.py)
  • A Dockerfile, so it can run in a container
  • A test suite and automated checks on GitHub Actions

Getting Started

Install the latest stable release with pipx:

python3 -m pipx install impacket

See the README for development installation, Docker usage, and testing details.

License in Plain Words

No standard license was detected. Without a license, the default copyright rules apply: you may read the code, but not reuse it. Check the repository or ask the authors.

Considerations

The repository describes its purpose as research and education and says the code is not meant for production environments or commercial products. The README says the software uses a slightly modified Apache Software License, but the supplied license metadata is inconclusive, so review the repository’s LICENSE file and assess its terms before adoption. Support is broad but not uniformly complete: several protocol implementations and interfaces are explicitly described as partial. The project uses Python, with Docker available as an option; no database or GPU requirement is indicated.

Found this useful?

Share it with someone who would like Impacket.