概述
1.该漏洞CVE-2017-7494又被称为Linux版的永恒之蓝
2.主要是利用smb上的反弹shell漏洞,进行远程代码执行
3.samba 3.5.0 到4.6.4/4.5.10/4.4.14的中间版本、docker
环境
ip | os | 应用 | |
靶机 | 192.168.74.161 | centos7 | Samba 4.6.3 |
攻击主机 | 192.168.74.168 | kali2019 | msf |
原理
1.远程命令执行
Samba允许连接一个远程的命名管道,并且在连接前会调用is_known_pipename()函数验证管道名称是否合法。
2.Samba远程命令执行漏洞形成的原因
在is_known_pipename()函数中,并没有检查管道名称中的特殊字符,加载了使用该名称的动态链接库。导致攻击者可以构造一个恶意的动态链接库文件,执行任意代码。
该漏洞要求的利用条件:
拥有共享文件写入权限,如:匿名可写等
需要知道共享目录的物理路径
(一)渗透准备(靶机上操作)
1.创建快照,一定要创建快照,渗透结束后可以恢复靶机
2.创建一个新的普通权限用户,我这里创的用户是uu
3.下载CVE-2017-7494环境,内含samba包
网盘地址: https://pan.baidu.com/s/1hJmICRP4casbgTUTgA2DIg
提取码:w8yb
下载完成后,进入CVE-2017-7494文件夹
重要1:编辑一下容器的配置文件docker-compose.yml,将下图volumes字段圈中部分替换为当前目录
(务必要做,否则samba服务起不来)
重要2:切换为root账户,将用户uu加入docker的用户组
gpassed -a uu docker
重要3:切换为用户uu,在CVE-2017-7494目录执行,开始运行测试环境:
systemctl start docker //启动docker
docker-compose build && docker-compose up -d //这条命令是下载samba的环境,并且会同时开启samba服务
//注意,若报如下的错误:那么我们刚刚把用户uu加入到组后,还要再再重新登录该用户,再次执行重要2和重要3。
//如果拉好镜像,但是samba服务起不来,就重新执行重要1
再次启动docker,Samba服务启动成功
查看samba服务是否开启,查看445端口是否开启
至此,靶机环境已经搭建完成
(二)渗透工作(在kali上进行)
启动msf
使用exploit/linux/samba/is_known_pipename模块
设置RHOST为靶机ip地址:
run一下,输入shell,就拿到shell了
而且还是root权限,这下你就可以为所欲为了
(三)提权之后
提权之后,你可以扫描出他的所有账户密码/etc/shadow,然后横向渗透所有内网主机;
或者扫描网络上所有存在该samba漏洞的主机,全部拿下;
如果靶机是服务器,可以上传木马,留个后门;
等等,学习渗透,手段一定要多。
参考文献:https://www.jianshu.com/p/24c7494971a8
https://www.cnblogs.com/Hi-blog/p/7782356.html
https://blog.csdn.net/qq_45555226/article/details/102565002