Tomcat变体利用:host-manager
在一次内部审计任务期间,我被安排去攻陷一个Windows上的Tomcat实例。通常,说到攻击Tomcat实例,都会想到进入manager后台,这是一个简单的漏洞。
但是,在这篇文章中,manager无法访问(403 HTTP错误)。然而,host-manager是可以访问的,这就是它有趣的地方,。
背景:
我们的目标 - > Windows 2012R2服务器(192.168.56.31)
命令与控制服务器 C&C(我们的机器) - > Ubuntu 16.04(192.168.56.1)
Tomcat版本 - >写下这篇文章时的最新版本(8.5.37)
信息收集:
用nmap扫描目标主机,发现Tomcat监听在8080端口
这是理想的攻击情况,因为根据经验,Tomcat在Windows主机上是以'nt authority \ system'权限启动的,这使得我们在攻陷它后能够完全控制服务器。这又让我们能获取密码和哈希值,这将使我们能够进行内网横移。
登录认证
在第一次碰到Tomcat实例时,作为审计员的第一个操作是尝试登录manager。我们通常会尝试使用默认密码,例如admin / admin或tomcat / tomcat。
在这个场景下,当我尝试使用'tomcat / tomcat'组合访问manager时,返回了'403拒绝访问'。
但是,当我在host-manager上尝试同样的事情时...
...
boom!
HTTP 200,我进去了!
有一些工具可以自动化爆破:
(译者注:在tomcat7.0后,默认会有登录次数限制,需要手动更改conf/server.xml才能进行爆破)
Metasploit模块 : auxiliary/scanner/http/tomcat_mgr_login
Hydra
一些爆破Tomcat的脚本
e.g. : https://gist.github.com/th3gundy/d562eb1ae5dc42d666d3aab761bd4d96
攻陷 'host-manager '
好的,现在我们可以访问host-manager了,然后呢?
这个页面没有并上传表单,根据我从文档中看到的,你需要 知道并控制 将要部署的应用 的路径,和一个有效的vhost。
(译者注:
The Tomcat Host Manager application enables you to create, delete, and otherwise manage virtual hosts within Tomcat.
http://tomcat.apache.org/tomcat-7.0-doc/host-manager-howto.html
当我再次阅读文档时,我有了一个漏洞利用的思路:如果我可以创建指向我控制的SMB服务器(使用impacket中的smbserver.py)的UNC路径,那该多令人振奋
(译者注:UNC路径格式:\servername\sharename,其中servername是服务器名。sharename是共享资源的名称。一般用在局域网内)
Bingo!Tomcat连接到我的服务器了!
这意味着Tomcat解释了UNC路径,并尝试从'datatest'文件夹安装应用程序。我们将强制它(autoDeploy)并创建“datatest”文件夹,并添加一个WAR文件,我们在WAR中插入一个后门,使我们能够从C&C上通过后门拿下目标服务器。
- 创建WAR
创建WAR比较简单; 它只是一个后缀名被我们改成了.war的zip文件。在zip文件中,我们创建一个JSP木马,让我们可以浏览器中访问,并执行系统命令。
我们创建包含后门的ZIP
然后改后缀
对于那些'不确定你正在做什么'的脚本小子,你可以使用msfvenom方便地创建一个WAR文件并直接执行“meterpreter”:
- 部署war包并pwn掉服务器
既然我们的WAR文件已经在Tomcat服务器上,并从我们的C&C上部署它,我们将使用impacket包中的smbserver.py来共享以下文件夹:
这样部署就远程完成了,文件存储在我们的C&C上。要访问我们的后门,Tomcat要使用alias。这意味着需要通过vhost功能,在/ etc / hosts中添加服务器的IP。
现在我们看看在部署前的Tomcat:
部署后
成功了!在部署期间从我的SMB服务器连接Tomcat:
从浏览器访问后门,确认后门已生效,并且可以在Windows服务器上执行系统命令。
部署完成后,我的计算机上的目录内容:
在Tomcat部署在Windows服务器前提下,
已经在以下Tomcat版本上测试了这种攻击方法:
<= 7.0.92 et <= 8.5.37。
本文为翻译稿件,原文链接:https://www.certilience.fr/2019/03/tomcat-exploit-variant-host-manager/