IoT-vulhub 漏洞复现

2023-06-26

写在前面

作为一名物联网安全研究员,怎么能不复现一下漏洞呢
然而,为了一个漏洞去买一个设备感觉还是有点那啥(倒不是说没必要,新手可能需要先试试手,不至于浪费💴)
IoT-vulhub就是一个有用的物联网漏洞复现平台,其集成了firmadyne以及binwalk,十分适合练手~
然而,这个工具终究只适合练手,还有一部分的环境复现有问题!!!

install

建议使用ubuntu20.04进行安装,因为其他环境我也没装过~
第一步,安装pip,建议在root下安装

curl -s https://bootstrap.pypa.io/get-pip.py | python3

第二步,安装docker

curl -s https://get.docker.com/ | sh

顺带一提,为了能够让用户态进行docker访问,你需要参照https://wsxk.github.io/docker_install/的步骤进行。
第三步,启动docker环境以及安装docker-compose

systemctl start docker
python3 -m pip install docker-compose

值得注意的是,缺什么就安装什么,所有报错均可以百度搜索到~
安装完环境后,即可开始漏洞复现工作。

1. Vivotek

Vivotek是一家知名的家庭摄像头企业

Vivotek CC8160 栈溢出漏洞

跟随https://github.com/VulnTotal-Team/IoT-vulhub/tree/master/VIVOTEK/remote_stack_overflow搭建环境即可~我才用的是系统模拟的方法
顺道一提,在根据步骤操作到构建镜像时会出现问题,具体原因是docker.io提供的网站并没有firmianay/qemu-system:armel这个镜像,因此你需要自己在本地安装。
IoT-vulhub-master/baseImage/qemu-system/armel/images目录下,有一个download.sh文件,把其中的下载链接全都改成https://file.erlkonig.tech/debian-armel/xxxx 即可
随后在上一级目录下使用 docker build -t firmianay/qemu-system:armel .在本地构建镜像即可。
还是在构建镜像步骤,在新版本docker中,执行system-emu目录下的dockerfile时会出现问题。COPY ./firmware/_*/_31* /root/firmware会执行失败。因为在新版docker中,会对文件名做检测,所以,建议在文件中找到你提取的带有_31的目录到本地下,同时将命令改成COPY ./firmware/_31.extracted /root/firmware即可。
用docker起了一个ubuntu16虚拟机,在其中运行qemu-system-arm运行目标程序

2. 华为

华为 HG532 远程代码执行漏洞(CVE-2017-17215)

首先还是搭配环境,步骤和第一个漏洞复现类似,不过多赘述
可以看到漏洞成功被复现。

SR20 本地代码执行漏洞

TP-Link SR20 是一款支持 Zigbee 和 Z-Wave 物联网协议可以用来当控制中枢 Hub 的触屏 Wi-Fi 路由器,此远程代码执行漏洞允许用户在设备上以 root 权限执行任意命令,该漏洞存在于 TP-Link 设备调试协议(TP-Link Device Debug Protocol 英文简称 TDDP) 中,TDDP 是 TP-Link 申请了专利的调试协议,基于 UDP 运行在 1040 端口。
TP-Link SR20 设备运行了 V1 版本的 TDDP 协议,V1 版本无需认证,只需往 SR20 设备的 UDP 1040 端口发送数据,且数据的第二字节为 0x31 时,SR20 设备会连接发送该请求设备的 TFTP 服务下载相应的文件并使用 LUA 解释器以 root 权限来执行,这就导致存在远程代码执行漏洞。
熟悉了前面的操作后,这个复现就显得轻车熟路了。
详细分析在https://bbs.kanxue.com/thread-263539.htm
写得很细致~~

WR841N 栈溢出漏洞(CVE-2020-8423)

在搭建完环境跟之前提到的步骤类似,还是不过多赘述。
在搭建完环境后,可以通过SSH进行socks代理注意在虚拟机内使用,而不是docker内

    ssh -D 2345 root@127.0.0.1 -p 1234

然后在firefox浏览器中使用代理设置:

随后,可以在虚拟机中登录docker的界面
密码是admin:admin,登录后用火狐浏览器获得cookies以及登录的url

curl -H 'Cookie: Authorization=Basic%20YWRtaW46MjEyMzJmMjk3YTU3YTVhNzQzODk0YTBlNGE4MDFmYzM%3D' 'http://192.168.2.2/DHJSQKMAPYZXIIXB/userRpm/popupSiteSurveyRpm_AP.htm?mode=1000&curRegion=1000&chanWidth=100&channel=1000&ssid='$(python -c 'print("/%0A"*0x55 + "aaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabbaabcaabdaabeaabfaabgaabhaabiaabjaabkaablaabmaabnaaboaabpaabqaabraabsaabtaabuaabvaabwaabxaabyaabzaacbaaccaacdaaceaacfaacgaachaaciaacjaackaaclaacmaacnaac")')''

重新刷新后,网站无法登录
模拟界面也出现SIGSEGV的字样

4. Netgear

Netgear是一家国际知名的网络设备制造商,总部位于美国加利福尼亚州的圣何塞。该公司成立于1996年,主要专注于为家庭、企业和服务提供商制造和销售网络硬件。Netgear的产品线包括路由器、交换机、网络存储设备(NAS),以及其他网络设备和配件。
对于家庭用户,Netgear提供各种无线路由器,这些路由器通常具有高性能和易于使用的特点。对于企业,Netgear提供更高级的网络解决方案,包括交换机和存储设备,以满足大规模网络的需求。
Netgear还在网络安全方面提供一些产品和服务,包括VPN解决方案和网络防火墙。
总的来说,Netgear是一家在网络硬件领域具有广泛影响力和知名度的公司。

Netgear R8300 upnpd 远程代码执行漏洞(PSV-2020-0211)

好家伙,又是你upnp!
在发送了崩溃POC

Netgear R9000 命令注入漏洞(CVE-2019-20760)

Netgear还是比较友好的,保留了所有以往的固件版本~
通过它我们可以下载有漏洞的版本
https://www.downloads.netgear.com/files/GDC/R9000/R9000-V1.0.4.26.zip
以及修复了漏洞的版本
https://www.downloads.netgear.com/files/GDC/R9000/R9000-V1.0.4.28.zip
根据漏洞报告的提示,问题出自web处理程序中,其有一个明显的特征就是,文件中存在字符串Referer.Referer字符串是一个HTTP头字段,通常在浏览器或其他HTTP客户端发出请求时发送给web服务器。它包含了用户是从哪个页面通过点击链接或提交表单来访问当前页面的信息。换句话说,它告诉服务器用户是从哪个URL来的。
使用grep -r Referer . ,搜索结果如下: 可以看出uhttpd是我们要找寻的目标
使用diaphora来进行二进制比对操作,这也是一个强力的diff工具,和bindiff一致
这个神秘的工具在IDA7.7上似乎有点问题,在IDA7.6上可以正常运行。怪
主要在partial matched上寻找
右键,使用diff pseudo code来分辨
可以发现,由system变成了dni_system,推测改动在这里产生。

现在开始复现漏洞

5. Tenda

Tenda(全名为深圳市腾达科技股份有限公司)是一家位于中国深圳的网络设备制造商。该公司成立于1999年,主要从事家庭和商用网络产品的研发、生产和销售。
Tenda的产品线包括各种无线路由器、交换机、无线网卡、以及其他网络相关的设备和配件。这些产品通常以性价比高和易用性著称,因此在家庭和小型企业用户中非常受欢迎。
Tenda还制造智能家居产品,包括智能插座和智能灯泡等。

Tenda AC15 远程代码执行漏洞(CVE-2018-5767)

是一个栈溢出导致的远程代码执行漏洞。
在模拟时,需要根据给出的libc基址修改相应的exp.py中的代码

Tenda AC15 栈溢出漏洞(CVE-2018-16333)

同样是栈溢出漏洞,修改基址

Tenda AC15 命令注入漏洞(CVE-2020-10987)

TOTOLINK是一家主要生产网络通信产品的企业。其产品线包括无线路由器、网络交换机、网络适配器以及其他网络相关设备。TOTOLINK旨在为家庭和小型企业提供高质量的网络解决方案。TOTOLINK的产品通常以其性价比而闻名,提供了一个相对经济的方式来设置和扩展网络。这家公司有时可能不像Linksys、Netgear或D-Link这样的品牌那么知名,但它在一些市场上具有竞争力,尤其是在对价格敏感的市场。
这玩意在韩国貌似很牛逼

是个命令注入的漏洞
复现后,可以启动环境
运行脚本后,发现

总结

其实对于挖洞的过程还是没什么了解,总而言之

  1. 学了些docker的使用方式
  2. linux下shell运用例如grep -r "xxx" .ssh -D 2345 root@127.0.0.1 -p 1234
  3. 常见的路由器漏洞类型
  4. 学习到了诸如diaphora工具新姿势
  5. 一下定位漏洞的小tips例如Referer
    总的来说不算太亏