JOSIAHTHEPROGRAMMER/vulnerability-scanner
GitHub: JOSIAHTHEPROGRAMMER/vulnerability-scanner
面向开发者和安全工程师的模块化命令行漏洞扫描器,一站式覆盖依赖 CVE、代码静态分析、端口探测与 Web 配置审计。
Stars: 0 | Forks: 0
# 漏洞扫描器



一个模块化、基于 CLI 的漏洞扫描器,使用 Python 构建。涵盖四个攻击面:
依赖项 CVE、静态代码分析、网络端口扫描和 Web 应用配置错误检查。
## 模块
| 命令 | 扫描内容 |
| --------- | -------------------------------------------------------------------------------------- |
| `deps` | 将 `requirements.txt` 与 OSV 数据库进行比对,检查已知的 CVE |
| `code` | 扫描 Python 文件以查找危险模式(硬编码密钥、eval、shell 注入等) |
| `network` | 对主机进行端口扫描并抓取服务 banner |
| `web` | 检查在线 URL 是否缺少安全标头、暴露文件以及服务器信息披露 |
## 安装
```
git clone https://github.com/JOSIAHTHEPROGRAMMER/vulnerability-scanner.git
cd vulnerability-scanner
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
```
## 使用说明
### 依赖扫描器
```
python main.py deps requirements.txt
python main.py deps requirements.txt --json
```
### 静态代码分析器
```
python main.py code scanner/
python main.py code path/to/file.py
```
### 静态分析规则
检测项:硬编码密钥、`eval`/`exec`、通过 `shell=True` 进行 shell 注入、SQL 注入、
不安全的反序列化(`pickle`、`marshal`)、弱哈希(`md5`/`sha1`)、不安全的 `yaml.load`、
禁用 SSL 验证、存在漏洞的 XML 解析器、不安全的 `random` 用法、`tempfile.mktemp`、
禁用 Jinja2 自动转义,以及未加密的协议(FTP/Telnet)。
### 网络扫描器
```
python main.py network scanme.nmap.org
python main.py network 192.168.1.1 --ports 22,80,443
python main.py network 192.168.1.1 --ports 1-1024 --timeout 0.5
```
### Web 应用扫描器
```
python main.py web https://example.com
python main.py web http://example.com --json
```
检查项:缺失的安全标头(CSP、HSTS、X-Frame-Options 等)、服务器版本
信息披露,以及暴露的敏感路径(`.env`、`.git/config`、`wp-config.php` 等)。
## 输出
所有命令均支持 `--json` 以输出机器可读的格式:
```
python main.py deps requirements.txt --json | jq '.[] | select(.severity == "HIGH")'
```
严重级别:`CRITICAL` `HIGH` `MEDIUM` `LOW`
## 测试
```
pytest tests/ -v
```
涵盖所有四个模块的 41 个测试。CI 会在每次推送时通过 GitHub Actions 自动运行,
针对 Python 3.12、3.13 和 3.14 进行测试。
## 项目结构
```
vulnscanner/
├── scanner/
│ ├── deps.py # OSV CVE lookup
│ ├── code.py # static analysis
│ ├── network.py # port scanner
│ └── web.py # web misconfiguration checks
├── tests/
│ ├── test_deps.py
│ ├── test_code.py
│ ├── test_network.py
│ └── test_web.py
├── main.py # CLI entry point
└── requirements.txt
```
## 已知限制
- 静态代码分析器使用 regex,而不是 AST 解析。如果
字符串字面量包含被标记的关键字(例如注释或规则定义中的 `eval` 一词),将会产生误报。
- 网络扫描器是单线程的。扫描大范围端口会很慢。
- Web 检查仅为被动检查——不会进行任何主动注入尝试。
- OSV 的结果反映了扫描时已知的信息。请定期重新扫描,以便获取新发布的 CVE。
## 法律声明
仅扫描您拥有或获得明确测试许可的系统。
标签:Python, 云存储安全, 加密, 安全专业人员, 安全规则引擎, 实时处理, 插件系统, 文档结构分析, 无后门, 漏洞扫描器, 网络扫描, 网络调试, 自动化, 逆向工具, 错误基检测, 静态代码分析