βββββββββββ ββββββββββββββββββ ββββββββββββββββ βββ ββββββββββββββββββββ ββββββ βββ
βββββββββββ βββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββ
ββββββ βββ βββββββββ ββββββββ βββ βββββββββββ βββββββββββ βββ βββββββββββ
ββββββ ββββ ββββββββββ ββββββββ βββ βββββββββββ βββββββββββ βββ βββββββββββ
ββββββββ βββββββ βββββββββββ βββ βββ βββ ββββββββββββββββββββ βββ βββ ββββββ
ββββββββ βββββ βββββββββββ βββ βββ βββ βββ βββββββ ββββββββ βββ βββ ββββββ
π AI-Assisted Bug Bounty Reconnaissance & Scanner
Reconnaissance | JavaScript Analysis | Secret Detection | Reporting
This tool is designed for authorized security testing only.
- β Use only on assets you own or have explicit written permission to test
- β Unauthorized access to computer systems is illegal
- π Always follow responsible disclosure practices
- βοΈ The authors are not responsible for any misuse or damage
By using this tool, you agree to use it ethically and legally.
- Multiple Sources: crt.sh, SecurityTrails API, assetfinder, subfinder
- Automatic Deduplication: Clean, unique subdomain lists
- Export Formats: Text and JSON output
- Intelligent Crawling: Discovers JS files from live subdomains
- Comprehensive Extraction: Inline and external JavaScript
- Async Performance: Fast concurrent crawling
- Organized Storage: Files organized by domain
- Progress Tracking: Real-time download progress
- Error Handling: Robust retry logic
Detects 30+ types of sensitive data:
- β AWS Access Keys & Secrets
- β JWT Tokens
- β Firebase API Keys & Config
- β GitHub Tokens
- β Stripe Keys
- β Google API Keys
- β Slack Tokens
- β OAuth Tokens
- β Hardcoded Passwords
- β Database Credentials
- β Private Keys
- β Internal URLs
- β GraphQL Endpoints
- β Admin Endpoints
- And many more...
- Extensible Architecture: Easy to add custom detection rules
- Auto-Loading: Plugins automatically discovered and loaded
- Modular Design: Each plugin focuses on specific patterns
- Console Reports: Beautiful, color-coded terminal output
- JSON Reports: Machine-readable structured data
- Severity Classification: Critical, High, Medium, Low
- Detailed Context: Line numbers, masked values, descriptions
- Python 3.10 or higher
- pip package manager
# Clone the repository
git clone https://github.com/evertrustai/evertrustai.git
cd evertrustai
# Install dependencies
pip install -r requirements.txt
# Optional: Install external tools for enhanced enumeration
# assetfinder (Go required)
go install github.com/tomnomnom/assetfinder@latest
# subfinder (Go required)
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest# Full scan with all features
python evertrustai.py -d example.com --js-scan --report
# Subdomain enumeration only
python evertrustai.py -d example.com --enum-only
# JavaScript discovery only
python evertrustai.py -d example.com --js-only
# Scan existing JS files
python evertrustai.py -d example.com --scan-dir js_files/example.com
# Detailed report with findings
python evertrustai.py -d example.com --js-scan --report --detailedRequired:
-d, --domain DOMAIN Target domain (e.g., example.com)
Scan Modes:
--enum-only Only perform subdomain enumeration
--js-only Only discover JavaScript files
--js-scan Download and scan JavaScript files
--scan-dir DIR Scan existing directory of JS files
Reporting:
--report Generate detailed reports
--detailed Show detailed findings in console
Configuration:
--max-concurrent N Max concurrent requests (default: 10)
--output-dir DIR Output directory (default: output)
--js-dir DIR JS files directory (default: js_files)
--reports-dir DIR Reports directory (default: reports)
--api-key KEY SecurityTrails API key (optional)
python evertrustai.py -d target.com --enum-onlypython evertrustai.py -d target.com --js-scan --report --detailed# First, create a custom subdomain list
echo "api.target.com" > output/subdomains.txt
echo "app.target.com" >> output/subdomains.txt
# Then run JS scan
python evertrustai.py -d target.com --js-scan --reportevertrustai/
βββ core/
β βββ __init__.py
β βββ banner.py # ASCII banner and metadata
β βββ enumerator.py # Subdomain enumeration
β βββ js_finder.py # JavaScript discovery
β βββ js_downloader.py # Bulk JS download
β βββ scanner.py # Vulnerability scanner
β βββ reporter.py # Report generation
βββ plugins/
β βββ __init__.py
β βββ base_plugin.py # Plugin base class
β βββ aws_keys.py # AWS credential detection
β βββ jwt_tokens.py # JWT token detection
β βββ firebase.py # Firebase key detection
β βββ custom_rules.py # Generic patterns
βββ utils/
β βββ __init__.py
β βββ helpers.py # Utility functions
β βββ http_client.py # Async HTTP client
βββ output/ # Subdomain lists
βββ js_files/ # Downloaded JS files
βββ reports/ # JSON reports
βββ evertrustai.py # Main entry point
βββ requirements.txt # Dependencies
βββ README.md # This file
Extend evertrustai with custom detection rules:
# plugins/my_custom_plugin.py
from typing import List, Dict
from plugins.base_plugin import BasePlugin
class MyCustomPlugin(BasePlugin):
"""Detect custom patterns"""
def get_patterns(self) -> List[Dict]:
"""Define your detection patterns"""
return [
{
'pattern': r'your-regex-pattern-here',
'severity': 'High', # Critical, High, Medium, Low
'type': 'Custom Finding Type',
'description': 'Description of what was found'
}
]The plugin will be automatically loaded on next run!
βββ PHASE 1: SUBDOMAIN ENUMERATION βββ
β Querying crt.sh for example.com...
β crt.sh: Found 45 subdomains
β Running subfinder for example.com...
β subfinder: Found 32 subdomains
β Total unique subdomains found: 67
βββ PHASE 4: VULNERABILITY SCANNING βββ
β Loading scanner plugins...
β Loaded: AWSKeysPlugin
β Loaded: JWTTokensPlugin
β Loaded: FirebasePlugin
β Loaded: CustomRulesPlugin
β Loaded 4 plugins
π Scanning 156 JavaScript files for vulnerabilities...
[ββββββββββββββββββββββββ] 100% (156/156)
β Scan complete!
Total findings: 23
π΄ Critical: 3
π High: 8
π‘ Medium: 9
π΅ Low: 3
{
"scan_metadata": {
"target": "example.com",
"scan_time": "2025-12-25T16:42:00",
"total_findings": 23
},
"summary": {
"by_severity": {
"Critical": 3,
"High": 8,
"Medium": 9,
"Low": 3
}
},
"findings": [
{
"plugin": "AWSKeysPlugin",
"severity": "Critical",
"type": "AWS Access Key ID",
"file": "js_files/example.com/config.js",
"line": 42,
"value": "AKIA****EXAMPLE****",
"context": "const awsKey = 'AKIA...';"
}
]
}- Always Get Permission: Only test on in-scope assets
- Read the Policy: Understand the bug bounty program rules
- Rate Limiting: Use
--max-concurrentto avoid overwhelming targets - Responsible Disclosure: Report findings through proper channels
- Document Everything: Keep detailed notes of your testing
- Respect Privacy: Don't access or exfiltrate user data
- Follow the Law: Comply with all applicable laws and regulations
Contributions are welcome! Here's how you can help:
- Report Bugs: Open an issue with details
- Suggest Features: Share your ideas
- Submit Plugins: Create new detection plugins
- Improve Documentation: Help others understand the tool
- Code Contributions: Submit pull requests
This project is licensed under the MIT License - see the LICENSE file for details.
Ananthan
- Email: evertrustai@gmail.com
- GitHub: @evertrustai
- Thanks to the bug bounty community for inspiration
- Built with β€οΈ for ethical hackers and security researchers
- Powered by Python and open-source libraries
β‘ Happy Hunting! β‘
Remember: With great power comes great responsibility.