Ingram:网络摄像头漏洞扫描工具3大核心能力与实战应用指南
项目价值定位:守护物联网视觉入口安全
在物联网设备快速普及的背景下,网络摄像头作为关键的视觉感知入口,其安全防护已成为网络安全体系的重要组成部分。Ingram作为一款专注于网络摄像头安全检测的开源工具,通过系统化的漏洞识别机制,为安全研究人员和运维团队提供了专业级的安全审计能力。该工具整合了弱密码检测、CVE漏洞利用验证、设备指纹识别等核心功能,能够有效发现并预警网络摄像头存在的安全风险,为构建物联网安全防线提供技术支撑。
技术原理浅析:模块化扫描引擎架构
Ingram采用插件化架构设计,其核心检测能力来源于三个关键模块:
1. 设备发现引擎
基于utils/port_scan.py和utils/alive_check.py实现网络设备存活探测与端口开放状态检测,通过多线程并发扫描技术提高检测效率,支持CIDR网段批量扫描。
2. 漏洞检测框架
以pocs/目录下的各检测脚本为核心,采用"一漏洞一脚本"的设计模式,每个脚本实现特定漏洞的检测逻辑。例如cve-2021-36260.py针对特定品牌摄像头的认证绕过漏洞,通过发送构造的HTTP请求并分析响应特征实现漏洞验证。
3. 结果处理系统
通过core.py整合扫描任务调度、结果收集与报告生成功能,结合utils/log.py实现详细的日志记录,为后续安全分析提供完整数据支持。
核心功能解析:从问题到解决方案
弱密码检测:破解默认凭证风险
安全问题:超过60%的网络摄像头安全事件源于使用默认或弱密码,导致未授权访问风险。
解决方案:通过pocs目录下的品牌专用弱密码检测脚本(如dahua-weak-password.py、hikvision-weak-password.py),结合内置的常见凭证字典,对目标设备进行批量登录尝试。
应用场景:企业内网摄像头安全普查、新部署设备初始配置审计。
CVE漏洞利用验证:零日漏洞响应机制
安全问题:已公开的摄像头CVE漏洞(如CVE-2017-7921、CVE-2021-36260)常被黑客利用,造成设备控制权丧失。
解决方案:Ingram内置多种CVE漏洞检测模块,通过模拟攻击载荷发送与响应分析,快速验证目标设备是否存在特定漏洞。
应用场景:漏洞情报响应、安全补丁有效性验证。
设备指纹识别:资产梳理基础
安全问题:网络中存在大量未知型号摄像头设备,难以进行针对性安全管理。
解决方案:utils/fingerprint.py通过分析设备HTTP响应头、端口开放特征、特定路径访问响应等多维度信息,实现摄像头品牌与型号识别。
应用场景:企业资产清点、针对性漏洞检测优先级排序。
场景化应用指南:从实验室到生产环境
家庭网络安全审计
适用场景:个人用户检测家庭网络中智能摄像头的安全状态
操作步骤:
# 1. 确认Python环境(需3.6+版本)
python --version
# 2. 克隆项目仓库
git clone https://gitcode.com/gh_mirrors/in/Ingram
cd Ingram
# 3. 安装依赖包
pip install -r requirements.txt
# 4. 执行扫描(替换为家庭网络网段)
python run_ingram.py -t 192.168.0.0/24 --timeout 5
[!NOTE] 家庭网络扫描建议使用较低的线程数(默认10线程),避免对网络设备造成压力。扫描结果中的"弱密码风险"项需优先处理。
企业级设备巡检
适用场景:企业安全团队对办公区域及生产环境摄像头进行定期安全评估
操作步骤:
# 1. 进行全端口深度扫描
python run_ingram.py -t 10.0.10.0/24 -p 1-65535 --deep
# 2. 针对特定CVE进行专项检测
python run_ingram.py -t 10.0.10.10-20 --cve CVE-2021-33044,CVE-2021-33045
# 3. 生成HTML格式报告
python run_ingram.py -t 10.0.10.0/24 --report html --output security_audit_202308.html
[!WARNING] 企业网络扫描前需获得明确授权,避免触犯网络安全相关法律法规。建议在非工作时间执行扫描以减少对业务系统的影响。
进阶配置策略:从基础到专业
基础版配置(适用于入门用户)
通过修改config.py文件调整核心参数:
# 基础扫描配置
SCAN_TIMEOUT = 5 # 超时时间(秒)
THREAD_NUM = 10 # 扫描线程数
PORT_TOP = 100 # 常用端口数量
专业版配置(适用于安全从业者)
-
自定义漏洞检测规则
编辑rules.csv文件添加新的检测规则:# 格式:漏洞ID,检测脚本,风险等级,描述 CUSTOM-2023-001,my_custom_poc.py,high,自定义品牌摄像头信息泄露漏洞 -
集成第三方漏洞库
修改core.py文件中的漏洞库加载逻辑,实现与外部漏洞情报平台的对接:# 添加外部漏洞库集成代码 def load_external_vuldb(): # 实现第三方API调用逻辑 pass -
分布式扫描部署
通过修改utils/net.py中的网络通信模块,实现多节点协同扫描,提高大型网络的检测效率。
常见问题解决与优化建议
环境兼容性问题
问题:执行扫描时出现依赖包冲突
解决方案:
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# 重新安装依赖
pip install --upgrade pip
pip install -r requirements.txt
扫描效率优化
- 针对大型网络:使用CIDR分段扫描,结合--batch参数实现任务拆分
- 减少误报:通过--verify参数启用漏洞验证模式,增加二次确认步骤
- 资源控制:使用--rate-limit参数限制发包速率,避免触发设备防护机制
风险等级评估标准
Ingram扫描结果采用四级风险评估体系:
| 风险等级 | 标识 | 定义 | 处理建议 |
|---|---|---|---|
| 严重 | CRITICAL | 可直接远程控制设备或获取敏感数据 | 立即下线整改 |
| 高 | HIGH | 存在认证绕过或命令执行漏洞 | 24小时内修复 |
| 中 | MEDIUM | 信息泄露或配置缺陷 | 一周内完成修复 |
| 低 | LOW | 潜在安全隐患,暂不影响核心功能 | 下次维护时处理 |
总结:构建物联网视觉安全防线
Ingram作为专业的网络摄像头漏洞扫描工具,通过其模块化设计和丰富的检测能力,为不同规模的安全需求提供了灵活的解决方案。无论是个人用户的家庭网络审计,还是企业级的安全巡检,都能通过Ingram实现高效、准确的安全评估。随着物联网设备的持续增长,定期使用Ingram进行安全检测,将成为守护网络视觉入口安全的重要实践。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0446
源启盛夏_AtomGit暑期开发者成长计划「源启盛夏」暑期校园开发者成长计划旨在激活校园开源力量,通过积分激励、认证扶持、资源倾斜等形式,引导高校组织和开发者完成「入驻 — 建项目 — 做贡献 — 获认证 — 得资源」的完整闭环。无论你是想带领社团入驻平台的组织者,还是希望用代码贡献证明自己的开发者,都能在这里找到属于你的成长路径。Markdown00
jiuwenswarmJiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0761
Hy3Hy3 是由腾讯混元团队研发的快慢思考融合的混合专家模型,总参数量 295B,激活参数 21B,MTP 层参数 3.8B。4 月底发布 Hy3 Preview 后,我们在 50 多个业务中获得了广泛的反馈,修复了各种体验问题,进一步提升了后训练的质量和规模。今天,我们发布 Hy3。它展现出显著强于同尺寸并比肩旗舰(参数规模往往是 Hy3 的 2~5 倍)开源模型的智能水平,显著提升了在各类产品和生产力任务中的实用价值。Python00
AscendNPU-IRAscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优C++0310
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00