| name | autorecon |
| description | Operate AutoRecon — a multi-threaded network reconnaissance tool that automatically runs appropriate enumeration tools based on detected services. Use during OSCP labs, CTF initial enumeration, or real-world external/internal network pentests to automate the discovery phase. Covers installation, target specification, port scan profiles, per-service tool execution, custom plugins, output structure, concurrency controls, and a full OSCP/CTF enumeration workflow.
|
| metadata | {"author":"redhoundinfosec","version":"1.0","repo":"https://github.com/Tib3rius/AutoRecon","language":"Python"} |
autorecon Agent Skill
When to Use This Skill
Use this skill when:
- Starting a new CTF box or OSCP lab machine and need comprehensive initial enumeration
- Running parallel reconnaissance against multiple targets (pentest internal network)
- Automating the "run all the things" phase: nmap → per-service tools → report-ready output
- Customising AutoRecon plugins to add bespoke enumeration tools
- Understanding AutoRecon's output directory structure to navigate findings quickly
- Building an OSCP methodology around AutoRecon as the enumeration backbone
What AutoRecon Does
AutoRecon (Tib3rius/AutoRecon, ~5.6k GitHub stars) is a Python-based multi-threaded
reconnaissance tool that runs multiple scanners simultaneously. It starts with broad port
discovery, then automatically launches service-specific enumeration tools for every
open port it finds — HTTP ports get nikto/feroxbuster/whatweb, SMB ports get enum4linux/
smbclient, FTP gets anonymous login checks, and so on. The result is a structured output
directory containing all scan results, ready for manual review.
Installation
pip (recommended)
pip3 install autorecon
autorecon --help
pipx (isolated environment, no conflicts)
pipx install autorecon
pipx inject autorecon toml
From Source
git clone https://github.com/Tib3rius/AutoRecon.git
cd AutoRecon
pip3 install -r requirements.txt
python3 autorecon.py --help
Required External Tools
AutoRecon calls external tools — they must be installed separately:
sudo apt install -y nmap curl wget seclists
sudo apt install -y nikto gobuster feroxbuster whatweb wkhtmltopdf
sudo apt install -y enum4linux smbclient smbmap nbtscan
sudo apt install -y ldap-utils
sudo apt install -y ftp tnftp onesixtyone snmp
sudo apt install -y dnsrecon dnsenum
sudo apt install -y hydra medusa
sudo apt install -y nfs-common
Verify Tool Availability
autorecon --list-plugins
Core Concepts
Scan Phases
- Port Discovery: Fast TCP/UDP port scans using nmap
- Service Detection: Nmap service version detection against open ports
- Service Enumeration: Per-service plugins run automatically based on detected services
- Reporting: All output written to structured directory tree
Plugin System
AutoRecon uses a TOML-based plugin configuration. Each plugin defines:
- Which service tags trigger it (e.g.,
http, https, smb, ftp)
- The command to run (with template variables)
- Output file name
- Whether it's run once per host or once per port
Template Variables
Available in plugin commands:
{address} — Target IP address
{port} — Port number
{scheme} — http or https
{hostname} — Resolved hostname (if available)
{scandir} — Output directory for this target
{nmap_extra} — Extra nmap flags from --nmap-append
CLI Reference
Basic Usage
autorecon 10.10.10.10
autorecon 10.10.10.10 --single-target
autorecon target.htb
autorecon 10.10.10.0/24
autorecon 10.10.10.10 10.10.10.20 10.10.10.30
autorecon -t targets.txt
Output Directory
autorecon 10.10.10.10 -o /opt/engagements/target/
Concurrency Controls
autorecon 10.10.10.0/24 -ct 3
autorecon 10.10.10.10 -cs 5
autorecon 10.10.10.10 --single-target -cs 3
autorecon 10.10.10.10 -cs 2 -ct 1
Port Scan Profiles
AutoRecon uses profile TOML files to define scan strategies:
ls $(pip3 show autorecon | grep Location | awk '{print $2}')/autorecon/config/
autorecon 10.10.10.10 --profile default
autorecon 10.10.10.10 --profile udp
autorecon 10.10.10.10 --profile-file /opt/myprofiles.toml
Default profile behaviour:
nmap -p- --min-rate=2500 (full TCP)
nmap -sV -sC -p {open_ports} (service detection on found ports)
nmap -sU --top-ports=20 (top UDP ports)
Nmap Customisation
autorecon 10.10.10.10 --nmap-append "--script-timeout 5s"
autorecon 10.10.10.10 --nmap-append "-T4"
autorecon 10.10.10.10 --nmap-append "--script=vuln"
Verbosity and Logging
autorecon 10.10.10.10 -v
autorecon 10.10.10.10 -vv
autorecon 10.10.10.10 --heartbeat 30
autorecon 10.10.10.10 --heartbeat 0
Tags and Plugin Filtering
autorecon 10.10.10.10 --only-scans-dir --tags http
autorecon 10.10.10.10 --exclude-tags brute
autorecon 10.10.10.10 --plugins "nikto"
autorecon 10.10.10.10 --exclude-tags udp
Per-Service Tool Matrix
HTTP / HTTPS (tcp/80, tcp/443, tcp/8080, tcp/8443)
| Tool | What It Does |
|---|
| nmap http scripts | http-title, http-server-header, http-methods, http-auth |
| whatweb | Technology fingerprinting (CMS, frameworks, plugins) |
| nikto | Known vulnerabilities, misconfigs, default files |
| gobuster/feroxbuster | Directory and file brute-force |
| curl -k | Grab full response headers |
| wkhtmltopdf | Screenshot the page for report |
SMB (tcp/445, tcp/139)
| Tool | What It Does |
|---|
| nmap smb scripts | smb-os-discovery, smb-security-mode, smb-vuln-ms17-010 |
| enum4linux | Null session enumeration: users, shares, groups, policies |
| smbclient | List shares, attempt anonymous auth |
| smbmap | Map shares and permissions |
| nbtscan | NetBIOS name scan |
FTP (tcp/21)
| Tool | What It Does |
|---|
| nmap ftp scripts | ftp-anon, ftp-bounce, ftp-syst |
| AutoRecon plugin | Attempt anonymous login and list files |
| hydra (if tagged) | Brute-force FTP credentials |
SSH (tcp/22)
| Tool | What It Does |
|---|
| nmap ssh scripts | ssh-hostkey, ssh-auth-methods |
| AutoRecon plugin | Enumerate supported auth methods |
DNS (tcp/53, udp/53)
| Tool | What It Does |
|---|
| nmap dns scripts | dns-zone-transfer, dns-recursion |
| dnsrecon | Zone transfer, reverse lookup, brute |
| dnsenum | Zone transfer, Google enumeration |
SNMP (udp/161)
| Tool | What It Does |
|---|
| onesixtyone | Community string brute-force |
| snmpwalk | Full MIB walk with found community strings |
LDAP (tcp/389, tcp/636)
| Tool | What It Does |
|---|
| nmap ldap scripts | ldap-rootdse, ldap-search |
| ldapsearch | Anonymous bind, base DN dump |
NFS (tcp/2049)
| Tool | What It Does |
|---|
| nmap nfs scripts | nfs-showmount, nfs-ls |
| showmount | List exported shares |
Custom Plugin Development
Plugin TOML Structure
[plugin.custom-wfuzz]
name = "Custom WFuzz Scan"
tags = ["http", "custom"]
ports.tcp = [80, 443, 8080, 8443]
run_once_per = "service"
[plugin.custom-wfuzz.command]
linux = "wfuzz -c -z file,/usr/share/seclists/Discovery/Web-Content/common.txt \
--hc 404 -u {scheme}://{address}:{port}/FUZZ \
-o {scandir}/tcp_{port}_{scheme}_wfuzz.txt 2>&1"
Where to Place Custom Plugins
mkdir -p ~/.config/AutoRecon/plugins/
cp $(pip3 show autorecon | grep Location | awk '{print $2}')/autorecon/plugins/http_nikto.toml \
~/.config/AutoRecon/plugins/http_custom.toml
autorecon --list-plugins | grep custom
Plugin Variables Reference
{address}
{port}
{scheme}
{hostname}
{scandir}
{nmap_extra}
{wordlist}
OSCP / CTF Enumeration Workflow
Standard Box Workflow
echo "10.10.10.10 target.htb" >> /etc/hosts
autorecon 10.10.10.10 --single-target -v
tail -f results/10.10.10.10/scans/_full_tcp_nmap.txt
ls -la results/10.10.10.10/scans/
Multi-Target Internal Network Scan
nmap -sn 192.168.1.0/24 -oG - | grep Up | awk '{print $2}' > live_hosts.txt
autorecon -t live_hosts.txt -o /opt/engagement/recon/ -ct 5 -cs 10 -v
ls /opt/engagement/recon/
grep -r "200 OK\|302\|401\|403" /opt/engagement/recon/*/scans/*http*ferox* 2>/dev/null
Quick UDP Scan Only
autorecon 10.10.10.10 --single-target --profile udp -v
cat results/10.10.10.10/scans/_top_udp_nmap.txt
Reading Output Efficiently
ls results/10.10.10.10/scans/ | sort
grep -r -i "password\|admin\|secret\|flag\|login\|token\|api.key" \
results/10.10.10.10/scans/ 2>/dev/null
grep -r "200\|301\|403" results/10.10.10.10/scans/*ferox* \
results/10.10.10.10/scans/*gobuster* 2>/dev/null | \
awk '{print $NF}' | sort -u
Advanced Techniques
Running AutoRecon Without Root (No SYN Scan)
autorecon 10.10.10.10 --nmap-append "-sT" --single-target
Integrating Custom Wordlists
[global]
wordlist = "/usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt"
Saving and Archiving Results
tar -czf target_10.10.10.10_recon.tar.gz results/10.10.10.10/
grep -r -E "(user|pass|password|username|credential)" \
results/10.10.10.10/ --include="*.txt" -i | \
grep -v "Binary"
Troubleshooting
AutoRecon exits immediately with no output
python3 --version
autorecon 10.10.10.10 -vv
autorecon --list-plugins
Missing plugin results
sudo apt install -y feroxbuster nikto
autorecon 10.10.10.10 --exclude-tags feroxbuster
Scans running too slowly
autorecon 10.10.10.10 -cs 20
autorecon 10.10.10.10 --exclude-tags udp
autorecon 10.10.10.10 --nmap-append "-T4"
Out of memory on large CIDR scans
autorecon 10.10.10.0/24 -ct 2 -cs 5
Gobuster/feroxbuster not found
sudo apt install -y gobuster feroxbuster
Built by Red Hound InfoSec — On-demand offensive security expertise for SMBs.
20+ years of Fortune 500 experience. Penetration testing, attack surface analysis, and security consulting.
redhound.us | GitHub | Book a consultation