当前位置:首页 > 综合

卫士漏洞

2023年冬天,卫士漏洞我帮一个做安防集成的卫士漏洞朋友排查项目。他给某园区装了三十多台“卫士”系列网络摄像头,卫士漏洞型号是卫士漏洞WS-2000C。设备上电后一切正常,卫士漏洞画面清晰,卫士漏洞移动侦测也灵敏。卫士漏洞问题出在第三周——客户发现监控后台里,卫士漏洞有三台摄像头的卫士漏洞画面被替换成了循环播放的走廊空景录像。朋友以为是卫士漏洞NVR故障,换了存储阵列,卫士漏洞重刷固件,卫士漏洞都没用。卫士漏洞最后抓包才发现,卫士漏洞这三台设备在凌晨两点定时向一个越南IP发送心跳包,卫士漏洞同时接收一段20MB左右的视频流,覆盖本地RTSP输出。

这就是典型的“卫士漏洞”。不是某个CVE编号,而是一类设计缺陷的统称。卫士系列摄像头为了远程维护方便,在固件里留了一个硬编码的调试账户,用户名和密码都是“service”。这个账户的权限高得离谱——可以读写/etc/passwd,可以启动telnetd,可以修改视频编码参数。更麻烦的是,它不经过Web管理界面的认证逻辑,直接走9000端口的私有TCP协议。只要设备暴露在公网,任何人用十六进制编辑器发几个特定字节,就能拿到root shell。

我后来在Shodan上搜了一下,全球在线可见的卫士设备大概有12万台,其中4.7万台开放了9000端口。按厂商的默认配置,这些设备全部处于可被接管状态。有个巴西的安全研究员甚至写了个脚本,批量扫描并自动替换监控画面,把原本拍停车场的镜头切成了卡通猫视频。他在GitHub上放了演示,三天后仓库被DMCA下架,但代码已经流进了各种小论坛。

厂商的反应很有意思。他们发了一份公告,说“建议用户不要将设备直接暴露在公网”,然后推送了一个固件更新。更新做了两件事:把service账户的密码改成随机字符串,但保留了9000端口;增加了登录失败锁定,但只针对Web界面。我拆开新固件看了一眼,那个私有协议里依然有后门——只是把硬编码密码换成了根据MAC地址生成的弱哈希。算一下,MAC地址前六位是厂商OUI,后六位穷举也就1670万种可能。拿个GPU跑半小时的事。

更让人不安的是供应链。卫士的固件里引用了三个开源库:live555、ffmpeg和一个小型的telnet服务器。live555在2021年爆过堆溢出,ffmpeg的H.264解码器在2022年有过整数溢出。厂商的更新日志里只字不提这些依赖的版本号。我抓了最新固件的字符串,发现live555的编译日期还是2019年。这意味着任何利用这些已知漏洞的攻击者,不需要碰那个私有后门,直接从RTSP流里发个畸形包就能拿到执行权限。

朋友的那个园区最后换了别的品牌。但他留了一台WS-2000C在办公室,接了个隔离VLAN,专门用来观察。上个月他告诉我,那台设备在凌晨三点自己重启了,重启后DNS设置被改成了8.8.8.8和1.1.1.1,NTP服务器指向一个俄罗斯地址。他没动过任何配置。我们查了日志,发现设备在重启前收到了一段来自9000端口的二进制指令,长度47字节。反汇编出来,功能是“下载并执行远程脚本”。脚本地址已经失效了,但那个IP还在线,是个荷兰的VPS。

这事没上新闻。卫士的官网还在卖WS-2000C的升级版,宣传语写着“金融级安全加密”。我看了下规格书,加密部分只提了HTTPS和SRTP,对那个9000端口只字未提。你如果现在去搜“卫士 漏洞”,排在前面的还是2018年那个弱口令问题。真正的后门,藏在协议层下面,安静地等着下一个凌晨两点。

分享到: