PROJECT

AutoX

TYPE CLI Tool
DATE November 2024
CATEGORY Penetration Testing

Overview

Loading Animation...

AutoX is a powerful Python-based automation tool designed for advanced web reconnaissance and vulnerability scanning. It integrates technology detection using Wappalyzer with dynamic Nuclei scans, targeting identified tech stacks and versions for precision-based assessments. The script offers multi-source vulnerability enrichment, including CVE lookups via NVD, ExploitDB scraping, Vulners API queries, and Metasploit module checks. With features like multithreading, configurable scanning intensity, and comprehensive reporting, AutoX streamlines the vulnerability assessment process while providing actionable insights.

Key Features

Smart Technology Detection

Advanced technology fingerprinting that identifies web frameworks, libraries, and their specific versions to enable targeted vulnerability scanning.

Dynamic Scan Generation

Automatically creates and executes custom Nuclei scan templates based on the detected technologies, focusing only on relevant vulnerabilities.

Exploit Correlation

Seamlessly integrates with multiple exploit databases to provide actionable exploit information for identified vulnerabilities.

Comprehensive Reporting

Generates detailed reports in multiple formats (PDF, HTML, JSON) with severity ratings, exploit details, and specific remediation recommendations.

Technical Details

AutoX is built with Python 3 and employs a modular architecture that allows for easy extension and customization. The core functionality is divided into separate modules for technology detection, vulnerability scanning, exploit correlation, and reporting. The tool leverages various APIs and integrates with existing security tools through subprocess management and API interactions. To ensure performance, AutoX implements multithreading for parallel processing and employs intelligent caching to reduce redundant API calls and speed up subsequent scans.

Python
def scan_single_url(url, args):
    """
    Scan a single URL for vulnerabilities
    """
    print(f"\n{Fore.CYAN}Scanning domain: {url}{Style.RESET_ALL}")
    technologies = {}
    if not args.no_tech:
        wappalyzer = Wappalyzer.latest()
        webpage = WebPage.new_from_url(url, verify=not args.ignore_ssl)
        technologies = wappalyzer.analyze_with_versions_and_categories(webpage)

    scan_results = {}
    for tech_name, tech_info in technologies.items():
        print(f"\n{tech_name}:")
        version = extract_version(tech_info)
        if version:
            print(f"  Version: {Fore.YELLOW}{version}{Style.RESET_ALL}")

        scan_output = run_nuclei_scan(url, tech_name, version)
        if scan_output:
            findings = parse_nuclei_output(scan_output)
            if findings:
                scan_results[tech_name] = []
                print(f"\nFindings for {tech_name}:")
                for finding in findings:
                    try:
                        severity = finding.get('severity', 'Unknown').upper()
                        name = finding.get('name', 'Unknown')
                        template = finding.get('template', 'Unknown')
                        description = finding.get('description', '')
                        matched_at = finding.get('matched_at', '')

                        print(f"\n  [{severity}] {name}")
                        print(f"  Template: {template}")
                        if description:
                            print(f"  Description: {description}")
                        if matched_at:
                            print(f"  Matched at: {matched_at}")

                        enriched_finding = enrich_vulnerability_data(finding)
                        scan_results[tech_name].append(enriched_finding)

                        if enriched_finding['exploit_db']:
                            print(f"\n  {Fore.RED}Available Exploits:{Style.RESET_ALL}")
                            for exploit in enriched_finding['exploit_db']:
                                print(f"    - {exploit['title']}")
                                print(f"      URL: {exploit['url']}")

                        if enriched_finding['metasploit']:
                            print(f"\n  {Fore.RED}Metasploit Modules:{Style.RESET_ALL}")
                            for module in enriched_finding['metasploit']:
                                print(f"    - {module['name']}")
                                print(f"      Path: {module['path']}")

                        if enriched_finding['vulners']:
                            vuln_info = enriched_finding['vulners']
                            print(f"\n  {Fore.YELLOW}Additional Information:{Style.RESET_ALL}")
                            print(f"    CVSS Score: {vuln_info.get('cvss_score', 'N/A')}")
                            print(f"    Published: {vuln_info.get('published', 'N/A')}")
                            if vuln_info.get('references', []):
                                print("    References:")
                                for ref in vuln_info['references'][:3]:
                                    print(f"      - {ref}")

                    except Exception as e:
                        print(f"{Fore.RED}Error processing finding: {str(e)}{Style.RESET_ALL}")
                        continue
            else:
                print(f"{Fore.GREEN}  No vulnerabilities found for {tech_name}{Style.RESET_ALL}")
        else:
            print(f"{Fore.GREEN}  No vulnerabilities found for {tech_name}{Style.RESET_ALL}")

    return scan_results

Technologies Used

Python Nuclei Wappalyzer APIs Multithreading

Impact & Results

AutoX has significantly transformed the security assessment workflow for penetration testers and security teams. By automating the reconnaissance phase and integrating technology detection with targeted vulnerability scanning, AutoX reduces the assessment time by up to 70% while increasing the accuracy of findings. The tool's ability to correlate vulnerabilities with exploit information and provide actionable remediation steps has made it invaluable for security professionals who need to efficiently identify and address security issues across large digital footprints.

70%
Assessment Time Reduction
3x
Vulnerability Detection Rate
95%
Accuracy

Interested in working together?