转载

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变体利用:host-manager

这是理想的攻击情况,因为根据经验,Tomcat在Windows主机上是以'nt authority / system'权限启动的,这使得我们在攻陷它后能够完全控制服务器。这又让我们能获取密码和哈希值,这将使我们能够进行内网横移。

Tomcat变体利用:host-manager

登录认证

在第一次碰到Tomcat实例时,作为审计员的第一个操作是尝试登录manager。我们通常会尝试使用默认密码,例如admin / admin或tomcat / tomcat。

在这个场景下,当我尝试使用'tomcat / tomcat'组合访问manager时,返回了'403拒绝访问'。

Tomcat变体利用:host-manager

但是,当我在host-manager上尝试同样的事情时...

...

boom!

HTTP 200,我进去了!

Tomcat变体利用:host-manager

有一些工具可以自动化爆破:

(译者注:在tomcat7.0后,默认会有登录次数限制,需要手动更改conf/server.xml才能进行爆破)

Tomcat变体利用:host-manager

Metasploit模块 : auxiliary/scanner/http/tomcat_mgr_login

Tomcat变体利用:host-manager

Hydra

Tomcat变体利用:host-manager Nikto

Tomcat变体利用:host-manager

一些爆破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是共享资源的名称。一般用在局域网内)

Tomcat变体利用:host-manager

Bingo!Tomcat连接到我的服务器了!

Tomcat变体利用:host-manager

这意味着Tomcat解释了UNC路径,并尝试从'datatest'文件夹安装应用程序。我们将强制它(autoDeploy)并创建“datatest”文件夹,并添加一个WAR文件,我们在WAR中插入一个后门,使我们能够从C&C上通过后门拿下目标服务器。

  1. 创建WAR

创建WAR比较简单; 它只是一个后缀名被我们改成了.war的zip文件。在zip文件中,我们创建一个JSP木马,让我们可以浏览器中访问,并执行系统命令。

我们创建包含后门的ZIP

Tomcat变体利用:host-manager

然后改后缀

Tomcat变体利用:host-manager

对于那些'不确定你正在做什么'的脚本小子,你可以使用msfvenom方便地创建一个WAR文件并直接执行“meterpreter”:

Tomcat变体利用:host-manager

  1. 部署war包并pwn掉服务器

既然我们的WAR文件已经在Tomcat服务器上,并从我们的C&C上部署它,我们将使用impacket包中的smbserver.py来共享以下文件夹:

Tomcat变体利用:host-manager

这样部署就远程完成了,文件存储在我们的C&C上。要访问我们的后门,Tomcat要使用alias。这意味着需要通过vhost功能,在/ etc / hosts中添加服务器的IP。

Tomcat变体利用:host-manager

现在我们看看在部署前的Tomcat:

Tomcat变体利用:host-manager

部署后

Tomcat变体利用:host-manager

成功了!在部署期间从我的SMB服务器连接Tomcat:

Tomcat变体利用:host-manager

从浏览器访问后门,确认后门已生效,并且可以在Windows服务器上执行系统命令。

Tomcat变体利用:host-manager

部署完成后,我的计算机上的目录内容:

Tomcat变体利用:host-manager

在Tomcat部署在Windows服务器前提下,

已经在以下Tomcat版本上测试了这种攻击方法:

<= 7.0.92 et <= 8.5.37。

本文为翻译稿件,原文链接: https://www.certilience.fr/2019/03/tomcat-exploit-variant-host-manager/

原文  https://xz.aliyun.com/t/4435
正文到此结束
Loading...