(一)实验简介
实验所属系列:windows主机漏洞利用攻击实践
实验对象:本科/专科信息安全专业
相关课程:渗透测试
实验时数(学分):2学时
实验类别:实践类
(二)预备知识
本实验要求实验者具备如下的相关知识
samba服务远程溢出漏洞
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成,samba服务对应的端口有139、445等等。
概述:
1.该漏洞CVE-2017-7494又被称为Linux版的永恒之蓝
2.主要是利用smb上的反弹shell漏洞,进行远程代码执行
3.samba 3.5.0 到4.6.4/4.5.10/4.4.14的中间版本、docker
原理:
1.远程命令执行
Samba允许连接一个远程的命名管道,并且在连接前会调用is_known_pipename()函数验证管道名称是否合法。
2.Samba远程命令执行漏洞形成的原因
在is_known_pipename()函数中,并没有检查管道名称中的特殊字符,加载了使用该名称的动态链接库。导致攻击者可以构造一个恶意的动态链接库文件,执行任意代码。
该漏洞要求的利用条件:
拥有共享文件写入权限,如:匿名可写等
需要知道共享目录的物理路径
(三)实验目的
1.让学生充分了解samba服务远程溢出漏洞形成原因
2.学会搭建靶机环境
3.学会使用kali里面的msf
(四)实验环境
Ip | os | 应用 | |
靶机 | 192.168.74.161 | Centos | Samba 4.6.3 |
攻击主机 | 192.168.74.168 | Kali2021 | Msf |
五)实验步骤
渗透准备(靶机上操作)
1.创建快照,一定要创建快照,渗透结束后可以恢复靶机
2.创建一个新的普通权限用户,我这里创的用户是john
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的用户组,然后安装docker,这里附上链接,可以参考安装:CentOS7安装Docker详细步骤_Eric-x的博客-CSDN博客,安装完毕后执行以下命令
重要3:切换为用户uu,在CVE-2017-7494目录执行,开始运行测试环境:
//注意,若报如下的错误:那么我们刚刚把用户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漏洞的主机,全部拿下。
如果靶机是服务器,可以上传木马,留个后门。