去年冬天参与某关键信息基础设施保卫战(HVV行动)时,我盯着Excel表格里密密麻麻的2000多个网络摄像头IP犯了难。这些设备来自海康、大华、宇视、DLink等多个品牌,既有部署在老旧厂区的传统安防设备,也有新上线的智能摄像头。甲方要求72小时内完成漏洞排查,手动逐个验证显然不现实——那段时间我试过市面上3款主流扫描工具,要么对小众品牌支持不佳,要么扫描速度慢得让人崩溃,直到在安全论坛看到有人提到Ingram。
一、为什么是Ingram?从踩坑到真香的转变
最初我对这个名字略显陌生的开源工具没抱太大希望。毕竟在安防设备扫描领域,海康威视的iVMS、大华的PSS等厂商自有工具占据主流,但这些工具大多只能检测自家设备,对混合品牌环境支持不足。而当时试过的几款通用扫描器,在处理摄像头专属协议时经常报错,比如ONVIF协议的认证漏洞检测就频频翻车。
抱着试试看的心态下载后发现,Ingram的设计简直是为安防扫描量身定制。它不像Nessus那样追求大而全,而是聚焦网络摄像头的常见漏洞场景:弱口令、未授权访问、特定品牌的历史漏洞(比如Hikvision的CVE-2021-36260、Dahua的CVE-2021-33044系列)。这种精准定位让我在实战中尝到甜头——某次扫描某小区的监控系统时,其他工具漏报的3个DLink摄像头弱口令漏洞,被Ingram精准捕获,后来证实这些设备确实已被恶意程序植入。
二、从环境搭建到实战扫描:步步为营的操作指南
(一)环境准备的那些坑与解
别看Ingram是Python工具,环境配置还是有不少讲究。首次安装时我直接用了Python 3.11,结果在导入pycurl库时频繁报错,查文档才发现作者特别注明“尽量避开3.11版本”。正确的姿势是:
-
系统选择:建议用Kali Linux或Ubuntu,MacOS理论上可行但部分依赖库需要手动编译,Windows用户只能通过WSL运行(别问我怎么知道的,在Windows下踩过的坑能写篇 troubleshooting指南) -
虚拟环境:一定要创建独立虚拟环境,避免与系统Python环境冲突。我习惯用venv而非conda,激活环境后用 pip install -r requirements.txt
安装依赖,注意个别二进制文件可能需要提前安装系统包(比如libcurl-dev) -
依赖冲突:如果遇到cryptography库安装失败,大概率是OpenSSL版本问题,这时候需要手动编译安装指定版本(别慌,README里有详细解决步骤)
(二)目标文件格式的魔鬼细节
准备targets.txt时踩过的最大坑,是IP端口格式的不统一。起初我按常规扫描器格式写“192.168.1.1:80”,结果程序一直报错——原来Ingram支持3种输入格式:
-
纯IP(默认扫描80、443、8080等常见端口) -
IP+端口(格式为192.168.1.1:8081) -
CIDR范围(比如192.168.1.0/24,但建议先做端口扫描缩小范围)
实战中发现,提前用Masscan做端口探测能大幅提升效率。记得那次扫描某工业园区,先用Masscan扫出80、8000-9000端口的存活主机,导出为ip:port格式后作为输入,Ingram的扫描时间直接缩短40%。
(三)命令行参数的调优艺术
别看官方示例只有简单的python run_ingram.py -i targets.txt -o out
,实际使用时参数调优大有学问:
-
并发数控制:默认300的并发在千兆网络下没问题,但在带宽有限的环境(比如某老旧厂区的百兆内网),建议降到100-150,否则容易出现连接超时 -
漏洞类型过滤:通过 -t weak-passwd,cve-2021-33044
可以指定扫描特定漏洞类型,某次针对Dahua设备的专项扫描,用这个参数跳过了其他品牌检测,速度提升3倍 -
中断恢复:神级功能!记得有次扫描到凌晨3点突然断网,早上重启后直接运行相同命令,工具自动跳过已扫描的IP,这种“断点续传”在长周期扫描中简直救命
三、扫描结果分析:数据背后的安全隐患
当看到控制台输出“Found 29 Snapshot”时,那种既兴奋又紧张的感觉至今难忘。打开results_all.csv,每一行数据都像一份安全隐患报告:
-
弱口令重灾区:Hikvision设备中,“admin12345”“admin”等默认密码占比超过60%,某幼儿园的15台设备竟有13台用弱口令,让人惊出冷汗 -
历史漏洞活跃:Dahua的CVE-2021-33044漏洞在新版本固件中已修复,但老旧设备(尤其是2020年前生产的型号)中招率高达40%,某物流仓库的摄像头因未及时升级,差点成为数据泄露入口 -
配置缺陷暴露:部分设备未关闭HTTP管理端口,甚至存在匿名访问漏洞(比如某小区摄像头直接通过IP就能查看实时画面),这种“裸奔”状态在互联网暴露设备中尤为常见
这里有个实用技巧:将扫描结果导入Excel,用数据透视表按品牌、漏洞类型分组统计,能快速定位高危设备。记得在某次护网行动中,我们通过这种方法半小时内锁定3台存在未授权访问漏洞的设备,及时阻断了黑客的渗透路径。
四、深度解析:Ingram背后的技术逻辑与行业痛点
(一)协议级漏洞检测的实现路径
Ingram之所以高效,在于它针对摄像头专属协议做了深度优化:
-
ONVIF协议解析:通过模拟ONVIF客户端尝试认证,检测默认账号密码(如“admin/12345”)和未授权访问漏洞,这比传统端口扫描更精准 -
品牌特征库:内置各厂商的漏洞特征指纹,比如Hikvision的特定URL路径、Dahua的固件版本识别逻辑,能快速定位已知漏洞 -
流量模型优化:针对摄像头的HTTP/RTSP/SIP等协议设计轻量化探测包,避免传统扫描器的“重载荷”导致设备异常
(二)行业安全现状:为什么摄像头成为攻击突破口
在与甲方沟通中发现,摄像头安全问题频发有深层原因:
-
部署乱象:很多单位将摄像头直接接入互联网,却未做任何安全防护,某连锁超市竟有200+摄像头暴露在公网,且全部使用默认密码 -
固件升级难:老旧设备厂商停止维护,新设备虽支持远程升级,但很多用户担心断网风险选择“永不升级”,导致漏洞长期存在 -
管理盲区:IT部门认为摄像头属于安防设备,安防部门不懂网络安全,这种管理割裂让很多漏洞成为“三不管”地带
(三)与传统安全技术的协同作战
Ingram的价值不仅在于漏洞扫描,更在于与其他安全技术的联动:
-
防火墙策略优化:根据扫描结果,在锐捷RG-WALL防火墙上针对高危设备关闭非必要端口(如关闭摄像头的HTTP管理端口,仅保留视频流端口) -
入侵检测联动:将Ingram发现的弱口令设备IP导入Suricata,设置针对性规则监控异常登录行为,某企业通过这种方式捕获到3次暴力破解尝试 -
漏洞管理闭环:纳入企业漏洞管理平台(如绿盟科技的RSAS),实现“扫描-验证-修复-复测”的全流程管控
五、从工具到体系:构建摄像头安全防护网
使用Ingram的过程,其实是理解摄像头安全体系的绝佳切入点。结合实战经验,建议从三个层面构建防护体系:
(一)设备层:筑牢第一道防线
-
初始配置:开箱即用的第一件事不是通电,而是修改默认密码(建议用“设备型号+部门+随机字符串”的组合) -
固件管理:建立升级台账,对支持OTA的设备开启自动更新,老旧设备通过离线升级包逐个处理(别学某工厂,300台设备因拒绝升级导致集体被勒索) -
端口控制:通过交换机ACL或防火墙策略,将摄像头管理端口限制在安防专网,禁止直接暴露到互联网
(二)网络层:构建纵深防御体系
-
VLAN隔离:将摄像头与办公网络划分不同VLAN,某学校通过这种方式,在摄像头被入侵后成功阻断横向渗透 -
流量监测:部署IDS/IPS(如奇安信的NGFW),针对摄像头的异常流量(如大量RTSP连接请求、高频HTTP管理访问)触发警报 -
准入控制:引入802.1X认证,确保只有授权设备才能接入网络,某智慧园区通过这种方式拦截了17台伪造MAC地址的攻击设备
(三)管理层面:打破安全孤岛
-
资产建档:使用资产测绘工具(如Zoomeye)定期扫描,建立“设备型号-IP-负责人-固件版本”的完整台账,某医院通过这种方式发现12台“失踪”的摄像头设备 -
应急响应:制定专项应急预案,明确摄像头漏洞的修复优先级(比如未授权访问漏洞要求24小时内修复) -
安全意识培训:别忽视安防人员的安全意识,某次钓鱼攻击正是通过伪造“摄像头管理系统升级”邮件,骗取了安防管理员的账号密码
六、写在最后:工具只是起点,安全需要持续守护
回想起用Ingram扫描出第一个高危漏洞时的兴奋,到后来参与多个项目后的冷静,逐渐明白一个道理:再好的工具也只是安全体系的一环。那次在某化工园区,尽管Ingram高效检出了所有漏洞,但真正让安全落地的,是甲方痛定思痛建立的设备准入机制和定期扫描制度。
现在每当看到网络上曝光的摄像头安全事件(比如某商场摄像头被劫持直播),我都会想起Ingram控制台跳动的进度条——那不仅是数据的流动,更是网络安全工作者与黑产对抗的缩影。工具会不断迭代,漏洞会持续出现,但不变的是我们对安全底线的坚守。
如果你也在为摄像头安全发愁,不妨试试Ingram(下载链接:https://github.com/jorhelp/Ingram)。但请记住,工具只是起点,真正的安全,始于每个从业者对细节的较真,成于整个行业对体系的构建。愿我们守护的每一个摄像头,都成为安全的眼睛,而非漏洞的窗口。
原文始发于微信公众号(网络侦查研究院):实战中踩过的坑:我是如何用Ingram搞定摄像头漏洞扫描的
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论