| from flask import Flask |
| from flask_socketio import SocketIO |
| import argparse |
| from utils import logger |
| from modules.recon import ReconEngine |
| from modules.scanner import ScannerEngine |
| from modules.analyst import AnalystEngine |
| from modules.report import ReportGenerator |
|
|
| app = Flask(__name__) |
| socketio = SocketIO(app) |
| def banner(): |
| print(r""" |
| CHIMERA V1.0 |
| [ Automated Vulnerability & Logic Scanner ] |
| [ GitHub Ready | Smart Context-Aware ] |
| """) |
|
|
| def main(): |
| banner() |
| parser = argparse.ArgumentParser(description="Chimera Web Scanner") |
| parser.add_argument("-u", "--url", help="Target URL", required=True) |
| args = parser.parse_args() |
|
|
| target = args.url |
|
|
| |
| logger.info("--- PHASE 1: RECONNAISSANCE ---") |
| recon = ReconEngine(target) |
| endpoints = recon.start() |
| |
| if not endpoints: |
| logger.error("No endpoints found. Exiting.") |
| return |
|
|
| |
| logger.info("\n--- PHASE 2: VULNERABILITY SCANNING ---") |
| scanner = ScannerEngine() |
| raw_vulnerabilities = scanner.start(endpoints) |
|
|
| if not raw_vulnerabilities: |
| logger.success("No vulnerabilities found.") |
| return |
|
|
| |
| logger.info("\n--- PHASE 3: INTELLIGENT ANALYSIS ---") |
| analyst = AnalystEngine(raw_vulnerabilities) |
| final_vulnerabilities = analyst.start() |
|
|
| |
| logger.info("\n--- PHASE 4: REPORT GENERATION ---") |
| reporter = ReportGenerator(final_vulnerabilities) |
| reporter.generate() |
|
|
| if __name__ == '__main__': |
| |
| socketio.run(app, debug=True, use_reloader=False) |