Snaffler Impacket port - find credentials and sensitive data on SMB shares
Project description
snaffler-ng
Impacket port of Snaffler.
snaffler-ng is a post-exploitation / red teaming tool designed to discover readable SMB shares, walk directory trees, and identify credentials and sensitive data on Windows systems.
Features
- SMB share discovery (RPC / SMB)
- Recursive directory tree walking
- Regex-based file and content classification
- NTLM authentication (password or pass-the-hash)
- Kerberos authentication
- Multithreaded scanning (share / tree / file stages)
- Optional file download (“snaffling”)
- Resume support via SQLite state database
- Compatible with original and custom TOML rule sets
- Deterministic, ingestion-friendly logging (plain / JSON / TSV)
Installation
pip install snaffler-ng
Quick Start
Full Domain Discovery
Providing only a domain triggers full domain discovery:
snaffler run \
-u USERNAME \
-p PASSWORD \
-d DOMAIN.LOCAL
This will automatically:
- Query Active Directory for computer objects
- Enumerate SMB shares on discovered hosts
- Scan all readable shares
When using Kerberos, set KRB5CCNAME to a valid ticket cache and use hostnames/FQDNs:
snaffler run \
-k \
--use-kcache \
-d DOMAIN.LOCAL \
--dc-host CORP-DC02
Targeted Scans
Scan a specific UNC path (no discovery):
snaffler run \
-u USERNAME \
-p PASSWORD \
--unc //192.168.1.10/Share
Scan multiple computers (share discovery enabled):
snaffler run \
-u USERNAME \
-p PASSWORD \
--computer 192.168.1.10 \
--computer 192.168.1.11
Load target computers from file:
snaffler run \
-u USERNAME \
-p PASSWORD \
--computer-file targets.txt
Logging & Output Formats
snaffler-ng supports three output formats, each with a distinct purpose:
Plain(default, human-readable)JSON(structured, SIEM-friendly)TSV(flat, ingestion-friendly)
Resume Support
Large environments are expected.
You can resume interrupted scans using the --resume argument:
snaffler run \
-u USERNAME \
-p PASSWORD \
--computer-file targets.txt \
--resume
State tracks processed shares, directories, and files to avoid re-scanning.
Authentication Options
- NTLM username/password
- NTLM pass-the-hash (
--hash) - Kerberos (
-k) - Kerberos via existing ccache (
--use-kcache)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file snaffler_ng-1.0.1.tar.gz.
File metadata
- Download URL: snaffler_ng-1.0.1.tar.gz
- Upload date:
- Size: 49.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52cab6c5a243673523337e779dcebeabcfff3e9bba12ccfebe2080a33cacdec7
|
|
| MD5 |
c8a473b255142bcef032f8729866d913
|
|
| BLAKE2b-256 |
af9aa522775a614f7bbce66dde663370045547593c3c3081afc08e0f59687c7e
|
File details
Details for the file snaffler_ng-1.0.1-py3-none-any.whl.
File metadata
- Download URL: snaffler_ng-1.0.1-py3-none-any.whl
- Upload date:
- Size: 77.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9c968c27bd6fd28cf5a72e65503b8633f165eec2bf9269264862a648b2df059
|
|
| MD5 |
7cd002b0e41f1ffbd7c5eb40464bcd9e
|
|
| BLAKE2b-256 |
3e09123e4a74e013a8f2c61f4f15fe5167ca37434d1cf1ec97752f221f612293
|