端午假期期间,一个熟悉的勒索病毒家族Tellyouthepass再度开启了新一轮的“攻势”。引发本轮传播的一个重要原因是CVE-2024-4577漏洞的PoC代码在6月7日时被首度发布到了公开网络上。很多使用Windows + XAMPP的服务器都中招了,我们可以通过升级PHP和禁用PHP CGI来防范该类攻击。
本次大范围在野攻击说明
本次locked勒索病毒通过XAMPP在PHP-CGI模式下远程代码执行漏洞(CVE-2024-4577)进行利用,该漏洞于2024年6月7日进行公开,虽然PHP已在8.3.8、8.2.20和8.1.29版本中发布了修复,但是披露该漏洞的台湾戴夫寇尔公司(DEVCORE)研究团队也做了说明,默认情况下,Windows 上所有版本的 XAMPP 安装都容易受到攻击,建议放弃PHP CGI,选择更安全的解决方案。
真实攻击案例
提取Apache日志对其分析,access.log中可以排查到被加密服务器存在攻击日志,可以找到php-cgi/php-cgi.exe的访问记录
184.94.212.101 - - [08/Jun/2024:02:59:36 +0800] "POST /php-cgi/php-cgi.exe?%ADd+cgi.force_redirect%3d0+%ADd+cgi.redirect_status_env+%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1" 200 73728
黑客通过该漏洞,利用这种访问方式可以在服务器执行任意代码,同样可以在服务器上投递加密器d3.hta,加密器执行后的加密样式如下图,服务器重要资料文件都被加密为.locked后缀的文件,并留下了READ_ME9.html的勒索信。
漏洞与传播
CVE-2024-4577漏洞介绍
PHP 语言在设计时忽略Windows 作业系统内部对字元编码转换的Best-Fit特性,导致未认证的攻击者可透过特定的字元序列绕过旧有CVE-2012-1823的保护;透过参数注入等攻击在远端PHP 服务器上执行任意代码。
根据CVE官方的记述,在带有该漏洞的环境中,PHP-CGI模块可能会将Windows系统传入的参数误识别为PHP的配置选项传递给正在运行的PHP程序,进而可能被恶意攻击者利用来实现“任意代码执行”的操作。
影响范围
目前已知受到该漏洞影响的操作系统仅为Winows系统,而受影响的PHP版本则为:
PHP 8.3 < 8.3.8
PHP 8.2 < 8.2.20
PHP 8.1 < 8.1.29
PHP 8.0.x 和 7.x 和 5.x
360记录的这次在野攻击传播勒索软件
在6月8日时,360安全大脑便监控到了该漏洞的在野攻击。在实际触发的在野攻击中,系统中的HTTP守护进程会将可触发漏洞的参数传递给php-cgi程序,进而导致php-cgi.exe调起系统的cmd命令行工具运行mshta解释器来获取在线的远程hta脚本(实际为vbs脚本)到本地并运行。
防护建议
升级PHP – 强烈推荐
强烈建议所有使用者升级至PHP 官方最新版本8.3.8、8.2.20与8.1.29,对于无法升级的系统可透过下列方式暂时缓解漏洞。
对XAMPP for Windows 使用者 可关闭php-cgi,可做临时防护使用,最好还是升级PHP
在撰写本文的当下,XAMPP 尚未发布此漏洞的相应更新文件,如果确认不需要 PHP CGI 功能,则可以通过修改以下 Apache HTTP Server 配置来避免暴露于此漏洞:
- 在
xampp/apache/conf/httpd.conf
文件中找到配置项LoadModule cgi_module modules/mod_cgi.so
,将其注释掉,即修改为
#LoadModule cgi_module modules/mod_cgi.so
- 在
xampp/apache/conf/extra/httpd-xampp.conf
文件中找到配置项ScriptAlias /php-cgi/ "C:/xampp/php/"
,将其注销掉,即修改为
#ScriptAlias /php-cgi/ "C:/xampp/php/"
漏洞检测脚本
该漏洞如何利用,如何检测网站是否存在该漏洞。你可参考下文提供的bash脚本来检测(就是提交包含phpinfo()的POST数据来访问包含特定参数的php-cgi链接,看是否能够得到phpinfo()信息)。
转载请注明:半亩方塘 » PHP CGI 远程代码执行漏洞【CVE-2024-4577】勒索攻击,locked后缀加密和READ_ME9.html勒索解密联系方式,XAMPP网站防护方法