CVE-2021-26614 ipTIME摄像头1day分析

固件安全
2022-05-12 12:28
73815

0x00.前言

ipTIME在韩国的市场占有率高达60%-70%,是韩国市场最具代表性的物联网品牌。

设备型号:IpTime C200

漏洞固件版本:1.058及之前版本

修复固件版本:1.060或更高版本

固件下载地址:http://iptime.com/iptime/?pageid=1&page_id=126&keyword=C200&uid=24015

之前我们分析了很多路由器的漏洞,相信很多人都已经有分析思路了,那么接下来我们来找一个摄像头的漏洞来进行分析。在CVE网站进行搜索,得到如下数据:

当我们逐级去查看详情时,可以发现两个问题:

  • 很多漏洞都是1day漏洞
  • 摄像头的很多固件无法从官网获取

根据上述问题,我们选择编号为CVE-2021-26614ipTIME摄像头的1day进行分析,同时讲解一下1day漏洞的分析技巧。

0x01.漏洞信息

根据链接跳转,查看相关描述信息。

根据描述信息可以得到如下信息:

  • 漏洞固件版本:1.058及之前版本
  • 修复固件版本:1.060或更高版本
  • 漏洞触发应用iux_get.cgi,PS:描述中写错了

0x02.环境搭建

对于1day分析用的方式用的最多的方式就是补丁包对比分析,通过上面的描述可以很快定位到具体的固件版本及漏洞应用,接下来使用对比工具进行对比分析,对于不同的补丁使用的对比分析工具也不尽相同。

  • 文本类(代码,文档等):diffBeyond Compare 4
  • 二进制应用:bindiff

通过产生漏洞的应用可以知道是一个二进制应用,所以我们这里简单说一下bindiff的安装及使用,通过链接https://www.zynamics.com/software.html可以下载对应版本的bindiff,这里我们安装的是bindiff 7,主要是原因是bindiff7内置java环境。

下载bindiff7.msi后,直接双击安装即可。启动bindiff配置IDA应用路径,这里我们使用的是IDA 7.5绿化版。

配置完成后,在IDA中也会同步出现bindiff插件,我们可以选择使用bindiff应用对比,也可以直接在IDA中进行对比。

0x03.漏洞分析

根据链接http://iptime.com/iptime/?pageid=1&page_id=126&keyword=C200&uid=24015下载两个版本的固件。

固件没有进行加密处理,可以直接使用binwalk进行提取。

根据漏洞应用进行grep检索。

可以很快的定位到对应的应用,这时我们用IDA分别打开两个版本的iux_get.cgi,使用bindiff插件进行对比,查看改动的位置。PS:bindiff对比依赖IDA生成的.idb文件

使用bindiff插件打开1.060版本的iux_get.cgi使用IDA生成的idb文件。

通过bindiff的对比,可以知道修改代码的位置是main函数的位置,Similarity1.00越小,说明代码修改的越多,1.00代表没有修改。

这里我们也可以直接使用bindiff应用分别加载两个版本的idb文件,来进行查看分析。

这里同样可以清晰的看到代码修复的位置。

可以看到删除了一个debug相关的逻辑,直接看F5生成伪C代码。

可能猜测是由于sub_409748函数造成的问题,进入该函数需要满足有camdebug键值,双击跟进查看。

可以看到传递的值如果包含cmd,则会执行命令,并且通过上面的debug我们可以猜测应该是用于debug调试的代码,并且只要满足传递的键aaksjdkfj对应的值为11dnjsrurelqjrm22,即可满足条件(疑似厂商预留后门)。

0x04.总结

通过上面我们已经很清晰的知道漏洞触发需要的条件,由于没有实体设备,所以这里并没有具体的执行效果。这里重点讲解了分析1day常用的分析技巧,可以帮助大家更快的定位产生漏洞的位置和编写POCEXP

分享到

参与评论

0 / 200

全部评论 4

zebra的头像
学习大佬思路
2023-03-19 12:14
Hacking_Hui的头像
学习了
2023-02-01 14:20
tracert的头像
前排学习
2022-09-17 01:35
iotstudy的头像
干货的,认真研习一下。
2022-05-13 08:16
投稿
签到
联系我们
关于我们