Professional Cybersecurity Reconnaissance Framework
Project description
SpyHunt 4.0 - Professional Cybersecurity Reconnaissance Framework
A comprehensive, high-performance cybersecurity reconnaissance framework built with enterprise-grade architecture and advanced optimization techniques. SpyHunt 4.0 represents a complete rewrite focused on performance, modularity, and professional-grade features.
๐ Key Features
Performance & Architecture
- Asynchronous Processing: Built-in async/await support for maximum concurrency
- Connection Pooling: Intelligent HTTP connection management and reuse
- Response Caching: Multi-level caching with TTL and memory/disk options
- Rate Limiting: Advanced token bucket algorithm with burst handling
- Memory Optimization: Efficient memory usage with streaming and batching
Advanced Capabilities
- Modular Plugin System: Extensible architecture with hot-pluggable modules
- Multi-Protocol Support: HTTP/HTTPS, DNS, TCP, UDP, and custom protocols
- Cloud Security Scanning: AWS, Azure, GCP resource enumeration
- OSINT Integration: Social media, breach data, and public records
- Machine Learning: Behavioral analysis and anomaly detection
Security & Stealth
- Proxy Rotation: Automatic proxy switching with health monitoring
- User Agent Rotation: Realistic browser fingerprinting evasion
- Request Randomization: Timing, headers, and payload obfuscation
- SSL/TLS Analysis: Certificate validation and security assessment
- WAF Bypass: Advanced evasion techniques and payload encoding
Enterprise Features
- Configuration Management: YAML/JSON config with environment variables
- Comprehensive Logging: Structured logging with performance metrics
- Error Handling: Graceful failure recovery and detailed diagnostics
- Resource Management: CPU, memory, and network usage optimization
- Reporting & Export: Multiple output formats with customizable templates
๐ฆ Installation
Quick Install
# Clone the repository
git clone https://github.com/spyhunt/spyhunt.git
cd spyhunt
# Install dependencies
pip install -r requirements_new.txt
# Install SpyHunt
pip install -e .
# Verify installation
spyhunt --version
Docker Installation
# Build Docker image
docker build -t spyhunt:4.0 .
# Run with Docker
docker run -it --rm spyhunt:4.0 subdomain -t example.com
Development Setup
# Install with development dependencies
pip install -e ".[dev,security,performance,cloud]"
# Setup pre-commit hooks
pre-commit install
# Run tests
pytest tests/ -v --cov=spyhunt
๐ง Configuration
SpyHunt 4.0 uses a flexible configuration system supporting multiple sources:
Configuration Priority
- Command line arguments
- Environment variables
- Configuration files (YAML/JSON)
- Default values
Example Configuration
# spyhunt_config.yaml
app:
log_level: "INFO"
debug: false
network:
timeout: 10
max_concurrent_requests: 50
rate_limit_requests: 100
scanning:
max_threads: 25
stealth_mode: false
api_keys:
shodan: "${SHODAN_API_KEY}"
virustotal: "${VIRUSTOTAL_API_KEY}"
๐ฏ Usage Examples
Command Line Interface
Subdomain Enumeration
# Basic subdomain enumeration
spyhunt subdomain -t example.com --output results.json
# Advanced enumeration with custom wordlist
spyhunt subdomain -t example.com \
--wordlist custom_subs.txt \
--dns-servers 8.8.8.8,1.1.1.1 \
--threads 50 \
--format yaml
# Passive enumeration only
spyhunt subdomain -t example.com --passive-only --output passive_subs.json
Port Scanning
# Network range scan
spyhunt portscan -t 192.168.1.0/24 --ports 1-1000 --threads 100
# Service detection
spyhunt portscan -t example.com \
--top-ports 1000 \
--service-detection \
--output scan_results.json
# Stealth scan
spyhunt portscan -t target.com --stealth --timing 1
Vulnerability Scanning
# Web application vulnerabilities
spyhunt vuln -f urls.txt --xss --sqli --lfi --threads 25
# Comprehensive vulnerability assessment
spyhunt vuln -t https://example.com \
--xss --sqli --cors --headers \
--output vulns.json
# Batch scanning from file
spyhunt vuln -f targets.txt --all-vulns --format csv
Cloud Security
# AWS resource enumeration
spyhunt cloud -t company.com --aws --s3-buckets
# Multi-cloud scanning
spyhunt cloud -t target.org --aws --azure --gcp --output cloud_assets.json
# Specific cloud services
spyhunt cloud -t example.com --aws --services s3,ec2,rds
Python API
Basic Usage
from spyhunt import SpyHuntEngine, Config, ScanJob
# Initialize with custom configuration
config = Config('spyhunt_config.yaml')
config.set('scanning.max_threads', 50)
# Create engine
with SpyHuntEngine(config) as engine:
# Single scan
result = engine.scan_single('subdomain_enum', 'example.com')
# Batch scanning
jobs = [
ScanJob('subdomain_enum', 'example.com', {}),
ScanJob('port_scan', '192.168.1.1', {'ports': '1-1000'}),
ScanJob('vuln_xss', 'https://example.com', {})
]
results = engine.scan_batch(jobs, max_concurrent=10)
# Export results
engine.export_results('results.json', format='json')
Advanced Usage
import asyncio
from spyhunt.network import AsyncHTTPClient
from spyhunt.core import get_logger, setup_logging
# Setup logging
setup_logging(log_level='DEBUG', json_format=True)
logger = get_logger('my_scanner')
async def advanced_scan():
# Custom HTTP client with advanced features
async with AsyncHTTPClient(
max_connections=100,
rate_limiter=RateLimiter(50), # 50 req/sec
cache=ResponseCache(ttl=3600),
proxy_list=['proxy1:8080', 'proxy2:8080']
) as client:
# Concurrent requests with batching
async with client.batch_requests(concurrency=20) as batch:
tasks = [
batch('GET', f'https://example.com/page{i}')
for i in range(100)
]
responses = await asyncio.gather(*tasks, return_exceptions=True)
# Process responses
for response in responses:
if hasattr(response, 'status_code') and response.status_code == 200:
logger.info(f"Success: {response.url}")
# Run async scan
asyncio.run(advanced_scan())
Custom Modules
from spyhunt.core.engine import SpyHuntEngine
class CustomScanner:
"""Custom scanning module."""
def __init__(self):
self.name = "custom_scanner"
async def scan_async(self, target: str, **params) -> dict:
"""Async scan implementation."""
# Your custom scanning logic here
results = {
'target': target,
'findings': [],
'metadata': {}
}
return results
def scan(self, target: str, **params) -> dict:
"""Sync scan implementation."""
# Your custom scanning logic here
return {'target': target, 'results': []}
# Register and use custom module
engine = SpyHuntEngine()
engine.register_module('custom_scanner', CustomScanner)
result = engine.scan_single('custom_scanner', 'example.com')
๐ Performance Benchmarks
SpyHunt 4.0 delivers exceptional performance improvements over previous versions:
| Metric | SpyHunt 3.x | SpyHunt 4.0 | Improvement |
|---|---|---|---|
| Subdomain Enumeration | 1,000/min | 5,000/min | 5x faster |
| Port Scanning | 100 ports/sec | 1,000 ports/sec | 10x faster |
| HTTP Requests | 50/sec | 500/sec | 10x faster |
| Memory Usage | 200MB | 50MB | 75% reduction |
| Startup Time | 5 seconds | 0.5 seconds | 10x faster |
Performance Features
- Async I/O: Non-blocking operations for maximum throughput
- Connection Reuse: Persistent connections reduce overhead
- Memory Streaming: Process large datasets without memory bloat
- Intelligent Caching: Reduce redundant network requests
- Batch Processing: Optimize database and file operations
๐ Security Considerations
Responsible Usage
- Always obtain proper authorization before scanning
- Respect rate limits and server resources
- Follow responsible disclosure practices
- Comply with local laws and regulations
Privacy & Safety
- API keys and credentials are never logged
- Sensitive data can be encrypted at rest
- Proxy support for anonymity
- Sandbox mode for safe testing
๐ ๏ธ Development
Architecture Overview
spyhunt/
โโโ core/ # Core framework components
โ โโโ config.py # Configuration management
โ โโโ engine.py # Main scanning engine
โ โโโ logger.py # Structured logging
โ โโโ exceptions.py # Error handling
โโโ network/ # Network layer
โ โโโ client.py # HTTP clients (sync/async)
โ โโโ cache.py # Response caching
โ โโโ rate_limiter.py # Rate limiting
โโโ modules/ # Scanning modules
โ โโโ subdomain/ # Subdomain enumeration
โ โโโ ports/ # Port scanning
โ โโโ vulns/ # Vulnerability scanning
โ โโโ cloud/ # Cloud security
โโโ cli/ # Command line interface
โโโ utils/ # Utility functions
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Run the test suite
- Submit a pull request
Code Quality
# Run linters
black spyhunt/ tests/
flake8 spyhunt/ tests/
mypy spyhunt/
# Security scan
bandit -r spyhunt/
safety check
# Performance profiling
python -m cProfile -o profile.stats main_new.py
๐ Roadmap
Version 4.1 (Q2 2024)
- Machine Learning integration
- Advanced WAF bypass techniques
- GraphQL security testing
- Mobile application scanning
Version 4.2 (Q3 2024)
- Kubernetes security scanning
- API security testing framework
- Advanced OSINT correlation
- Threat intelligence integration
Version 5.0 (Q4 2024)
- Distributed scanning architecture
- Real-time collaboration features
- Advanced visualization dashboard
- AI-powered vulnerability analysis
๐ Documentation
- Installation Guide
- Configuration Reference
- Module Development
- API Documentation
- Performance Tuning
- Security Best Practices
๐ค Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Security: Email security@spyhunt.com for security issues
- Documentation: Official Docs
๐ License
SpyHunt is released under the MIT License. See LICENSE for details.
๐ Acknowledgments
- The cybersecurity community for feedback and contributions
- Open source projects that make SpyHunt possible
- Security researchers who help improve the tools
โ ๏ธ Disclaimer: SpyHunt is intended for legal security testing and research purposes only. Users are responsible for complying with all applicable laws and regulations. The developers assume no liability for misuse of this tool.
Made with โค๏ธ by the SpyHunt Team
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file spyhunt-4.0.0.tar.gz.
File metadata
- Download URL: spyhunt-4.0.0.tar.gz
- Upload date:
- Size: 75.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33cefd655de86d728475f7b2ab4438406f5e2376a886deaf858bfb49cde3d015
|
|
| MD5 |
4bc474ead04521131cf141714328ce46
|
|
| BLAKE2b-256 |
a7104a61b743d44a522c71a02235354202d5928dde37cd29b35d2a74466ab77a
|
File details
Details for the file spyhunt-4.0.0-py3-none-any.whl.
File metadata
- Download URL: spyhunt-4.0.0-py3-none-any.whl
- Upload date:
- Size: 77.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09c144fab9d81832eedd5e4c41c4a5114405c6c7b4e70555719ee26fa336d957
|
|
| MD5 |
50a48a6f54906b3328f8a04b79cb390d
|
|
| BLAKE2b-256 |
80724863de492df8f10ac7b51d8da2682cf31a70705a53ffa43b440bd67f9a98
|