Tomcat CVE-2025-24813 从计算器到GetShell

admin 2025年3月15日01:21:43评论0 views字数 2251阅读7分30秒阅读模式

声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

防走失:https://gugesay.com/archives/4094

不想错过任何消息?设置星标↓ ↓ ↓

Tomcat CVE-2025-24813 从计算器到GetShell

漏洞原理:

Content-Range 在 Tomcat 的HTTP PUT请求中主要用于实现大文件的分块传输。在文件上传未完成的情况下,内容会被临时存储在Tomcat的工作目录:$CATALINA_BASE/work/Catalina/localhost/ROOT

该漏洞的核心在于不完整PUT请求上传时的文件名处理机制:文件路径中的分隔符/会被转换为.。例如:访问/xxxxx/session会被解析为.xxxxx.session

条件苛刻

该漏洞的利用前提条件非常苛刻,必须要满足以下三点才可以达到真正的利用(多数网站不会满足这些条件):

  1. 开启File文件会话存储
  2. 将DefaultServlet的readonly配置为false
  3. lib文件夹中要有Commons Collections 3.2.1.jar包

漏洞复现

目前网上的复现教程和视频基本都是“弹个计算器”,而前两天刚好在B站上看到某个靶场部署了该漏洞的环境,一是省了本地部署环境的麻烦,二是该环境靶场要求最终获得administrtor的NTLM hash作为flag提交才算完成挑战,当时看到只有3个人成功获得hash,看来还是有点难度的,试试看吧~

  • 由于靶场是无法通过远程3389登录Windows,因此就算弹出计算器,你也无法看到

  • 另外一个比较苛刻的地方是,该靶标环境不出网,无回显

OK,按照网上所有复现教程所说的那样,生成payload,然后两步提交:

Tomcat CVE-2025-24813 从计算器到GetShell
请求1
Tomcat CVE-2025-24813 从计算器到GetShell
请求2

困难1

看似是成功了,但是弹计算器是毫无意义的,换成whoami命令的话,同样是500错误,并无法看到whoami的信息,那么我们只能考虑上传木马了。

但是问题在于我们无法得知Web目录的具体路径(当然你可以根据Tomcat的默认路径去不断猜),但我们知道Tomcat的默认页面是index.jsp,那么就可以通过下面这条命令去遍历C盘中的index.jsp文件,一旦查找到,就可以将我们要写的内容写入到指定的文件中:

for /r C: %i in (index.jsp) do @echo "test" > "%~dpiexample.jsp"

通过以上命令生成Payload,然后发送,接着访问 http://10.10.10.3/example.jsp 看看:

Tomcat CVE-2025-24813 从计算器到GetShell
成功上传

bingo!既然成功找准网站目录,接下来就可以上传我们可爱的“木马”了,蚁剑启动:

Tomcat CVE-2025-24813 从计算器到GetShell
蚁剑成功连接

困难2

成功连接,上传神器mimikatz,运行:

Tomcat CVE-2025-24813 从计算器到GetShell
无交互回显

额...,mimikatz是交互式命令,无论是单独运行mimikatz还是按照上面的方式运行,都没有任何结果回显,后经过询问,有同事贴心告诉了以下命令:

mimikatz "privilege::debug" "lsadump::lsa /patch" exit > 1.txt

成功将结果输出到了1.txt,查看内容:

Tomcat CVE-2025-24813 从计算器到GetShell
mimikatz报错

我擦~

Tomcat CVE-2025-24813 从计算器到GetShell
c0000061错误解释

mimikatz提不了权,这咋整?又是一番Google和各种搜索,尝试了reg save大法、lsass大法均以失败告终。

既然蚁剑都能连接,那冰蝎和哥斯拉是不是也能连接呢?毕竟这两个工具的功能更强大一些,利用蚁剑分别上传冰蝎和哥斯拉的jsp shell,经过测试,冰蝎死活连不上,而哥斯拉是可以正常连接的(不知道是不是我的冰蝎环境有问题?):

经过一阵摸索和折腾,最终发现哥斯拉的PetitPotam功能可以利用提权功能以system权限运行命令:

Tomcat CVE-2025-24813 从计算器到GetShell
PetitPotam功能

既然这样,那就好办了,一种是导出System和SAM文件,然后利用mimiktaz进行查看(这种方式我没尝试):

# 导出SAM文件和SYSTEM文件esentutl.exe /y /vss C:WindowsSystem32configSystem /d systemesentutl.exe /y /vss C:WindowsSystem32configSAM /d sam# 导入mimikatzsadump::sam /sam:sam /system:system

还有更简单的方法,那就是直接利用PetitPotam功能运行mimikatz命令lsadump::sam来直接获取NTLM hash:

Tomcat CVE-2025-24813 从计算器到GetShell
读取NTLM hash

提交flag,搞定~

Tomcat CVE-2025-24813 从计算器到GetShell
提交flag

参考资料

https://forum.butian.net/article/674

https://blog.csdn.net/qq_55202378/article/details/140419202

https://googles.plus/2022/02/07/li-yong-certutil-jin-xing-shen-tou-ce-shi/

https://www.anquanke.com/post/id/245019#h3-2

靶场地址:https://www.cyberstrikelab.com/#/target/kvm_detail/330

- END -

加入星球,随时交流:

(会员统一定价):128元/年(0.35元/天)Tomcat CVE-2025-24813 从计算器到GetShell感谢阅读,如果觉得还不错的话,欢迎分享给更多喜爱的朋友~

原文始发于微信公众号(骨哥说事):Tomcat CVE-2025-24813 从计算器到GetShell

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月15日01:21:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Tomcat CVE-2025-24813 从计算器到GetShellhttp://cn-sec.com/archives/3840848.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息