Skip to content

Latest commit

Β 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

evertrustai

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β•šβ•β•β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β•šβ•β•β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘
β–ˆβ–ˆβ•”β•β•β•  β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•”β•β•β•  β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β•šβ•β•β•β•β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘
β•šβ•β•β•β•β•β•β•  β•šβ•β•β•β•  β•šβ•β•β•β•β•β•β•β•šβ•β•  β•šβ•β•   β•šβ•β•   β•šβ•β•  β•šβ•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•   β•šβ•β•   β•šβ•β•  β•šβ•β•β•šβ•β•

πŸ” AI-Assisted Bug Bounty Reconnaissance & Scanner

Version Python License

Reconnaissance | JavaScript Analysis | Secret Detection | Reporting


⚠️ ETHICAL USE WARNING

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.


πŸš€ Features

πŸ” Subdomain Enumeration

  • Multiple Sources: crt.sh, SecurityTrails API, assetfinder, subfinder
  • Automatic Deduplication: Clean, unique subdomain lists
  • Export Formats: Text and JSON output

πŸ“œ JavaScript Discovery

  • Intelligent Crawling: Discovers JS files from live subdomains
  • Comprehensive Extraction: Inline and external JavaScript
  • Async Performance: Fast concurrent crawling

πŸ“₯ Bulk JavaScript Download

  • Organized Storage: Files organized by domain
  • Progress Tracking: Real-time download progress
  • Error Handling: Robust retry logic

πŸ” Secret Detection

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...

πŸ”Œ Plugin System

  • Extensible Architecture: Easy to add custom detection rules
  • Auto-Loading: Plugins automatically discovered and loaded
  • Modular Design: Each plugin focuses on specific patterns

πŸ“Š Professional Reporting

  • 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

πŸ“¦ Installation

Prerequisites

  • Python 3.10 or higher
  • pip package manager

Quick Install

# 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

🎯 Usage

Basic Usage

# 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 --detailed

Command Line Options

Required:
  -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)

Example Workflows

1. Quick Reconnaissance

python evertrustai.py -d target.com --enum-only

2. Full Bug Bounty Scan

python evertrustai.py -d target.com --js-scan --report --detailed

3. Scan Specific Subdomains

# 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 --report

πŸ“ Project Structure

evertrustai/
β”œβ”€β”€ 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

πŸ”Œ Creating Custom Plugins

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!


πŸ“Š Output Examples

Console Output

═══ 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

JSON Report Structure

{
  "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...';"
    }
  ]
}

πŸ›‘οΈ Bug Bounty Best Practices

  1. Always Get Permission: Only test on in-scope assets
  2. Read the Policy: Understand the bug bounty program rules
  3. Rate Limiting: Use --max-concurrent to avoid overwhelming targets
  4. Responsible Disclosure: Report findings through proper channels
  5. Document Everything: Keep detailed notes of your testing
  6. Respect Privacy: Don't access or exfiltrate user data
  7. Follow the Law: Comply with all applicable laws and regulations

🀝 Contributing

Contributions are welcome! Here's how you can help:

  1. Report Bugs: Open an issue with details
  2. Suggest Features: Share your ideas
  3. Submit Plugins: Create new detection plugins
  4. Improve Documentation: Help others understand the tool
  5. Code Contributions: Submit pull requests

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ‘€ Author

Ananthan


πŸ™ Acknowledgments

  • Thanks to the bug bounty community for inspiration
  • Built with ❀️ for ethical hackers and security researchers
  • Powered by Python and open-source libraries

πŸ“š Resources


⚑ Happy Hunting! ⚑

Remember: With great power comes great responsibility.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages