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, 加密, 实时处理, 密码管理, 异步编程, 插件系统, 无后门, 漏洞扫描器, 计算机取证, 逆向工具