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说明存在远程代码执行漏洞

 

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

 

  加载动态链接库:# ldconfig

  看看是否成功

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

 

 关闭防火墙运行samba服务

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

 

下面开始实验

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

 查看exp文件

 打开MSF

   查找is_known_pipename模块

 

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

查看配置

 

 设置目标主机IP

 

 查看

 

 

 run开始攻击

 

 

 查看shadow文件

 

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

 

 

 加固措施

1、使用samba最新版本;

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

vim /etc/samba/smb.conf 添加

 

 

 重启

 

继续攻击,发现行不通了

 

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