20232412 2024-2025-1 《网络与系统攻防技术》实验六实验报告

1.实验内容

实验要求

本实践目标是掌握metasploit的用法,下载官方靶机Metasploitable2,完成下面实验内容。

  • (1)前期渗透(主机发现、端口扫描、系统版本和漏洞扫描)

  • (2)Vsftpd源码包后门漏洞(21端口)

  • (3)SambaMS-RPC Shell命令注入漏洞(139端口)

  • (4)Java RMI SERVER命令执行漏洞(1099端口)

  • (5)PHP CGI参数执行注入漏洞(80端口)

通过本次综合性实践项目,我们将深入掌握渗透测试框架Metasploit的核心用法,运用其集成的ARP发现、端口扫描等辅助模块,并结合强大的Nmap工具,对目标网络构建目标系统攻击面画像,理解从信息搜集到漏洞利用的完整攻击链,深化对漏洞原理与利用方法的理解。

2.实验过程

2.1前期渗透

主机发现

在靶机中输入ip addr,得到ip地址为192.168.109.171。

5b2acf3c24d7ff2a4cd14f7d452d1eae

另一台虚拟机kali作为攻击机,打开msfconsole,按序输入下列命令:

search arp_sweep//在Metasploit的模块数据库中,搜索与arp_sweep相关的模块

use 0//选择列表中的第0模块

set RHOSTS 192.168.109.0/24//设置扫描的主机范围

run

我们可以看到该网段内所有活跃的主机,可以发现靶机的IP。

77f8b5b158821a9ceaac6bd073e9463e

端口扫描

在Metasploit中使用portscan/tcp扫描,能够扫描到靶机开放的端口,按序输入下列命令:

search portscan/tcp//在Metasploit的模块数据库中,搜索TCP端口扫描相关模块

use 0//选择列表中的第0模块

set RHOSTS 192.168.109.171//设置要扫描的目标主机

run

我们可以看到所有开放的TCP端口。

e3a6cd8301b1407c51cb45cf342e4c34

也可以使用nmap扫描,新开一个终端界面,输入命令nmap -sS -sV 192.168.109.171,进行半开放扫描,探测端口上运行的服务。我们可以看到靶机上开放了大量的端口,并且存在漏洞(如1524/tcp的bindshell)。

bbc46ac65e86ad0b67472b0514f767c1

系统版本和漏洞扫描

在Metasploit中进行系统版本扫描,按序输入下列命令:

search auxiliary/scanner/smb/smb_version//在Metasploit的模块数据库中,搜索SMB相关模块

use 0//选择列表中的第0模块

set RHOSTS 192.168.109.171//设置要扫描的目标主机

run

我们可以看到192.168.109.171:445 - Host could not be identified: Unix (Samba 3.0.20-Debian),确认了目标主机在445端口上运行着SMB服务,并识别出其服务版本信息。

2b11cca09f5b9ca6532e48630ead5b67

在另一个终端界面使用nmap扫描,输入命令nmap -script vuln 192.168.109.171,尝试发现和验证靶机上存在的已知漏洞。我们看到显示了很多的漏洞以及漏洞的详细信息,截取部分结果,如21端口存在VSFTPD 2.3.4 后门漏洞,被标记为VULNERABLE (Exploitable)可利用的高危漏洞,Results: uid=0(root) gid=0(root)说明该后门能获取目标系统的root权限;25端口存在SSL POODLE信息泄露漏洞,可能导致敏感的认证信息或通信内容被窃取。接下来将利用部分漏洞对靶机进行攻击。

image

2.2 Vsftpd源码包后门漏洞(21端口)

漏洞原理:在特定版本的vsftpd服务器程序中,被人恶意植入代码,当用户名以“😃”为结尾,服务器就会在6200端口监听,并且能够执行任意代码。

通过前期渗透,我们知道21端口开放且存在漏洞,在Metasploit中利用VSFTPD 2.3.4 后门漏洞,按序输入下列命令:

