Named after Rankle, Master of Pranks from Magic: The Gathering - a legendary faerie who excels at uncovering secrets.
A comprehensive web infrastructure analyzer using 100% Open Source Python libraries with no API keys required.
Features: Modular architecture with centralized configuration, retry logic, and concurrent scanning!
# Install dependencies
pip install -r requirements.txt
# Run scan
python main.py example.com
# Save results
python main.py example.com -o jsonDocker:
docker build -t rankle .
docker run --rm rankle example.comComplete documentation is now available in the docs/ directory:
- Installation & Quick Start - Install Rankle and run your first scan
- Usage Guide - Command-line options and output formats
- Architecture - Modular design, key classes, and patterns
- Detection Capabilities - CMS, CDN, WAF, cloud providers
- API Reference - Core classes and modules
- Contributing Guide - How to contribute to Rankle
- Development Setup - Environment configuration
- Testing - pytest, coverage, pre-commit hooks
- Utility Scripts - Demo and diagnostic scripts
- Skills Overview - Custom Claude Code skills for development
- Workflows - Common development patterns
- CHANGELOG.md - Version history and release notes
- SECURITY.md - Security policy and vulnerability reporting
- Enhanced Technology Detection - Confidence scoring (0-100%), version detection, 30+ technologies
- CMS Detection - 16+ systems including enhanced Drupal detection (15+ patterns)
- Cloud Provider Detection - 14+ providers with ASN matching and confidence scoring
- CDN Detection - 20+ providers including TransparentEdge, Cloudflare, Akamai
- WAF Detection - 15+ solutions including Imperva, Sucuri, ModSecurity
- Origin Discovery - Find real infrastructure behind WAF/CDN (5 passive techniques)
- Advanced Fingerprinting - 8 techniques: HTTP methods, API discovery, exposed files
- DNS Enumeration - Complete analysis (A, AAAA, MX, NS, TXT, SOA, CNAME)
- Subdomain Discovery - Via Certificate Transparency logs (crt.sh)
- JavaScript Libraries - Detect 15+ libraries: jQuery, React, Vue, Angular
- Python 3.11 or higher
- Docker (optional)
# Required dependencies
pip install requests dnspython beautifulsoup4
# Or install all at once
pip install -r requirements.txt
# For development
pip install -e ".[dev]"
pre-commit installgit clone https://github.com/javicosvml/rankle.git
cd rankle
docker build -t rankle .See Installation Guide for detailed instructions.
# Basic scan (terminal output only)
python main.py example.com
# Save as JSON (for automation)
python main.py example.com -o json
# Save as text report (human-readable)
python main.py example.com -o text
# Save both formats
python main.py example.com -o both
# Verbose output
python main.py example.com -v# Basic scan
docker run --rm rankle example.com
# Save output
docker run --rm -v $(pwd)/output:/output rankle example.com -o jsonSee Usage Guide for more examples.
Rankle can detect and analyze:
- 16+ CMS - WordPress, Drupal, Joomla, Magento, Shopify, and more
- 20+ CDN Providers - TransparentEdge, Cloudflare, Akamai, Fastly, AWS CloudFront
- 15+ WAF Solutions - Imperva, Sucuri, ModSecurity, PerimeterX, DataDome
- 14+ Cloud Providers - AWS, Azure, GCP, DigitalOcean, OVH, Hetzner
- 15+ JavaScript Libraries - jQuery, Bootstrap, React, Vue, Angular
- API Endpoints - 15+ common paths including GraphQL, Swagger, health checks
- Exposed Files - Version control, backups, config files, development files
- Security Headers - X-Frame-Options, CSP, HSTS, and more
See Detection Capabilities for complete details.
# Direct subdomain pipe
python main.py example.com -o json | jq -r '.subdomains[]' | nuclei -l -# Scan discovered IPs
cat scan.json | jq -r '.dns.A[]' | nmap -iL - -sV# Verify live hosts
cat scan.json | jq -r '.subdomains[]' | httpx -silent | nuclei -l -See Integration Examples for complete pipelines.
Rankle follows Python 3.11+ best practices with modern packaging:
rankle/
βββ pyproject.toml # Modern Python packaging (PEP 621)
βββ main.py # Entry point
βββ rankle/ # Main package
β βββ core/ # Scanner & session management
β βββ modules/ # Reconnaissance modules (DNS, SSL, etc.)
β βββ detectors/ # Technology detectors (CMS, CDN, WAF)
β βββ utils/ # Utilities and helpers
βββ config/ # Configuration & patterns
βββ tests/ # Unit tests (pytest)
Key Features:
- β Modular architecture with lazy initialization
- β
Centralized configuration in
config/ - β Automatic retry logic with exponential backoff
- β Concurrent scanning with ThreadPoolExecutor
- β Connection pooling for HTTP sessions
- β Full type hints (Python 3.11+)
See Architecture Documentation for details.
Contributions are welcome! Please see Contributing Guide for detailed guidelines.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Test:
python main.py example.com - Commit:
git commit -m "Add: Amazing feature" - Push:
git push origin feature/amazing-feature - Open a Pull Request
High Priority:
- Additional CMS fingerprints (Django, Laravel, Rails)
- More CDN providers (regional CDNs)
- Enhanced WAF detection patterns
- Version detection improvements
See Development Guide for complete details.
Authorized Use Only:
- β Authorized penetration testing
- β Bug bounty programs (with permission)
- β Security research (on your own systems)
- β Educational purposes
Prohibited Use:
- β Unauthorized access attempts
- β Malicious reconnaissance
- β Illegal activities
Security Features:
- No shell injection (never uses
shell=True) - Input validation with regex
- Timeout controls
- Graceful error handling
- Realistic User-Agent headers
See SECURITY.md for responsible use guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
This tool is provided for educational and authorized security testing purposes only.
Users must:
- Obtain proper authorization before scanning any target
- Comply with all applicable laws and regulations
- Use the tool responsibly and ethically
The authors and contributors are not responsible for any misuse or damage caused by this software.
- Named after Rankle, Master of Pranks from Magic: The Gathering
- Built with 100% Open Source libraries
- No API keys required
- Community-driven development
- Documentation: docs/
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Security: SECURITY.md
- Repository: https://github.com/javicosvml/rankle
- Documentation: docs/
- Changelog: CHANGELOG.md