Registry / auth-security / impacket

impacket

JSON →
library0.13.0pypypi✓ verified 33d ago

Impacket is a collection of Python classes and scripts for working with network protocols. It provides programmatic access to low-level protocol details, allowing users to construct and parse packets for protocols like SMB, DCE/RPC, LDAP, and Kerberos. Widely used in penetration testing and security research, it enables interacting with network services, performing authentication, and exploiting protocol-level vulnerabilities. The current version is 0.13.0, with regular updates addressing new features and security fixes.

auth-securityhttp-networkingdevops
Install & Compatibility
Where this runs
tested against v0.13.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.920 runs
installs and imports cleanly · install 0.0s · import 0.000s · 71.7MB
glibc
py 3.103.920 runs
installs and imports cleanly · install 6.0s · import 0.000s · 73MB
76MB installed
● package 76MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

from impacket.smbconnection import SMBConnection

This quickstart demonstrates how to establish an SMB connection, authenticate, and list available shares using `impacket.smb.SMBConnection`. It fetches sensitive information from environment variables for security and flexibility.

import os from impacket.smb import SMBConnection # --- Configuration (replace with your environment variables or actual values) --- TARGET_IP = os.environ.get('IMPACKET_TARGET_IP', '127.0.0.1') USERNAME = os.environ.get('IMPACKET_USERNAME', 'guest') PASSWORD = os.environ.get('IMPACKET_PASSWORD', '') DOMAIN = os.environ.get('IMPACKET_DOMAIN', '') # Often empty for local accounts if not TARGET_IP: print("Please set IMPACKET_TARGET_IP environment variable or replace '127.0.0.1' with an actual SMB server IP.") exit(1) try: print(f"Attempting to connect to SMB share on {TARGET_IP} as {DOMAIN}\\{USERNAME}...") smb_conn = SMBConnection(TARGET_IP, TARGET_IP) smb_conn.login(USERNAME, PASSWORD, DOMAIN) print("Login successful!") shares = smb_conn.listShares() print("\nAvailable Shares:") for share in shares: print(f" - {share['name'].decode('utf-8')}") smb_conn.logoff() print("\nLogged off.") except Exception as e: print(f"An error occurred: {e}") print("Please ensure the target SMB server is reachable and credentials are correct.") print("For a quick test, you might need a local SMB server (e.g., Samba on Linux, or Windows share).")
impacket --version
Debug
Known footguns
breakingImpacket versions 0.9.20 and later are exclusively Python 3. If upgrading from older versions (pre-0.9.20), significant code changes may be required for Python 2 compatibility.
breakingNTLMv1 challenge/response authentication has been deprecated and removed due to security vulnerabilities. Attempts to use NTLMv1 will fail.
breakingThe `impacket.msdcerpc` module was merged into `impacket.dcerpc.v5` for better organization. Imports from `impacket.msdcerpc` will no longer work.
gotchaMany Impacket functionalities, especially those related to Kerberos, require specific DNS configurations or KDC (Key Distribution Center) host information to be correctly resolved or provided.
Upgrade
Version history

Breaking-change detection hasn't run for this library yet.

Audit
Security & dependencies

CVE tracking and dependency tree are planned for a later release.

Agent activity
23 hits · last 30 days
gptbot
4
ahrefsbot
4
amazonbot
4
bytedance
4
perplexity-user
2
script
1
Resources