offensive-tools/network/rustscan/SKILL.md
Auth/lab ref: Ultra-fast port scanner that finds open ports in seconds then auto-pipes into nmap for service/version detection.
npx skillsauth add aeondave/malskill rustscanInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Blazing-fast port discovery with automatic nmap handoff. Find open ports in seconds, get nmap service data in one command.
# Cargo
cargo install rustscan
# Apt (Kali/Debian)
sudo apt install rustscan
# Docker (no install)
docker run -it --rm --name rustscan rustscan/rustscan:latest -a TARGET -- -sV
# Snap
sudo snap install rustscan
| Flag | Purpose | Default |
|------|---------|---------|
| -a <addr> | Target — IP, CIDR, hostname, or file | required |
| -p <ports> | Specific ports to scan | all 65535 |
| --range <start-end> | Port range (e.g. 1-1024) | — |
| -b <batch> | Ports probed per batch | 4500 |
| -t <ms> | Timeout per port | 1500ms |
| --ulimit <n> | File descriptor limit (higher = faster) | 8000 |
| --no-nmap | Skip nmap; output open ports only | false |
| --scan-order <order> | Serial or Random | Serial |
| --scripts <script> | nmap script category shorthand | default |
| --top | Scan top 1000 ports only | false |
| --greppable, -g | Machine-readable output | false |
| --accessible | Accessibility-friendly output | false |
| --quiet, -q | Suppress banner | false |
| -- <nmap args> | Any nmap flags passed through | — |
# Fast discovery + full nmap service/script scan
rustscan -a 10.10.10.5 --ulimit 5000 -- -sV -sC
# Save output
rustscan -a 10.10.10.5 --ulimit 5000 -- -sV -sC -oA scans/target
rustscan -a 10.10.10.5 --top -- -sV
# Known service ports
rustscan -a 10.10.10.5 -p 22,80,443,445,1433,3306,3389,5985 -- -sV -sC
# Port range
rustscan -a 10.10.10.5 --range 1-10000 -- -sV
# Open port list only — no nmap overhead
rustscan -a 10.0.0.0/24 --no-nmap --ulimit 5000 -b 2048 | tee open_ports.txt
rustscan -a 10.10.10.5 --ulimit 10000 -- -A -T4
rustscan -a 10.10.10.5 -b 200 -t 3000 --ulimit 2000 -- -sV -T2
# Basic scan
docker run -it --rm rustscan/rustscan:latest -a TARGET -- -sV -sC
# With output directory mounted
docker run -it --rm -v $(pwd)/scans:/scans rustscan/rustscan:latest -a TARGET -- -sV -oA /scans/target
# Network mode host (for LAN targets)
docker run -it --rm --network host rustscan/rustscan:latest -a 192.168.1.0/24 --no-nmap
RustScan outputs open ports first, then spawns nmap. Key patterns:
Open 10.10.10.5:22
Open 10.10.10.5:80
Open 10.10.10.5:443
# Then nmap runs automatically on found ports:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1
80/tcp open http nginx 1.18.0
443/tcp open ssl/http nginx 1.18.0
Greppable output:
rustscan -a TARGET --no-nmap -g | grep "Open"
# Fastest possible (Linux, permissive ulimit)
ulimit -n 65535
rustscan -a TARGET -b 65535 -t 500 --ulimit 65535 -- -sV
# Moderate (reliable on most targets)
rustscan -a TARGET --ulimit 5000 -b 3000 -- -sV -sC
# Conservative (slow targets, firewalled, Windows hosts)
rustscan -a TARGET -b 500 -t 3000 --ulimit 2000 -- -sV
Guideline: increase -b and --ulimit together. High --ulimit + low -b wastes file descriptors.
# 1. Fast port discovery
rustscan -a TARGET --no-nmap | grep "Open" | awk -F: '{print $2}' | tr '\n' ',' | sed 's/,$//' > ports.txt
# 2. Deep nmap on discovered ports
nmap -sV -sC -p $(cat ports.txt) -oA TARGET_deep TARGET
# rustscan: per-host, fast + nmap integration
rustscan -a 10.10.10.5 --ulimit 5000 -- -sV
# masscan: wide range, many hosts
masscan 10.0.0.0/24 -p1-65535 --rate 10000 -oL masscan.txt
# 1. Discover live hosts with open ports
rustscan -a 192.168.1.0/24 --no-nmap -b 1024 | grep "Open" | cut -d: -f1 | sort -u > live_hosts.txt
# 2. Deep scan each live host
while read host; do
rustscan -a $host --ulimit 5000 -- -sV -sC -oA "scans/$host"
done < live_hosts.txt
-b 4500+) is very noisy — triggers IDS/IPS and firewall logs-b 200 -t 3000 for slower, lower-noise scan on monitored targets--scan-order Random randomizes port order — slightly less fingerprint-able than serial| File | When to load |
|------|--------------|
| references/scan-workflow-and-nmap-integration.md | Output parsing, NSE scripts per service, firewall evasion, port state interpretation, service-to-tool pipeline table |
development
White-box auditing methodology for AI-generated ('vibe-coded') applications. Focuses on modern stack misconfigurations (Supabase, Next.js, Vercel).
development
Hybrid AI/Deterministic SAST methodology for discovering zero-day vulnerabilities in source code. Orchestrates structural search with AI-driven data flow and sink validation.
development
Auth assessment: hardware/embedded methodology; UART/JTAG/SWD/SPI/I2C, firmware extraction, boot/debug paths, embedded OS evidence.
devops
Container methodology: Identifying containerization limits, Docker/K8s misconfigurations, and executing escapes to the host node.