iot安全入门:固件仿真操作(Sapido RB-1732路由器漏洞为例)

前言

文章关于iot安全入门实操,选取例子是Sapido RB-1732路由器命令执行漏洞,漏洞原理很简单,重点是熟悉工具使用以及漏洞复现流程

固件下载地址:

https://pan.baidu.com/s/1Gj9RDlAQdCDiaLdLzQ2Aag?pwd=8381

工具:

IOT-research虚拟机(也可以attifyos,但是用到一半发现太难用了)

提取码nqy3
https://pan.baidu.com/s/1ke6gvJ9sFlnpPE17O9nMuQ 
 

参考资料:

《物联网设备固件分析指南-SecureNexusLab》《物联网安全漏洞挖掘实战_》

以及如下文章

操作:

一、提取文件系统

Binwalk看看信息,squashfs文件系统,小端

用Me参数提取

进入到文件系统目录

二、漏洞分析

find命令找syscmd.asp。(为什么要找这个?因为这是复现漏洞,按常规找洞的方法应该是去二进制文件找system函数地址)

用前端打开一下可以看出大概是干嘛,能猜出是很明显的命令执行洞

打开源码,定位提交表单处,发现处理后端在/goform/formSysCmd

用grep命令找一下/goform/formSysCmd,后端一般是二进制程序,所以就在bin/webs文件中

用file查看信息,是mipsel-32架构

把webs拖进ida分析

Shift+f12来到string框,然后ctrl+f搜索关键词formSysCmd,双击其中一个定位到它的位置

这里保存着函数名称,再双击定位到函数具体位置

定位到函数位置后,F5反编译出c代码(这里我ida不能反编译mips架构,暂时先用ghidra反编译了,ghidra在虚拟机内/tools/reverse目录下有提供)

这里分享能反编译mips的ida:

​​​​​​ https://bbs.kanxue.com/thread-264323-1.htm

代码还是很简单的,很明显的命令执行了,传参sysCmd为任意命令就行了。可以搜一搜这个websGetVar是啥函数

  • firmware-analysis-plus仿真(仿真成功)
  • IOT-Research里面没有这玩意,需要去官网下载一下

  • https://github.com/liyansong2018/firmware-analysis-plus

    然后运行如下命令就仿真成功了

  • 来到web页面,admin口令登录

  • 来到syscmd.asp目录下,可以抓包看看详细信息,就是直接命令执行了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值