📈 GH Trending Explorer 🎲 Surprise me

← all repos

S3cur3Th1sSh1t / SnafflePy

git clone https://github.com/S3cur3Th1sSh1t/SnafflePy.git

Snaffler in Python

+1
stars, 24h · #16,310
+~2
stars, 7 days · #25,416
+122
stars, 30 days · #5,879
122
★ total · +2% this week
12
forks · 1 open issues

Star history (as recorded here)

2026-10-20 · 121 ★ 2026-10-23 · 122 ★
LanguagePython
LicenseGPL-3.0
Created2026-09-24 (28d ago)
Last push22d ago
Watchers0
OwnerUser

Links

README excerpt
# Snaffler (Python)
A feature-for-feature Python port of SnaffCon/Snaffler,
using **impacket** for SMB share enumeration, file access and authentication, and
**ldap3/impacket LDAP** for Active Directory discovery.
It ships the **same 88 default rules with byte-identical regexes**, produces the
**same log line format**, and adds a filterable HTML report.
Unlike the original it does not need to run on a domain-joined Windows box — you
give it credentials and it runs from Linux/macOS.
 [code] 
## Why
The original Snaffler is a superb tool, but it's a Windows .NET binary that
expects to run as a domain user on a domain-joined host. This port lets you run
the exact same rules and get the exact same findings **from Linux/macOS with
explicit credentials** — over impacket, the way you'd run `secretsdump` or
`smbclient.py` — and adds a self-contained HTML report for triage and hand-off.
## Features
- **Identical findings.** The 88 default rules and all 385 regexes are the
 upstream `.toml` files, unmodified; output is [byte-for-byte identical
 to the original (verified against a compiled C# oracle).
- **impacket everything.** SMB share enumeration (srvsvc `NetrShareEnum`), file
 reads, and LDAP AD discovery all go through impacket.
- **Auth: password, pass-the-hash, Kerberos, null session.**
- **Flexible targeting.** AD auto-discovery, or a single host, a CIDR range, a
 comma-list, or a file of IPs/hostnames/CIDRs.
- **Filterable HTML report** — offline, single file, triage tiles, share/host/
 rule/ext filters, search, sortable/expandable rows, CSV/JSON export.
- **`snaffleplus` extended rules** (opt-in) for GPP cpassword, modern cloud/CI
 tokens, GCP/Azure keys, terraform state, kubeconfig and more.
- Same TSV / JSON / plain log formats and console colours as upstream.
> [!IMPORTANT]
> For **authorized security testing only** — pentests, red-team engagements with
> a signed statement of work, CTFs, and lab/research use. Scanning file shares
> you have no permission to touch is likely illegal. You are responsible for
> staying in scope.
## Install
 [code] 
Python 3.11+ (uses `tomllib`).
### uv
uv installs the tool into an isolated environment,
pulls in `impacket` and `cryptography`, and puts a `snaffler` executable on your
`PATH`:
 [code] 
From a checkout, install the local project instead:
 [code] 
`uvx` runs it once without installing anything:
 [code] 
Upgrade with `uv tool upgrade pysnaffler`, remove with
`uv tool uninstall pysnaffler`.
## Usage
The flags are the originals. Credentials are the only addition, because the C#
version borrows the caller's Windows token and we have no token to borrow.
 [code] 
**You need `-s` (stdout) or `-o` (outfile) or both**, otherwise the tool refuses
to run — same as upstream.
### Original flags
| Flag | Meaning |
|---|---|
| `-s, --stdout` | print results to the console as they're found |
| `-o, --outfile` | write the log to a file |
| `-v, --verbosity` | `trace` \| `debug` \| `info` (default) \| `data` (results onl