sakethreddy0302/vuln_scanner

GitHub: sakethreddy0302/vuln_scanner

一款基于 Python asyncio 的异步网络侦察与漏洞扫描工具,整合子域名发现、端口扫描、DNS 审计、Web 安全标头检测与 CVE 版本匹配,并生成可视化报告。

Stars: 0 | Forks: 0

# 自动化漏洞与侦察扫描器 (AVRS) AVRS 是一款使用纯 Python 构建的异步、高性能网络侦察和漏洞扫描工具。它旨在自动化域名情报收集、快速 TCP 端口扫描、服务 Banner 识别、HTTP 配置审计以及基于版本的 CVE 关联。 作为展示性的作品集项目开发,AVRS 展示了异步网络编程(`asyncio`)、安全设计模式和自动化威胁建模的实际应用。 ## 🚀 核心功能 * **异步端口扫描器:** 自定义 TCP 连接扫描器,利用 `asyncio.open_connection` 和 Semaphore 锁。每秒可安全扫描数百个端口,无需依赖原生 socket 权限或外部二进制文件(如 Nmap)。 * **服务 Banner 抓取器:** 多阶段指纹识别,可自动检测常见协议 Banner(SSH、FTP、SMTP),或动态探测 HTTP/HTTPS 标头以提取 Web 服务器软件版本。 * **被动侦察与 DNS 安全审计器:** * 通过被动 SSL 证书日志收集进行子域名发现。 * 自动化 DNS 审计(检查 SPF、DMARC 和 MX 记录),将配置缺陷映射到电子邮件欺骗风险。 * **Web 漏洞审计器:** * 扫描缺失的响应安全标头(`Content-Security-Policy`、`X-Frame-Options`、`HSTS` 等)。 * 检测技术栈信息暴露(泄露的 `Server`、`X-Powered-By` 标头)。 * 异步目录模糊测试,探测关键资产(暴露的 `.env` 配置、`.git` 仓库状态、数据库、后门),并具备智能通配符路由检测以避免误报。 * **CVE 匹配器:** 将发现的技术版本元组与预编程的高知名度 CVE 目录(如 OpenSSH 中的 `regreSSHion` RCE 和 Apache 中的 CGI/目录遍历)进行关联。 * **精美的 HTML 评估仪表板:** 输出整洁、深色主题、响应式的报告,按严重程度(严重、高、中、低)可视化漏洞分布,并提供修复建议。 ## 🛠️ 技术栈与依赖 * **语言:** Python 3.12+(Asyncio 核心) * **库:** * `aiohttp` — 异步 HTTP 传输 * `beautifulsoup4` — HTML 解析 * `jinja2` — 报告模板 * `colorama` — 控制台彩色输出 * **环境管理:** `uv`(Astral 极速包管理器) ## 📦 快速开始 ### 1. 前置条件 请确保您已设置好 Python 虚拟环境。我们推荐使用 `uv` 以获得极速体验: ``` # 如果尚未安装 uv,请安装它: curl -LsSf https://astral.sh/uv/install.sh | sh # 初始化虚拟环境并同步依赖 uv venv uv pip install -r requirements.txt ``` ### 2. 基础扫描 **扫描目标域名的常见端口并执行全面审计(侦察、Web 和 CVE):** ``` uv run python -m vuln_scanner.main --target example.com --all ``` **在高并发限制下扫描特定端口范围:** ``` uv run python -m vuln_scanner.main --target 192.168.1.1 --ports 1-1024 --concurrency 250 --cves ``` **运行完整的 Web 审计并生成 HTML 和 JSON 报告:** ``` uv run python -m vuln_scanner.main \ --target localhost \ --ports 80,443,8080 \ --web \ --cves \ --output-json report.json \ --output-html report.html ``` ## 📋 控制台输出示例 ``` █████╗ ██╗ ██╗██████╗ ███████╗ ██╔══██╗██║ ██║██╔══██╗██╔════╝ ███████║██║ ██║██████╔╝███████╗ ██╔══██║╚██╗ ██╔╝██╔══██╗╚════██║ ██║ ██║ ╚████╔╝ ██║ ██║███████║ ╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚══════╝ Automated Vulnerability & Recon Scanner ======================================= v1.0.0 | Developer Portfolio Edition ======================================= [05:01:59] [*] --- Stage 2: Asynchronous Port Scan & Banner Grabbing --- [05:01:59] [*] Initiating scan on 127.0.0.1 for 2 ports (Concurrency: 100)... [05:01:59] [+] Port 2222 is OPEN (Unknown Service) [Banner: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5] [05:02:00] [+] Port 8080 is OPEN (HTTP-Proxy) [Banner: Apache/2.4.49] [05:02:00] [*] Scan complete. Found 2 open ports. [05:02:00] [*] --- Stage 3: Banner-to-CVE Correlation Engine --- [05:02:00] [*] Mapping service banners to vulnerability database... [05:02:00] [*] Detected service: OPENSSH Version: 8.2p1 on Port 2222 [05:02:00] [!] Vulnerability FOUND on port 2222: CVE-2021-28041 - OpenSSH double-free in ssh-agent (CVSS: 7.1) [05:02:00] [!] Vulnerability FOUND on port 2222: CVE-2020-15778 - OpenSSH SCP Command Injection (CVSS: 7.8) [05:02:00] [*] Detected service: APACHE Version: 2.4.49 on Port 8080 [05:02:00] [!] Vulnerability FOUND on port 8080: CVE-2021-41773 - Apache HTTP Server Path Traversal and RCE (CVSS: 9.8) [05:02:00] [!] Vulnerability FOUND on port 8080: CVE-2022-31813 - Apache HTTP Server mod_proxy bypass (CVSS: 7.5) [05:02:00] [*] Vulnerability mapping complete. Found 4 CVE matches. [05:02:00] [*] --- Stage 4: Web Application Vulnerability Probing --- [05:02:00] [*] Starting web application security audit on http://127.0.0.1:8080... [05:02:00] [*] Checking for wildcard routing on http://127.0.0.1:8080... [05:02:00] [*] Brute forcing 15 common paths on http://127.0.0.1:8080... [05:02:00] [+] Discovered potential asset: /.git/HEAD (status 200) [05:02:00] [+] Discovered potential asset: /.env (status 200) [05:02:00] [!] Vulnerability FOUND on port 8080: Missing Security Header: Content-Security-Policy (Medium Severity) [05:02:00] [!] Vulnerability FOUND on port 8080: Exposed Environment Variables (.env) (Critical Severity) [05:02:00] [!] Vulnerability FOUND on port 8080: Exposed Git Repository (High Severity) [05:02:00] [*] --- Stage 5: Generating Assessment Reports --- [05:02:00] [+] JSON Report written to: report.json [05:02:00] [+] Premium HTML Report written to: report.html [05:02:00] [+] Assessment of 127.0.0.1 completed successfully. ``` ## 🔒 安全与安全审计策略 AVRS 不会进行主动利用(例如缓冲区溢出、SQL 注入或远程 shell 执行)。它专注于被动枚举、签名匹配、配置读取和 HTTP 标头验证。 **在对非自有目标进行扫描之前,请务必获得明确的书面授权。**
标签:Python, 加密, 实时处理, 密码管理, 异步编程, 插件系统, 无后门, 漏洞扫描器, 计算机取证, 逆向工具