A Python-based reconnaissance tool that automates the initial stages of web application enumeration, helping pentesters save time during engagements.
Originally developed as a basic Bash script, this project has evolved into a powerful and flexible Python tool. It automates essential tasks for quickly assessing web infrastructure security during manual pentesting.
Note: This tool generates considerable traffic and is not recommended for stealthy Red Team operations.
- Automatic Tool Detection - Checks for required tools at startup and offers to install missing ones
- Multi-Package Manager Support - Detects and uses apt, dnf, yum, pacman, brew, go, npm, pip, and gem
- Automatic Privilege Escalation - Detects when sudo is needed and prompts accordingly
- Subdomain Enumeration - Discovers subdomains using Subfinder
- Technology Fingerprinting - Dual detection with WhatWeb and Wappalyzer
- Content Discovery - Directory/file fuzzing with ffuf
- Comprehensive SSL/TLS Analysis - Deep inspection using testssl.sh
- DNS Reconnaissance - NSLookup and DNSRecon integration
- Vulnerability Scanning - Nikto web vulnerability scanner
- HTTP Methods Detection - Identifies allowed HTTP methods
- Robots.txt & Sitemap Discovery - Extracts hidden paths and endpoints
- Markdown Report Output - Clean, readable output format
- Progress Tracking - Visual progress bar for scan status
The script will check for these tools and offer to install any that are missing:
| Tool | Description | Primary Install |
|---|---|---|
nslookup |
DNS lookup utility | apt install dnsutils |
dnsrecon |
DNS enumeration | apt install dnsrecon |
nmap |
Network scanner | apt install nmap |
whatweb |
Web technology identifier | apt install whatweb |
wappalyzer |
Technology profiler | npm install -g wappalyzer |
curl |
URL transfer tool | apt install curl |
nikto |
Web vulnerability scanner | apt install nikto |
testssl.sh |
SSL/TLS testing | apt install testssl.sh |
ffuf |
Fast web fuzzer | apt install ffuf |
subfinder |
Subdomain discovery | go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest |
pip install colorama tqdmThe script auto-detects wordlists from common locations:
/usr/share/wordlists/dirb/common.txt/usr/share/seclists/Discovery/Web-Content/common.txt/usr/share/wordlists/dirbuster/directory-list-2.3-small.txt/opt/SecLists/Discovery/Web-Content/common.txt
Install SecLists for best results:
sudo apt install seclistsSome scans require root privileges to function properly:
| Scan | Requires Root | Reason |
|---|---|---|
Nmap OS Detection (-O) |
β Yes | Raw socket access |
Nmap Service Scan (-sV) |
Better accuracy | |
| HTTP Methods Check | NSE script access | |
| Other scans | β No | Run as normal user |
The script handles this automatically:
- Detects if running as root
- If not root, automatically prepends
sudoto commands that need it - Displays a warning at startup if not running as root
β Not running as root. Some scans (nmap -O) will use sudo.
You may be prompted for your password.
Running options:
# Option 1: Run as normal user (will prompt for sudo when needed)
python3 web_app.py --target example.com
# Option 2: Run entire script as root (no sudo prompts)
sudo python3 web_app.py --target example.com- Clone the repository:
git clone https://github.com/Mr-Whiskerss/web-app-enum.git
cd web-app-enum- Install Python dependencies:
pip install colorama tqdm- Make the script executable:
chmod +x web_app.pyInteractive mode:
python3 web_app.pyWith target specified:
python3 web_app.py --target example.comCustom output file:
python3 web_app.py --target example.com -o report.mdSkip tool dependency check:
python3 web_app.py --target example.com --skip-check| Option | Description |
|---|---|
--target |
Target domain or IP address |
-o, --output |
Output file name (default: web_recon_output.md) |
--skip-check |
Skip tool dependency check |
--auto |
Run without prompts (planned) |
The script runs through these phases:
| Phase | Description | Tools Used |
|---|---|---|
| 1. Passive Recon | DNS lookups and enumeration | nslookup, dnsrecon |
| 2. Subdomain Enumeration | Discover subdomains (domains only) | subfinder |
| 3. Active Recon | Port scanning and service detection | nmap |
| 4. HTTP Methods | Identify allowed HTTP methods | nmap NSE |
| 5. Technology Detection | Fingerprint web technologies | whatweb, wappalyzer |
| 6. Robots/Sitemap | Extract paths from config files | curl |
| 7. Content Discovery | Directory and file fuzzing | ffuf |
| 8. Vulnerability Scan | Web vulnerability detection | nikto |
| 9. SSL/TLS Analysis | Certificate and cipher analysis | testssl.sh |
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Web Reconnaissance Tool β
β β
β Tools: nmap, nikto, whatweb, wappalyzer, subfinder, β
β ffuf, testssl.sh, dnsrecon, curl β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Not running as root. Some scans (nmap -O) will use sudo.
You may be prompted for your password.
==================================================
Checking Required Tools
==================================================
[β] nslookup - DNS lookup utility
[β] dnsrecon - DNS enumeration tool
[β] nmap - Network scanner
[β] whatweb - Web technology identifier
[β] curl - URL transfer tool
[β] nikto - Web vulnerability scanner
[β] testssl - SSL/TLS testing tool
[β] ffuf - Fast web fuzzer for content discovery
[β] subfinder - Subdomain discovery tool
[β] wappalyzer - Technology profiler for websites
All required tools are installed!
Enter URL or IP address to be tested: example.com
Target: example.com (domain)
Output: web_recon_output.md
Overall Progress: 100%|ββββββββββββββββββββββββ| 13/13
The script generates a Markdown report (web_recon_output.md) containing:
- Target information
- DNS lookup results
- Discovered subdomains
- Open ports and services
- Detected technologies
- robots.txt and sitemap.xml contents
- Discovered directories/files
- Vulnerability findings
- SSL/TLS configuration details
- Nuclei vulnerability scanning integration
- httpx HTTP probing
- JavaScript library enumeration
- Virtual hosting discovery
- Multi-host scanning support
- HTML report generation
- API endpoint discovery
- Screenshot capture with gowitness
- Automated mode (
--autoflag)
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-tool) - Commit your changes (
git commit -m 'Add new tool integration') - Push to the branch (
git push origin feature/new-tool) - Open a Pull Request
This tool is intended for authorized security testing only. Always obtain proper authorization before scanning any systems you do not own. Unauthorized access to computer systems is illegal.
This project is licensed under the GNU GPL-3.0 License.