这是一个平常的周一。我像往常一样登录 SOC 仪表板,查看警报。其中一条引起了我的注意:
警报: 可能的本地文件包含(LFI)尝试
IP 地址: 203.0.113.44
URL:/index.php?file=../../../../etc/passwd
用户代理: curl/7.81.0
看起来有人可能正在通过操纵 URL 来访问系统文件。我的工作是调查此事,并判断是否需要上报。
经过快速研究,我发现这与一个已知漏洞匹配:CVE-2025-39507。它影响一个名为 Nasa Core 的 WordPress 插件(版本 6.3.2 及以下)。攻击者可以通过更改文件输入参数来查看服务器上的敏感文件。
示例:
/index.php?file=../../../../etc/passwd
如果插件未能正确验证文件输入,它就会直接跟随攻击者提供的任意路径。
检测规则不是我编写的,但我审查了它,以了解警报触发的原因。它查找的内容包括:
/etc/passwd 或 /wp-config.php)的请求以下是该规则的简化版本:
CommonSecurityLog
| where RequestURL has "../"
or RequestURL has "etc/passwd"
or RequestURL has "wp-config"
| where DeviceCustomString1 contains "curl" or DeviceCustomString1 contains "python"
| project TimeGenerated, SourceIP, RequestURL, DeviceCustomString1
我运行了一个查询,看看 IP 203.0.113.44 是否还尝试了其他操作:
CommonSecurityLog
| where SourceIP == "203.0.113.44"
| summarize count() by RequestURL
事实证明,它还访问了其他路径,如 /admin/、/login.php 和 /wp-config.php。这告诉我这不仅仅是一次性的请求... 很可能是一个扫描器或有人在侦查。
我检查了该 IP 在我们的日志中活跃了多长时间:
CommonSecurityLog
| where SourceIP == "203.0.113.44"
| summarize FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated)
它从几小时前开始,并且最近仍然活跃。所以这不是历史噪音——这是正在进行中的活动。
以下是我记录的上报内容:
“来自 IP 203.0.113.44 的可能 LFI 扫描。请求模式与 CVE-2025-39507 匹配。该 IP 使用 curl 访问了 9 个不同的路径,包括 /etc/passwd 和 wp-config.php。行为表明是自动化侦察。建议二级审查并可能封禁该 IP。”
所有截图都位于 /screenshots 文件夹中。
在排查过程中,我问了自己几个问题:
接下来,我将在受控的实验室环境中,使用 TryHackMe 之类的平台安全地模拟这次攻击。目标是更好地了解这类活动从攻击者角度看起来是什么样——以及它会产生什么样的日志。
附言:本实验室仅在安全、合乎道德的环境中进行,仅用于培训目的。没有针对或伤害任何真实系统。始终遵守你所在组织的规定,切勿在你不拥有或未经许可测试的系统上尝试漏洞利用。
| # | Description | File |
|---|
| 1 | CVE 列表(Patchstack) | 1_cve_selection_listing.png |
| 2 | Patchstack 概览 | 2_patchstack_cve_overview.png |
| 3 | VulDB 向量示例 | 3_vuldb_exploit_vector.png |
| 4 | Azure Kali VM 已创建 | 4_kali_vm_deployed.png |
| 5 | VM 运行截图 | 5_kali_vm_running_status.png |
| 6 | SSH 访问 Kali | 6_kali_vm_logged_in.png |
| 7 | Sentinel KQL 规则审查 | 7_lfi_detection_kql_query.png |