🔍 高性能SSL/TLS证书扫描工具,支持对大量IP段进行并发扫描并将结果存储到SQLite数据库中。
此前已经使用这个程序获取了dmit/racknerd/搬瓦工的所有IP的SSL元信息数据。
GitHub地址 https://github.com/nodeseeker/CertHunter
使用示例
DMIT代理了microsoft.com的IP地址
搬瓦工代理了apple.com的IP地址
✨ 主要特性
- 🚀 高并发扫描: 支持数千并发,快速扫描大量IP
- 📊 批量处理: 事务批量写入,提高数据库性能
- 🎯 精准扫描: 支持多个CIDR IP段同时扫描
- 💾 高效存储: SQLite数据库,支持WAL模式优化
- 🔧 灵活配置: 命令行参数支持,配置文件可定制
- 📈 实时进度: 详细的扫描进度和统计信息
- 🛡️ 错误处理: 完善的错误处理和超时机制
🚀 快速开始
1. 安装程序
在 release 页面下载预编译的二进制文件,请注意对应的CPU架构和系统。当前支持AMD64和ARM64架构的Linux、macOS和Windows系统。
2. 运行扫描
# 使用默认配置文件 config.json./CertHunter
⚙️ 配置文件
建议使用下载中所带有的示例config.json
,并将其修改为适合系统性能的配置。其中,cidrs
为要扫描的IP段数组(CIDR格式)。
配置示例
{ "cidrs": [ "198.46.218.0/24", "107.175.44.0/24", "192.3.54.0/24" ], "port": "443", "concurrency": 2000, "timeout": 3, "db_file": "ssl_scan_optimized.db", "batch_size": 10000}
📈 性能基准
在1
核心1G
内存1Gbps
的VPS
上,对40640
个IP
地址进行扫描,公获得5754
个证书,共耗时29.43
秒。详细时间如下:
real 0m29.430suser 0m18.184ssys 0m8.104s
采用的配置如下:
"concurrency": 2000,"timeout": 3,"batch_size": 10000
统计数据如下:
规模 | IP数量 | 时间 | 速度 | 内存使用 | 上行速度 | 下行速度 |
---|---|---|---|---|---|---|
中型 | 40640 | ~30秒 | ~1380 IP/s | ~250MB | 4-15Mbps | 10-15Mbps |
💾 数据库查询
基础查询
sqlite3 ssl_scan.db # 使用SQLite3进入指定数据库
-- 查询特定域名的证书SELECT ip, common_name, dns_names FROM certificates WHERE common_name LIKE '%example.com%';-- 查询特定IP的证书,比如192.168.1.1SELECT * FROM certificates WHERE ip = '192.168.1.1';-- 统计域名分布,查看前10个最常用的域名SELECT common_name, COUNT(*) as count FROM certificates WHERE error IS NULL OR error = '' GROUP BY common_name ORDER BY count DESC LIMIT 10;
🎯 使用场景
- 网络安全审计: 扫描企业网络中的SSL/TLS证书部署情况
- 证书管理: 批量检查证书有效期和配置
- 合规检查: 验证SSL/TLS证书的部署和配置规范
- 资产发现: 发现网络中开放SSL/TLS服务的设备