iot漏洞复现小记
本文最后更新于:2024年1月6日 早上
0x0: 写在所有之前
直接莽漏洞复现了
搞了个iotsec的账号,这边复现的主要是里面iot靶场里的洞
总感觉他TM靶机有大问题,所以笔者这记录的全为本地remake
0x1: 大致的漏洞挖掘流程
笔者希望在这二三十个漏洞复现完后能总结出一个高效率的iot漏洞挖掘流程
但暂时还没什么灵感呜呜呜呜
Timeline
8-10,July:试了几个后门漏洞,先用firmwalker看看有没有敏感文件
10-15,July:挖了totolink T10,熟悉了以mqtt为主题的webserver
17-20,July:totolink A720R,totolink大量存在的未授权认证漏洞,以及以http为主体的webserver,cstecgi.cgi
8-13,August:Tenda AX3,patch binary of httpd来启动webserver,很正常的服务
15-17,August:一系列DLINK设备存在的问题,牵扯到upnp协议,用qemu很麻烦,所以笔者直接用FirmAE进行模拟,且FirmAE的-d模式能拿shell和patch pid调试,对于类似cgi这类存在时间很短的进程,winmt师傅的方法是patch掉一个地方,使程序进入无限循环从而使进程卡住,绝妙的想法!!
0x2: Remake
后门漏洞
这种纯纯就是福利姬(好像有点奇怪,但这么说是一点问题没有)
D-Link DIR815后门漏洞
拿firmwalker一扫发现存在/etc/init0.d/S80telnetd.sh
然后就telnet访问一下就好了
抽象的一批
ASUS RT-N10&ASUS RT-N10 D1 授权命令执行漏洞
firmwalker扫完没什么发现
找一下固件中有没有syscmd这种敏感字符串,还真有
那用FirmAE模拟一下,试着访问一下这个Main_AdmStatus_Content.asp
随便搞
命令执行
Tenda AC15命令执行(goform/setUsbUnload)
TendaAC15老朋友了,先把httpd服务起起来
goform,很眼熟,估计起web服务的是gohead
漏洞描述都说是在setUsbUnload了,在httpd搜一下字符串
啊这,没有任何过滤,那就直接搞个POST请求看一下
DIR818L命令执行 (/etc/script/IPV4_INET.PHP)
捏麻麻滴
审了半天,看了wp才知道是web洞,会不了一点
而且这个网路服务是HNAP1,SOAP协议的,xml语言看起来挺好懂得,就是这个功能API实在是太折磨了
ASUS RT-N10U (ping 过滤不严)
好像Ping命令检测网络联通性的地方挺容易出现RCE的
burp抓个包看看是什么情况
?SystemCmd,那就按照特定字符串搜一下,定位到/usr/sbin/httpd,在里面找到了对应的函数
sys_script
可以看到,用get_cgi接受SystemCmd参数后,虽然有一点过滤。但是反引号**` $()**这些内敛执行绕过并没有过滤掉
将V7拷贝到位于bss段的SystemCmd后,就直接用sys_script直接执行了,所以就是一个很简单的RCE
传了个msf生成的backdoor
Netgear R9000(/cgi-bin登录认证时没有对Authorizationg过滤)
登录认证的时候没有对Authorization进行check
漏洞可以直接定位到/usr/sbin/uhttpd中的uh_cgi_auth_check
逻辑很简单,接收到Authorization的内容后,把Basic
后的内容base64解密,并把password拼接后执行
本意是想把password的hash值保存到文件中,却因为过滤不严导致rce
1 |
|