[LetsDefend 分析报告] PHP-CGI (CVE-2024–4577)
你将面对一个针对组织基础设施中关键软件组件的、新发现且未打补丁的漏洞(CVE-2024-XXXX)的利用尝试。该漏洞允许远程代码执行,若成功利用将构成重大威胁。UTC 时间 12:05,入侵检测系统(IDS)和入侵防御系统(IPS)生成告警,表明你的一个 Web 服务器正遭受攻击。你的任务是分析提供的工件,确认利用尝试,并回答问题。
文件位置:C:\Users\LetsDefend\Desktop\ChallengeFile\artifacts.7z
开始调查
该漏洞由 DEVCORE 发现,因此最好先阅读其内容以了解漏洞如何被利用,然后你可以阅读 Aliz Hammond 来自 Watchtowr Labs 发布的博客,了解攻击者如何利用此漏洞。此处是 Watchtowr Labs 编写的 PoC 脚本。
事件期间服务器上运行的 PHP 版本是多少?
我找到了两种解决方式:第一种是读取 news.txt,其中存储了所有 PHP 更新新闻。另一种方式是直接运行 php.exe -v 打印该 PHP 可执行文件的版本。
8.2.19
当 PHP 配置为以 CGI 模式运行时,httpd.conf 中的哪个指令指定了处理 PHP 文件请求的脚本?
httpd.conf 位于 /Apache24/conf 文件夹中。搜索 php-cgi.exe,然后可以看到此操作允许通过向 php-cgi.exe 发送 HTTP 请求来直接利用此漏洞。
Action
尝试攻击我们服务器的攻击者的 IP 地址是多少?
进入 \Apache24\logs 文件夹,可以看到 access.log 可供调查。调查此日志文件后,可以看到 192.168.110.1 发送了多个与利用此漏洞的载荷匹配的 HTTP POST 请求。
192.168.110.1
攻击者使用恶意载荷针对服务器上的哪个特定页面?
应用程序的主要功能针对 /upload.php 页面。然而,出于测试目的,也可能使用 /index.html 文件。
upload.php
服务器上运行的 Apache 版本是多少?
我们可以打开 error.log 来获得此问题的答案。
2.4.59
攻击者成功在服务器上执行了命令。在他们成功尝试期间,攻击者命令启动的第一个进程是什么?
他们提供了 Prefetch 文件夹和来自 Eric Zimmerman 工具的 PECmd 供我们使用,因此我们将使用它来确定在攻击者发送载荷后哪个可执行文件被执行。
以下是我使用的命令:
PECmd.exe -d "C:\Users\LetsDefend\Desktop\ChallengeFile\artifacts\Prefetch" --csv output
获得 CSV 文件作为输出后,在 Timeline Explorer 中打开它。但我在此期间没有发现任何可疑的可执行文件被执行。
于是我返回到 access.log,并将时间与 error.log 关联起来,得出结论:我们发现的那些请求导致了错误。因此我向下滚动了一些,发现了这些未触发任何错误的 HTTP 请求,这意味着这些攻击是成功的。
返回 Timeline Explorer,我们可以看到这两个可执行文件是在攻击者成功向 Apache 服务器发送载荷之后执行的。
whoami.exe
在攻击者被发现并阻止之前,他们执行了另一个命令,启动了一个新进程。该命令启动了哪个进程?
calc.exe
攻击者使用的漏洞利用的 CVE 编号是多少?
CVE-2024-4577
总结
在这个挑战中,我们学习了 CVE-2024–4577,并找到了 PHP 和 Apache 版本,了解了所提供的 PHP 为何存在漏洞,攻击者如何利用此漏洞,以及如何使用 Prefetch 检测此漏洞执行的命令。
已获得徽章 CSD0tFqvECLokhw9aBeRqhmsaJn5zQrPDLN17OL5MocjtC/QZmlZ47rYo7NcdSM7N19CmnTiRZSIOah0k8BCHHM5YUOw3edZIzL763qB/u6yRXJFSf+xz1626jhMtw0P