Samba是在Linux和Unix系统上实现Smb协议的一个免费软件,由服务器及客户端程序构成,Samba服务对应的TCP端口有139、445等。Smb一般作为文件共享服务器,专门提供Linux与Windows之间的传送文件服务。
 Samba 3.5之后到4.4.14、4.5.10、4.6.4中间的所有版本存在严重的远程代码执行漏洞,攻击者可以利用该漏洞在目标服务器上执行任意代码。

首先查看被攻击系统的samba版本为3.6.9-151说明存在远程代码执行漏洞

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

在/etc/ld.so.conf文件添加samba动态链接库,保存退出

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

加载动态链接库:# ldconfig

看看是否成功

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

在smb配置文件/etc/samba/smb.conf结尾加入,保存退出

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

关闭防火墙运行samba服务

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

漏洞形成是在/source3/rpc_server/srv_pipe.c的is_known_pipename函数中。只要通过拥有可写入权限的Samba用户,就可以提权到Samba所在服务器的root权限。

下面开始实验

1、使用nmap扫描实验机10.1.1.100开放端口发现139、445端口,samba服务需要开启445端口而139端口作为获取smb服务

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

查看exp文件

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

 打开MSF

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

查找is_known_pipename模块

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

使用模块 use exploit/linux/samba/is_known_pipename

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

查看配置

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

设置目标主机IP

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

查看

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

run开始攻击

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

查看shadow文件

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

回到目标主机查看是否一致

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

加固措施

1、使用samba最新版本;

2、在smb.conf的[global]阶段下增加nt pipe support = no,重启samba服务。

vim /etc/samba/smb.conf 添加

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

重启

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

继续攻击,发现行不通了

CVE-2017-7494复现      Samba远程代码执行-LMLPHP

3、官方补丁https://github.com/samba-team/samba/commit/04a3ba4dbcc4be0ffc706ccc0b586d151d360015

05-11 11:16