Hawx Recon Agent is an intelligent, autonomous reconnaissance system powered by a Large Language Model (LLM). Designed for offensive security workflows, it automates initial triage and guided follow-up based on live service data. The agent runs in a Dockerized environment and can optionally tunnel through OpenVPN. Output is structured, actionable, and neatly organized per target.
- ๐ก Autonomous recon workflow
- ๐ค LLM-guided command planning and triage
- ๐ CVE and exploit discovery using SearchSploit
- ๐ Optional OpenVPN integration
- ๐ง Markdown summaries of recon
- ๐ Clean directory structure per target
[Host]
โโโ hawx.sh
โโโ Parses flags (IP, --ovpn, --steps, etc.)
โโโ Launches Docker container
โ โโโ Mounts current directory to /mnt
โ โโโ Passes env vars
โ
[Inside Docker Container]
โโโ entrypoint.sh
โโโ Starts OpenVPN if provided
โโโ Verifies target connectivity
โโโ Maps hostname if specified
โโโ Launches agent.py
[agent.py]
โโโ Runs nmap on target
โโโ Parses and summarizes output
โโโ Picks follow-up tools
โโโ Stores all logs and recon data
โโโ Summarizes recon using LLM
- Nmap (
-sC -sV -p-) - Stores raw and structured output
- LLM decides follow-up tools:
- Web โ
httpx,gobuster,nikto - FTP/SSH/SMB โ enumeration tools
- Web โ
- Deduplicates tools across layers
| Service | Toolset |
|---|---|
| HTTP | httpx, gobuster, nikto |
| FTP | ftp-anon, manual login |
| SMB | enum4linux, smbclient |
| SSH | Banner grab |
| SQL | Basic login logic |
| Custom | LLM-based tool picks |
- SearchSploit per service/version
- LLM-based CVE summaries
- Output written to
exploits.txt
- Clear Markdown (
summary.md) - Includes:
- Ports/services
- CVEs
- Attack paths
- Recommended tools
triage/192.168.1.10/
โโโ nmap_output.txt
โโโ httpx_output.txt
โโโ gobuster.txt
โโโ exploits.txt
โโโ summary.md
โโโ summary_exec.md
- Docker installed
.envfile in repo root:
LLM_API_KEY=your_key
LLM_PROVIDER=groq
MODEL=qwen-2.5-coder-32b./hawx.sh [--steps N] [--ovpn file.ovpn] [--hostname NAME] <target_ip/domain>Examples:
./hawx.sh 192.168.1.10
./hawx.sh --steps 2 --ovpn vpn.ovpn --hostname target 192.168.1.10| Flag | Description |
|---|---|
--steps |
Number of recon layers (default: 1, max: 3) |
--ovpn |
OpenVPN config file |
--hostname |
Add target to /etc/hosts as hostname.local |
--force-build |
Rebuild Docker image before execution |
--help |
Show usage help |
- ๐ฌ Add
nuclei,wpscan, and brute-force modules - ๐งพ PDF export via Pandoc
- ๐ JSON + HTML output formats
- ๐ต๏ธ Passive recon plugin support
MIT License โ use freely, responsibly, and at your own risk.