search exploit/unix/ftp/vsftpd_234_backdoor//在Metasploit的模块数据库中,选择利用该漏洞的模块

set RHOSTS 192.168.109.171//对目标主机使用该模块

run

利用VSFTPD 2.3.4 后门漏洞,成功获得靶机shell,执行uname –a、 pwd、 id等命令验证,可以显示详细的系统信息、显示当前工作目录、显示当前用户及其所属组的身份信息(root)。

image

2.3 SambaMS-RPC Shell命令注入漏洞(139端口)

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

通过前期渗透,我们知道139端口开放,得到其服务信息和版本号。在Metasploit中利用SambaMS-RPC Shell命令注入漏洞,按序输入下列命令:

search exploit/multi/samba/usermap_script//在Metasploit的模块数据库中,选择利用该漏洞的模块

set RHOSTS 192.168.109.171//对目标主机使用该模块

run

利用该漏洞,成功获得靶机shell,执行uname –a命令验证,可以显示详细的系统信息。

7a2a654c91fb171ee51101230dec384b

2.4 Java RMI SERVER命令执行漏洞(1099端口)

漏洞原理:Java RMI Server的RMI注册表和RMI激活服务的默认配置存在安全漏洞,可被利用导致代码执行。

通过前期渗透,我们知道1099端口开放,得到其服务信息,并存在漏洞。在Metasploit中利用Java RMI SERVER命令执行漏洞,按序输入下列命令:

search exploit/multi/misc/java_rmi_server//在Metasploit的模块数据库中,选择利用该漏洞的模块

set RHOSTS 192.168.109.171//对目标主机使用该模块

run

利用该漏洞,可以得到连接靶机的Meterpreter会话,输入shell后可以成功获得靶机shell,执行whoami命令验证,可以显示当前登录用户的用户名(root)。

fe235d6c6b08730cffbad43c6d4878e8

2.5 PHP CGI参数执行注入漏洞(80端口)

漏洞原理:CGI脚本没有正确处理请求参数,导致源代码泄露,允许远程攻击者在请求参数中插入执行命令。

通过前期渗透,我们知道80端口开放,得到其服务信息和版本号。在Metasploit中利用PHP CGI参数执行注入漏洞,按序输入下列命令:

search exploit/multi/http/php_cgi_arg_injection//在Metasploit的模块数据库中,选择利用该漏洞的模块

set RHOSTS 192.168.109.171//对目标主机使用该模块

run

利用该漏洞,可以得到连接靶机的Meterpreter会话,输入shell后可以成功获得靶机shell,执行whoami、ls、pwd命令验证,可以显示当前登录用户的用户名(www-data为Unix/Linux中Web服务的默认运行用户,权限较低)、列出目录内容、显示当前工作目录(Web服务的根目录)。

68cbf749d1c9d904af7590dfc35aae0d

3.问题及解决方案

本实验操作较其他实验简单,未出现不理解的问题。

4.学习感悟、思考等

本次实验的过程较为顺利,通过本次实验,我进一步熟悉了Metasploit框架的核心操作流程,了解Metasploit和Nmap两款强大的安全工具在前期渗透的重要作用,并掌握了多种典型漏洞的识别与利用技术,包括Vsftpd后门漏洞、Samba命令注入、Java RMI服务远程代码执行以及PHP CGI参数注入等。每个漏洞的成功复现,不仅锻炼了我的实践能力,也让我对网络攻防的实战场景有了更为具体和深入的理解。我也深刻意识到网络安全战场的严峻性。尽管靶机上的的漏洞基本上都已被解决,但在实际环境中还会不断有新的威胁产生,我们必须重视漏洞保护,采取有效的网络安全防护措施。

参考资料

Metasploitable2的下载与使用指导

posted @ 2025-11-23 22:38  20232412李  阅读(8)  评论(0)    收藏  举报