20222326 2024-2025-1 《网络与系统攻防技术》实验六实验报告
一、实验内容
实验内容:
掌握metasploit的用法,下载完官方靶机Metasploitable2后,可以通过前期渗透、Vsftpd源码包后门漏洞(21端口)、SambaMS-RPC Shell命令注入漏洞(端口139)、Java RMI SERVER命令执行漏洞(1099端口)和PHP CGI参数执行注入漏洞(80端口)来具体实践,掌握metasploit,
本周学习内容总结:
基础知识:
@Metasploit,一款开源安全漏洞利用和测试工具,集成了各种平台上常见的溢出漏洞和流行的shellcode。
@模块:通过Metasploit框架所装载、集成并对外提供的最核心的渗透测试功能实现代码。可以分为辅助模块(Aux)、渗透攻击模块(Exploits)、后渗透攻击模块(Post)、攻击载荷模块(payloads)、编码器模块(Encoders)、空指令模块(Nops)。这些模块拥有很清晰的结构和预定义好的接口,并可以组合支持信息收集、渗透攻击与后渗透攻击拓展。
@基本的命令:
use
+(auxiliary(辅助模块)&exploit(攻击模块)&payload(攻击载荷)&encode(编译器模块))+指定模块 【也可以先通过search 查找模块,后通过 use X (X是选定模块的序号)来运用】
show
+ [exploits&payloads&encoder&auxiliary&options]:显示可使用的模块或选项 【最常用的是show options,其次就是 show payloads】
set
+ [options&payload]:设定选项或模块(图失败,原因是32位设备,使用的64位exploit) 【可以通过set 设置监听主机的IP地址、端口等等】
run
&exploit
:启用模块
back
:取消当前指定模块,同时返回上级目录
search
:搜索符合条件的模块,比如查询 search ms17-010相关的模块、
二、实验过程
(一)前期渗透
1.发现主机
(1)在kali命令行中输入命令msfconsole
进入控制台,进入控制台后输入search arp_sweep
来搜索与 ARP 扫描相关的模块。
(2)从扫描结果可以看到auxiliary/scanner/discovery/arp_sweep
就是我们需要的模块,通过use auxiliary/scanner/discovery/arp_sweep
或者use 0
我们可以使用该模块
(3)接下来需要设置一些关于靶机的信息,需要在靶机中通过ifconfig
命令查看一下靶机的IP地址,
【靶机IP地址:192.168.85.155】
(4)在kali中设置通过show options
来查看需要设置的必要信息:
设置目标主机(靶机)的IP地址:set RHOSTS 192.168.85.155
,而后通过run
或者exploit
来运行。
【从运行结果可以看出,我们成功发现主机192.168.85.159】
2.端口扫描
(1)在msf中输入search portscan/tcp
搜索与 TCP 端口扫描相关的模块。
(2)通过use auxiliary/scanner/portscan/tcp
命令使用该模块后,再通过show options
来查看需要设置的必须选项。
(3)现在需要设置的是目标主机的IP地址,可以通过set rhosts 192.168.85.159
来设置
(4)输入run
运行,结果如下:
【可以看到1-10000范围内开着的端口】
3.扫描系统版本+漏洞
(1)通过search auxiliary/scanner/smb/smb_version
命令搜索与 SMB 版本扫描相关的模块。
(2)通过use 0
命令使用该模块,然后再通过show options
查看需要设置的必要选项。
【可以看出,需要设置的是目标主机的IP地址】
(3)通过set rhosts 192.168.85.159
设置,而后通过run
运行,结果如下:
【可以看出目标主机的操作系统可能是 Unix
版本是Samba 3.0.20 Debian
】
(4)在kali命令行中通过nmap --script=vuln 192.168.85.159
来查看目标主机可能存在的漏洞。
(二)Vsftpd源码包后门漏洞(21端口)
漏洞背景介绍:Vsftpd(Very Secure FTP Daemon)是一个流行的 FTP 服务器软件,以其高性能和安全性著称。然而,在某些版本中,Vsftpd 被发现包含了一个后门,该后门允许攻击者在特定条件下获得对服务器的未授权访问。这个后门是在 2011 年被发现的,具体版本为 2.3.4。
触发条件:当 FTP 客户端发送一个用户名,该用户名以 😃 【其实是:)
】(居然会出现表情包,一个神奇的博客园,哈哈哈哈)结尾时,Vsftpd 会打开一个监听 shell,通常在端口 6200 上。
(1)通过search vsftpd
搜索查找与 Vsftpd 相关的模块。
(2)从查找的结果来看,第二个exploit/unix/ftp/vsftpd_234_backdoor
是我们需要的模块,看到backdoor,就可以指定,这是我们需要的。通过use 1
来使用该模块。而后通过show options
来查看需要设置的必要项。
(3)从上图中可以看出需要设置的是目标主机的IP地址,通过set rhosts 192.168.85.159
来设置。设置完后通过输入exploit
来运行。
【从图中可以看出,已经成功获取了一个shell,没有什么明确的标志,但是可以通过输入pwd
uname -a
ifconfig
来测试shell,从输出的ip地址也可以看出,获得的shell确实是靶机的,攻击成功!】
(三)SambaMS-RPC Shell命令注入漏洞(端口139)
漏洞介绍:Samba 是一个开源软件,用于在 Unix 和类 Unix 系统(如 Linux)与 Windows 系统之间实现文件和打印机共享。Samba 通过实现 SMB/CIFS 协议来实现这一功能。然而,在某些版本的 Samba 中,存在一个 MS-RPC(Microsoft Remote Procedure Call)Shell 命令注入漏洞,该漏洞允许攻击者通过特定的 RPC 调用执行任意命令。
触发条件:当攻击者通过 MS-RPC 调用特定的函数时,可以注入并执行任意命令。
漏洞编号:CVE-2007-2447
漏洞原理:Samba中负责在SAM数据库更新用户口令的代码未经过滤便将用户输入传输给了/bin/sh。如果在调用smb.conf中定义的外部脚本时,通过对/bin/sh的MS-RPC调用提交了恶意输入的话,就可能允许攻击者以nobody用户的权限执行任意命令。
(1)通过输入search samba
查找samba相关的模块。或者通过search CVE-2007-2447
一步定位。
(2)找到我们需要的模块后,通过use 0
或者use exploit/multi/samba/usermap_script
来选择我们需要的漏洞。并通过show options
来查看需要设置的必要项
(3)通过set rhosts 192.168.85.159
设置目标主机IP地址,即可run
运行了。运行结果如下:
【可以通过uname -a
ifconfig
来测试获得的shell】
(四)Java RMI SERVER命令执行漏洞(1099端口)
漏洞背景介绍:Java RMI(Remote Method Invocation)是一种用于在两个 JVM(Java Virtual Machine)之间进行远程方法调用的技术。RMI 允许一个 Java 对象调用另一个位于不同 JVM 上的对象的方法。然而,在某些情况下,如果 RMI 服务器没有正确地验证和处理客户端请求,可能会导致命令执行漏洞,使攻击者能够执行任意命令。
漏洞原理:Java RMI Server的RMI注册表和RMI激活服务的默认配置存在安全漏洞,可被利用导致代码执行。
(1)【前提:从之前端口扫描可以得知靶机的1099
端口是开放的】通过use exploit/multi/misc/java_rmi_server
选择需要使用的漏洞。并通过show options
来设置需要设置的必要项。
(2)通过set rhosts 192.168.85.159
来设置目标主机的IP地址后,即可通过run
运行。
(3)通过sessions -i id
建立的会话进行交互 id
从运行过后的信息来选择,我的输出内容是4
所以,我输入的命令是sessions -i 4
而后输入shell
启动一个命令行,而后通过输入uname -a
whoami
ifconfig
来进行测试shell。
(五)PHP CGI参数执行注入漏洞(80端口)
漏洞背景介绍:PHP CGI(Common Gateway Interface)模式下的参数执行注入漏洞是指,当 PHP 以 CGI 方式运行时,如果启用了 cgi.force_redirect 配置项并且设置不当,攻击者可以通过特定的 HTTP 请求参数注入并执行任意命令。这个漏洞最早在 2012 年被发现,影响了许多版本的 PHP。
漏洞原理:CGI脚本没有正确处理请求参数,导致源代码泄露,允许远程攻击者在请求参数中插入执行命令。
漏洞编号:CVE-2012-1823
触发条件:当 PHP 以 CGI 模式运行,并且 cgi.force_redirect 配置项设置为 0 时,攻击者可以通过特定的 HTTP 请求参数注入并执行任意命令。
(1)输入search CVE-2012-1823
查看该漏洞相关的模块。
(2)通过输入use 0
或者use exploit/multi/http/php_cgi_arg_injection
选择该漏洞。并且通过show options
来查看需要设置的必要项。
(3)通过set rhosts 192.168.85.159
设置目标主机的IP地址,然后通过run
来运行。
【通过sessions -i 5
建立会话进行交互,通过shell
启动一个命令行,然后通过pwd
id
来进行测试,攻击成功!】
三、问题及解决方案
- 问题1:在前期渗透中发现主机的过程中,出现了以下错误:
- 问题1解决方案:原因是权限不够,切换到root用户下进行就OK了。
参考资料
posted on 2024-11-17 22:17 20222326王蓉 阅读(7) 评论(0) 编辑 收藏 举报