一个用于使用 Shodan API 和 NVD API 扫描和分析 CVE 的高级安全工具。该工具支持大规模资产漏洞扫描,自动翻译漏洞信息,并提供详细的安全分析报告。
- Shodan 资产发现:使用强大的 Shodan 搜索语法识别互联网上的资产
- NVD 漏洞查询:实时查询美国国家漏洞数据库获取漏洞详情
- 多语言支持:自动将漏洞描述翻译成中文(支持多种翻译服务自动切换)
- 智能缓存:缓存查询结果以提高性能并减少 API 调用
- 并发处理:高效的并发处理以加速大规模扫描
- 断点恢复:支持中断后从断点继续扫描
- GitHub 利用脚本识别:自动搜索漏洞相关的 GitHub 利用代码
- AI 增强分析:使用 GPT 分析漏洞,提供额外的安全见解
- 导出格式化报告:以 CSV 格式导出详细的漏洞报告
- Python 3.7 或更高版本
- Shodan API 密钥
- NVD API 密钥 (可选但推荐)
- GitHub 令牌 (可选)
- OpenAI API 密钥 (可选)
- 克隆仓库:
git clone https://github.com/username/ShodanSentry.git
cd ShodanSentry
- 安装依赖:
pip install -r requirements.txt
或者使用 setup.py 安装:
pip install -e .
- 配置 API 密钥:
复制并修改配置文件:
cp config.yaml.example config.yaml
然后编辑 config.yaml
文件,添加您的 API 密钥和配置选项。
配置文件 config.yaml
包含以下主要部分:
# Shodan API配置
api:
key: "YOUR_SHODAN_API_KEY"
base_url: "https://api.shodan.io"
timeout: 120
# 搜索配置
search:
query: "org:'Target Organization'"
limit: 100
# NVD API配置
nvd:
api_key: "YOUR_NVD_API_KEY"
rate_limit: 50
batch_size: 10
concurrent_requests: 5
cache_ttl: 86400
# 其他可选配置
# ...
-
api: Shodan API 配置
key
: Shodan API 密钥timeout
: 请求超时时间(秒)
-
search: 搜索配置
query
: Shodan 搜索查询语句limit
: 要处理的页数限制
-
nvd: NVD API 配置
api_key
: NVD API 密钥rate_limit
: 速率限制(每 30 秒的请求数)batch_size
: 批量请求大小concurrent_requests
: 并发请求数
-
openai: OpenAI 配置(可选)
api_key
: OpenAI API 密钥base_url
: API 基础 URLmodel
: 模型名称
-
github: GitHub 配置(可选)
token
: GitHub API 令牌
-
output: 输出配置
csv_headers
: CSV 输出字段
执行扫描:
python cve_stats.py
或者如果已经通过 setup.py 安装:
cve-scanner
- 扫描特定组织的资产:
# 在 config.yaml 中
search:
query: "org:'Example Corp'"
limit: 10
- 扫描特定端口或服务:
search:
query: "port:80 http"
limit: 5
- 扫描特定国家的资产:
search:
query: "country:CN org:'Example Corp'"
limit: 10
扫描结果将保存在 cve_simple_stats.csv
文件中,包含以下信息:
- 查询语句
- CVE 编号
- 影响资产数量
- 漏洞已验证状态
- 漏洞名称
- 漏洞描述(英文和中文)
- 严重程度和 CVSS 分数
- 受影响的软件配置
- 参考信息
- 发布和修改日期
扫描过程中的日志信息将保存在 cve_scan.log
文件中,同时会在控制台显示。日志包含扫描进度、API 调用状态和错误信息等。
工具会自动缓存 NVD API 响应和翻译结果以提高性能:
- CVE 详情缓存有效期:1 天
- 翻译结果缓存有效期:7 天
缓存数据保存在 ./cve_cache
目录中。如需清除缓存,只需删除该目录。
- 请注意遵守 Shodan、NVD、OpenAI 和 GitHub 的服务条款和 API 使用限制
- 对于大规模扫描,建议增加
limit
值并确保有足够的 API 配额 - 该工具适用于合法的安全评估和研究目的
本项目采用 MIT 许可证。详见 LICENSE 文件。