Samba服务漏动
原理说明
CVE-2017-7494是一个Samba服务中的严重远程代码执行漏动,影响了Samba 3.5.0至4.6.4/4.5.10/4.4.14之间未打补丁的版本。该漏动允许远程公鸡者在受影响的Samba服务器上执行任意代码,只要他们能够向SMB服务写入文件。公鸡者可以通过向Samba服务器上传一个特制的共享库(.so文件),并利用Samba服务加载这个库来执行恶意代ma,从而完全控制目标系统。
漏动利用条件
- 存在漏动的Samba版本:系统运行的是受影响的Samba版本。
- 开放的445端口:Samba服务对外开放了445端口。
- 匿名写权限:匿名用户或某些用户对共享目录有写入权限。
- 共享目录物理路径已知:公鸡者知道可写共享目录的绝对路径。
复现步骤及示例
以下是一个简化版的复现步骤,使用了Kali作为公鸡机,Debian作为靶机,假设靶机已安装并配置了有漏动的Samba版本。
靶机(Debian)配置:
安装Samba
sudo apt-get install samba
创建共享目录
sudo mkdir /mnt/shared
配置Samba
编辑 /etc/samba/smb.conf
文件,添加如下内容:
[shared]
comment = Share for work
path = /mnt/shared
guest ok = yes
public = yes
writable = yes
create mask = 0777
保存并重启Samba服务。
公鸡机(Kali)操作:
- 确认靶机IP和共享目录路径:确认靶机IP(如192.168.217.150)及共享目录路径。
- 构建恶意库文件:创建一个简单的恶意代吗库文件,例如使用
msfvenom
生成一个Meterpreter payload,然后将其转换为.so文件格式(这一步需要一定的编程和逆向技能,此处略去具体步骤)。 - 上传恶意库:使用
smbclient
或类似的工具,将恶意库上传到靶机的共享目录中。例如:
smbclient -U "" -L //192.168.217.150/shared
put malicious.so
- 触发漏动:利用Samba的一个特性,创建一个特殊命名的文件(如
.msfsmbspecial
),使Samba服务加载并执行刚刚上传的恶意库文件。 - 监听和控制:在Kali上启动Metasploit并设置一个Meterpreter监听器,等待靶机上的恶意库连接回来,从而实现远程控制。
注意:以上步骤仅作为概念性示例,实际操作应当在合法授权的渗投测试环境中进行,并严格遵守相关法律法规。复现漏动应当以提升安全意识和防护能力为目的,不得非法入侵他人系统。
上机练习
操作步骤
(1)启动MSF终端。执行命令如下所示:
msfconsole
msf>
(2)使用smb_version模块,并查看该模块可配置的选项参数。执行命令如下所示:
(3)配置RHOSTS选项。执行命令如下所示:
msf auxiliary(smb_version)>set RHOSTS 192.168.6.105
RHOSTS =>192.168.6.105
(4)启动扫描。执行命令如下所示:
msf auxiliary(smb_version)>exploit
[*]192.168.6.105:445 is running Unix Samba 3.0.20-Debian (language: Unknown)
(domain: WORKGROUP)
[*] Scanned 1 of 1 hosts(100% complete)
[*] Auxiliary module execution completed
从输出的信息中,可以看到扫描到正在运行的Samba服务器及其版本。
在Metasploit 中使用smb_version模块,还可以指定扫描某个网络内所有运行Samba服务器的主机。
下面将介绍扫描192.168.6.0/24网络内开启Samba服务器的所有主机。
(1)选择使用smb_version模块。执行命令如下所示:
msf>use auxiliary/scanner/smb/smb_version
(2)配置smb_version模块中可配置的选项参数。执行命令如下所示:
msf auxiliary(smb_version)>set RHOSTS 192.168.6.0/24
RHOSTS =>192.168.6.0/24
msf auxiliary(smb_version)>set THREADS 255
THREADS=>255
(3)启动扫描。执行命令如下所示:
从输出的信息中,可以看到192.168.6.0/24网络内有四台主机上正在运行着Samba服务器。
在显示的信息中,可以看到运行Samba服务器的操作系统类型。
扫描到开启Samba服务器的主机后,就可以进行渗投公鸡了。
如果没成功,可以看一下这个
https://mp.weixin.qq.com/s/2cwD2t6ZAt0Jy1JMF87HcQ