🪡 Needlecraft
External attack surface recon toolkit for red teamers. One CLI to scan, search, screenshot, and report — from first port sweep to finished deliverable.
Needlecraft ships two commands:
exercism— recon and scanning: ports, SSL/TLS, DNS, OSINT, screenshots, Tor.salvare— turns raw findings into a polished attack surface report.
Why Needlecraft
- 🎯 One tool, whole workflow — stop stitching together nmap, masscan, sslscan, EyeWitness, and a dozen OSINT APIs by hand.
- 🔍 OSINT built in — Shodan, InternetDB, Dehashed, MaxMind, and WHOIS/subdomain recon out of the box.
- 🧅 Tor-aware — screenshot
.onionsites without extra plumbing. - 📄 Report generation —
salvarecompiles ports, ciphers, certs, and screenshots into a client-ready.docx.
Installation
1. Clone the repository
git clone https://github.com/H4CK-7H3-P14N37/needlecraft.git
cd needlecraft
2. Install the Python package
pip install .
3. Install system dependencies
Installs apt packages and deploys torrc. Requires root.
exercism install-deps
Tor is not started automatically. When you need it:
systemctl start tor
Configuration
Set API keys and credentials. Written to ~/.config/exercism.json and /etc/environment.
exercism config SHODANKEY=your_key HIBPKEY=your_key SECURITYTRAILSKEY=your_key
exercism config GOOGLEKEY=your_key GOOGLECX=your_cx
exercism config MAXMINDKEY=your_key
exercism config DEHASHED_EMAIL=you@example.com DEHASHED_API_KEY=your_key
exercism config GMAIL_EMAIL=you@example.com GMAIL_APP_PASSWORD=your_password
Show current config:
exercism config --show
See env.example for the full list of supported keys.
Usage
Port scan
exercism scan ips_list.txt
exercism scan ips_list.txt -u -l -p -t
exercism scan ips_list.txt -T # top 100 TCP ports only
exercism scan ips_list.txt -N # skip nmap, masscan results only
exercism scan ips_list.txt -e you@example.com # email results when done
Search (IP, domain, email, CVE)
exercism search 1.1.1.1
exercism search example.com
exercism search CVE-2024-1234
exercism search user@example.com
exercism search 1.1.1.1 -s # short output
SSL scan
exercism sslscan urls.txt
Screenshots
exercism screenshot urls.txt
Passive DNS
exercism pdns ips.txt
exercism pdns ips.txt -o output.txt
InternetDB lookup
exercism internetdb ips.txt
Dehashed credential search
exercism dehashed example.com
exercism dehashed user@example.com -s 500
Recon (WHOIS / subdomain enumeration)
exercism recon example.com
MaxMind ASN lookup
exercism maxmind -k "Company Name"
exercism maxmind -k "Company Name" -s output.json
Mass DNS lookup
exercism dns domains.txt
Tor site screenshot
exercism tor http://example.onion
Ansible → OpenSSH config
exercism ansible inventory.ini ~/.ssh/config
exercism ansible inventory.ini ~/.ssh/config -g group1,group2
Generate attack surface report
salvare genreport \
reports/attack_surface_ports.csv \
reports/attack_surface_ciphers.csv \
reports/attack_surface_certs.csv \
reports/screenshots/ \
"Company Name" \
scope.txt
Development install
For making changes without reinstalling:
pip install -e .
Disclaimer
Needlecraft is built for authorized security testing. Only point it at assets you own or have explicit written permission to assess.
Release files for needlecraft 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| needlecraft-1.0.2.tar.gz | 59.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| needlecraft-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 120.8 kB
Release files / needlecraft-1.0.2.tar.gz
| Download URL | needlecraft-1.0.2.tar.gz |
|---|---|
| Size | 59.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d364bfbe7d2171ba8a4686cb9994dc51e7faa19b6e0f97800912ae59922fec81
|
|
BLAKE2b-256 checksum How to use checksums |
59202ba939a65e113d4d564b6d122828e22bc149e47d4ef379f8754d9d76f7df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Release files / needlecraft-1.0.2-py3-none-any.whl
| Download URL | needlecraft-1.0.2-py3-none-any.whl |
|---|---|
| Size | 61.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cdeadd1904abef7820238bffcde6c74ec40003baec0229a1111b01859984dc94
|
|
BLAKE2b-256 checksum How to use checksums |
b6fd102462d3768a11c812e3c6119642f6012e0bb1bd0a67e1b260aaf501b833
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|