首页
社区
课程
招聘
[原创]cve-2017-7494 Samba远程代码执行分析
2017-5-31 17:04 6156

[原创]cve-2017-7494 Samba远程代码执行分析

2017-5-31 17:04
6156
1、背景 

前几天小伙伴们一直在讨论的Samba漏洞,我也试着复现分析一下。

本来前几天搞定了,一直没时间上传上来。

2、复现

漏洞影响的是Samba 3.5.0 之后到4.6.4/4.5.10/4.4.14中间的所有版本,在github上下载了4.6.2版本,手工编译,配置一个可匿名读写等目录,运行 sudo  ./bin/smbd -i。

两个exp 地址 

1. https://github.com/omri9741/cve-2017-7494

2. https://www.exploit-db.com/exploits/42060/

经测试都能成功利用


3、exp分析

一开始看360博客,关于这个漏洞的利用过程有点懵,又看了看exploit-db漏洞利用的exp,还是没看懂

不过回过头来感觉还是要从exp入手

exp里面,作者重写了_retrieveFileFromOffset_SMB1Unix 这个方法


def hook_retrieveFile(self):
    self._retrieveFileFromOffset = self._retrieveFileFromOffset_SMB1Unix

看来关键就是这个函数改了什么

和原码对比之后就少了一句

path = path.replace('/', '\\'

不过也正好对应了360博客里面的利用过程:构造一个有’/’ 符号的管道名或路径名

光这么看感觉还不明朗,试着动态调试

4、动态分析

gdb 附加smbd 进程

来到触发漏洞等函数



进入函数,来到关键的判断


加载输入等模块



找到samba_init_module



返回并执行



这是这个漏洞触发的过程

如果增加之前的替换代码,看看会发生什么



‘\’ 被替换,也就无法利用


利用等话,主要依靠加载的so文件,而且smbd是root权限。


6、参考

http://blogs.360.cn/blog/samba%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9Ecve-2017-7494%E5%88%86%E6%9E%90/



阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

收藏
点赞2
打赏
分享
最新回复 (1)
游客
登录 | 注册 方可回帖
返回