【黑客实战】跟随大佬一起解密海康IPC的登录漏洞!
2023-12-18 18:27:54 Author: 蝰蛇信息安全实验室(查看原文) 阅读量:47 收藏

通过CVE-2021-36260

登录海康IPC-WEB

login-hikvision-davinci-ipc-web-by-CVE-2021-36260

date:2023-10-10 17:44:54

PART.01 / 起因

    在扫描设备时发现一条告警,某`IPC`具有`CVE-2021-36260`漏洞,通过[CVE-2021-36260 POC](https://github.com/Aiminsun/CVE-2021-36260)可以直接获得一个root shell。同时该设备还具有WEB服务,于是乎想试一试能不能登录,寻找了一下配置文件没有发现,遂有此篇。

PART.02 / WEB服务

    不得不说IPCWEB的asp后缀名很诱惑人啊,但是在shell里查看了一下发现都是普通HTML。
    于是乎看一下是谁监听的80端口。

    看来是这个`davinci`程序提供的WEB服务,

    将其软连接到WEB目录下,并通过web下载到本地进行分析:

`ln -s /home/process/davinci

          /home/webLib/doc/page/davinci`
    拿到文件后抓包了一下登录请求,通过password字段定位到验证函数`sub_48E09C`,根据`dev_debug_v1`中的调试信息发

验证逻辑。

 其中凭证哈希通过内存中的结构体读取。

    由于我们已经有shell,所以这里直接写代码从内存中将hash数据读取出来。

```C
C语言类代码

    得到hash

    同时在上面的图中我们发现其是将哈希与challenge拼接后的hash进行98次`sha256`后与输入内容进行比较的,这点我们在前端搜索SHA256发现与其相互印证的逻辑。

    而且我们可以得知之前取得hash的计算方法为用户名+盐值+密码,所以可以尝试通过hash爆破明文密码。

  这里我们直接在第一次`sha256`下断点后修改其返回结果为从shell中获取的值,执行后登陆成功。

PART.03 / 更新
    通过对SHA256函数的交叉引用找到了生成hash的位置

资源 7

    确定`v11`为明文密码,其来源为:`v4+32`。

    `v4`为该结构体指针,所以可以通过修改之前的代码中读取偏移为+32直接读取明文密码。

                      

END

文案 |Qingyun

排版 | Xiaomeng

审核 | Soap

指导老师| Hard Target


文章来源: http://mp.weixin.qq.com/s?__biz=MzA3NzgyNjUwNA==&mid=2247491156&idx=1&sn=0d8cac7186d3846cfcad57a8c8dba552&chksm=9e5b9b63ebfcfdf375e099ae86ec7b073bab304d8aa8a4de57659e73f9668cf02e0bff6af2d2&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh