WebForensicAnalyzer is a comprehensive, high-performance tool designed for advanced website reconnaissance and digital forensics. It automates the discovery and analysis of critical website information, security vulnerabilities, and digital artifacts that may be useful for security assessments, OSINT operations, and digital investigations.
- Comprehensive Domain Analysis: WHOIS data, DNS records, IP information
- Server Intelligence: Server type, technologies, SSL certificates, open ports
- Content Discovery: Crawls websites to discover links, resources, and content
- Contact Extraction: Emails, phone numbers, and social media profiles
- Security Assessment: Security headers, HTTPS configuration, open redirects, CSRF protection
- Data Leak Detection: Identifies potentially sensitive information
- Integration Capabilities: Shodan integration and Nmap for enhanced reconnaissance
- Multi-threaded Architecture: Fast, parallel processing for efficient scans
- Python 3.8 or higher
- Required Python packages (see Installation)
- Optional: Nmap for port scanning capabilities
- Optional: Shodan API key for enhanced reconnaissance
-
Clone the repository:
git clone https://github.com/yourusername/WebForensicAnalyzer.git cd WebForensicAnalyzer
-
Install required packages:
pip install -r requirements.txt
-
Make the script executable:
chmod +x WebForensicAnalyzer.py
-
Build the Docker image:
docker build -t webforensicanalyzer .
-
Or use docker-compose:
docker-compose build
./WebForensicAnalyzer.py example.com
./WebForensicAnalyzer.py example.com -d 2 -o results.json -v --delay 1
docker run --rm webforensicanalyzer example.com -d 2 -o /app/results.json
# Modify docker-compose.yml target then run:
docker-compose up
Argument | Description | Default |
---|---|---|
url |
Target URL to analyze | (Required) |
-d , --depth |
Crawling depth (1-3) | 1 |
-o , --output |
Output file path (JSON format) | None |
-t , --timeout |
Request timeout in seconds | 10 |
-v , --verbose |
Enable verbose output | False |
--delay |
Delay between requests in seconds | 0.5 |
--user-agent |
Custom User-Agent string | Mozilla/5.0... |
--shodan-api-key |
Shodan API key for enhanced reconnaissance | None |
--proxy |
Proxy URL (e.g., http://127.0.0.1:8080) | None |
The tool generates detailed JSON output containing:
- Domain information (WHOIS, DNS records)
- Server information (headers, technologies)
- Security findings (headers, configuration)
- Content analysis (links, forms, resources)
- Contact information (emails, phones, social media)
- Potential data leaks
Example output structure:
{
"metadata": {
"target": "https://example.com",
"timestamp": "2023-04-01 12:34:56",
"scan_duration": "45.32 seconds"
},
"domain_info": { ... },
"server_info": { ... },
"technologies": { ... },
"security_info": { ... },
"content": { ... },
"contacts": { ... }
}
The tool respects the following environment variables:
WFA_USER_AGENT
: Default User-Agent to useWFA_TIMEOUT
: Default timeout for requestsSHODAN_API_KEY
: API key for Shodan integration
You can create a config.json
file in the same directory as the script with the following structure:
{
"default_user_agent": "Custom User Agent",
"default_timeout": 15,
"default_delay": 1.0,
"shodan_api_key": "your-api-key-here"
}
- All connections can be proxied for anonymity
- Rate limiting to prevent overloading target servers
- No data is sent to third parties except when using Shodan integration
To enable Shodan intelligence gathering:
- Get a Shodan API key from shodan.io
- Use the
--shodan-api-key
parameter or set theSHODAN_API_KEY
environment variable
Ensure Nmap is installed on your system for port scanning capabilities:
- Ubuntu/Debian:
apt-get install nmap
- CentOS/RHEL:
yum install nmap
- macOS:
brew install nmap
- Windows: Download from nmap.org
- Security professionals performing reconnaissance
- Digital forensics investigations
- Website administrators auditing their sites
- OSINT (Open Source Intelligence) gathering
- Security researchers analyzing web applications
For more detailed documentation, see DOCUMENTATION.md.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This tool is intended for educational and research purposes only.
Unauthorized or malicious use of this tool to access, modify, or interfere with systems you do not own or have explicit permission to test is strictly prohibited and may be illegal.
The author assumes no responsibility for any consequences arising from the use or misuse of this software.
Always ensure you are complying with all applicable laws and ethical guidelines when using this tool.
This project is licensed under the MIT License - see the LICENSE file for details.
- Requests - Elegant HTTP library
- BeautifulSoup - HTML parsing library
- Shodan - Search engine for Internet-connected devices
- python-nmap - Nmap port scanner interface
Project Link: https://github.com/the-random-guy-from212/WebForensic