吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 3022|回复: 20
上一主题 下一主题

[漏洞分析] vxworks5.5里面rpcbind漏洞分析-1

  [复制链接]
跳转到指定楼层
楼主
LovenSar 发表于 2020-6-17 19:53 回帖奖励

漏洞触发脚本:

import socket
import sys
PAYLOAD_HEX = 'cc6ff7e200000000000000020001a086000000040000000488888888000000110000001100001111111111111111111111111111'
def poc(host, rpcPort=111):
  sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  sock.sendto(PAYLOAD_HEX.decode('hex'), (host, rpcPort))
if __name__ == '__main__':
  poc(sys.argv[1])

崩溃场景:

Vxworks的服务由netTask函数总统领:

这里还有一个惊喜之处就是找到了栈溢出的字符串。在这个函数下面使用了许多函数指针来进行传参,这对分析造成了困难,同时由于这个特性,也没办法利用IDA的流程图重建功能来进行分析,所以打算对比一下不同端口、不同服务的函数流程的差别:

经过分析后发现只要是UPD服务,走的都是这一条路线:

查询了网络上相关资料知道在Vxworks中在硬件接口和传输层之间增加了一个叫做mux层的东西,其作用是屏蔽复杂的硬件环境。所以在Vxworks中,muxRecieve这个函数很重要,另外在这个函数中调用了一个函数指针:

因为我们都知道在vxworks当中是没有进程的概念,自然也没有线程的概念,其内存管理也是实模式下进行的,为了保证效率,他们只有任务的概念,其实就是函数的调用,一个函数就是一个任务,因此是有一个循环会不断的检查信息的变化,然后查询到相关的函数进行调用。

可以看到,崩溃的tPortmapd函数PC是运行到0x3ad3bc。

这时候我们有两个思路,对于这个指令的地址,

l 是因为栈溢出而填充的覆盖到的

l 是因为在操作栈的时候,破坏了其他函数任务的栈结构

首先我们可以很快的确定的是,肯定不是第一种,第一,我们的脚本的payload当中,“cc6ff7e200000000000000020001a086000000040000000488888888000000110000001100001111111111111111111111111111”明显没有这三个字节的存在,通过网络装包也可知道。

不可能,因为0x3ad3bc跟其他没有报错的函数的PC值相近,肯定也是合理的代码段间的。因此第一种方式不可行。

同时我们也要开始排查另外一种可能就是,对于0x3ad3bc这个函数的地址不是从其他地方直接jmp过去的,而是从一个特别的函数开始启动。

因此,我们定位到这个地址。

然后在这个地址所在的proc段开头设一个断点

看一下伪代码,可以看到是在传递参数的过程中栈结构出问题了。

Continue……

然后触发脚本。

发现断点已经停留在这个程序段,那我们就F8跟进同时查看栈结构的变化。

这时候的栈结构是

根据上下文,我们推测比较就是在eax寄存器上面出现了问题,eax从数据段那里取数据,从一些细节,我猜测这一段的代码主要是进行中断向量表的更换,



这当然也只是一个猜测,具体得结合官方文档的layout示意图,来考量。

再次将断点放到

当断点确定到再次断到事发前一句,检查寄存器的值,发现了异常

对于即将执行“mov eax, ds:svcauthsw[eax*4]”这样的指令,eax等于那个奇怪的值肯定不是合理的,这时候我猜测到这里来自payload其中一段,果不其然,找到了八个八,于是我我修改了一下,改成八个9。看看是否会跟着变化。

发现了到这一步已经可以劫持eax寄存器了,所以我们如果通过合理的跳转,是可以进行任意代码执行的。

可以覆盖的段我们已经找到了,现在就是尝试分析程序走向,获得更高的权限。

点评

下次发点我能看懂的 成吗? ^_^  发表于 2020-6-20 18:45

免费评分

参与人数 11威望 +2 吾爱币 +113 热心值 +11 收起 理由
gaosld + 1 + 1 用心讨论,共获提升!
maozheng110 + 1 + 1 用心讨论,共获提升!
陈世界 + 1 + 1 已经处理,感谢您对吾爱破解论坛的支持!
sxlixiaoyang + 2 + 1 我很赞同!
不怕黑的夜晚 + 1 + 1 热心回复!
女萝岩 + 1 + 1 我很赞同!
tkgguter88 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
siuhoapdou + 1 + 1 用心讨论,共获提升!
willJ + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
nomoretime + 1 + 1 谢谢@Thanks!
wmsuper + 3 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
两个人的地球 发表于 2020-6-19 08:31
闲下来再发下
推荐
 楼主| LovenSar 发表于 2020-6-21 13:14 |楼主
abcde1224 发表于 2020-6-20 23:20
uc/os都没整明白呢  threadx开源了  这下又来个大佬搞vxworks的漏洞  等等我啊  学不动了

我是跟着别人学习的
沙发
MarioCrane 发表于 2020-6-17 21:03
3#
 楼主| LovenSar 发表于 2020-6-17 21:14 |楼主
MarioCrane 发表于 2020-6-17 21:03
没想到都20年了,还有研究vx 5.5的

太菜了嘛,vxworks7都出了。手头的vxworks6.8也是才开始嚼
4#
MarioCrane 发表于 2020-6-17 21:33
LovenSar 发表于 2020-6-17 21:14
太菜了嘛,vxworks7都出了。手头的vxworks6.8也是才开始嚼

直接搞7吧,差的挺多的,7挺模块化的
5#
maozi520 发表于 2020-6-17 21:55
过时了,来个新版
6#
 楼主| LovenSar 发表于 2020-6-18 15:59 |楼主
MarioCrane 发表于 2020-6-17 21:33
直接搞7吧,差的挺多的,7挺模块化的

大佬手头有7吗?来一份?
7#
MarioCrane 发表于 2020-6-18 21:11
LovenSar 发表于 2020-6-18 15:59
大佬手头有7吗?来一份?

哈哈 公司的,不敢搞
8#
willJ 发表于 2020-6-18 23:41
好文章,期待楼主更多的分享。
9#
wapjcxz 发表于 2020-6-19 06:53
小白看得瑟瑟发抖
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2020-7-2 17:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表