概述
1.该漏洞CVE-2017-7494又被称为Linux版的永恒之蓝
2.主要是利用smb上的反弹shell漏洞,进行远程代码执行
3.samba 3.5.0 到4.6.4/4.5.10/4.4.14的中间版本、docker
漏洞原理
1.远程命令执行
Samba允许连接一个远程的命名管道,并且在连接前会调用is_known_pipename()函数验证管道名称是否合法。
2.Samba远程命令执行漏洞形成的原因
在is_known_pipename()函数中,并没有检查管道名称中的特殊字符,加载了使用该名称的动态链接库。导致攻击者可以构造一个恶意的动态链接库文件,执行任意代码。
该漏洞要求的利用条件:
拥有共享文件写入权限,如:匿名可写等
需要知道共享目录的物理路径
复现步骤:
打开msf,搜索exp
配置rhosts然后实施利用
成功获取root权限
漏洞加固
使用命令vim /etc/samba/smb.conf在smb.conf文件中的[global]节点下增加 nt pipe support = no 选项,然后重新启动samba服务临时关闭pipe支持以防止此漏洞。
在76行的位置,添加nt pipe support = no
添加成功后,使用进入vim命令行界面使用输入wq保存并退出
使用命令service smb restart,然后使用命令service smb reload 重新加载smb配置文件,并重启服务
重新使用溢出模块对靶机的smb服务进行溢出操作,使用命令rexploit
此时发现利用脚本给出的操作提示:
[-] 192.168.94.145:445 - No suitable share and path were found, try setting SMB_SHARE_NAME and SMB_FOLDER
//没有找到合适的共享和路径,尝试设置Smb_Share_Name和SMB_FOLDER
由于我们关闭了pipe support会禁用Windows 客户端的共享列表。所以此处漏洞无法成功进行利用