今天看到Fortinet FortiOS RCE漏洞(CVE-2024-23113)的POC公开售卖168刀(约1176RMB),这周还卖了90份……CISA在三天前发布公告声明该漏洞已被在野利用。
POC肯定是不会剁手的,今天也不分析漏洞的细节,看下APT组织实际攻击中如何利用Fortinet的漏洞。
说起Fortinet不得不起到之前的两个典型漏洞:CVE-2022-42475和CVE-2023-27997,都是Fortinet RCE的洞,荷兰军事情报和安全局还发文称中国黑客在 2022 年至 2023 年期间利用其中的CVE-2022-42475漏洞入侵了至少 20000 台 Fortigate 网络安全设备。
下面分析一个典型的利用形式:
在这个集群中,ld.so.preload 文件会被系统上的/bin/smit文件预加载,这导致所有 FortiOS 进程在启动时加载并执行 /data2/libcrashpad.so 共享对象文件,利用这种预加载机制保持持久性。
ld.so.preload 日志查询语法:
host.os.type:linux and event.category:file and event.action:(updated or renamed or rename or file_rename_event) and
not event.type:deletion and file.path:/etc/ld.so.preload and not process.name:(wine or oneagentinstallaction)
libcrashpad.so 是一个共享库文件,当运行ripd进程且没有检测到锁文件时触发/data2/tftpd。
tftpd 是一个主要用于投放额外恶意文件和其他恶意功能的可执行文件,主要执行以下操作:
-
持久化:通过创建 /data/etc/ld.so.preload 文件,写入 /data2/libcrashpad.so 的路径,确保 libcrashpad.so 在系统重启后仍能被加载。
-
时间篡改(Timestomping):为了逃避检测和反取证,tftpd 修改多个文件的访问和修改时间,使其与系统关键文件的时间戳一致。这些文件包括 /bin/smit、/bin/toybox、/data/etc/ld.so.preload、/data2/libcrashpad.so、/data2/tftpd 和 /lib/libaprhelper.so。
-
进程注入:枚举所有运行中的进程,检查 sslvpnd 进程是否存在。一旦找到,tftpd 会投放 /lib/libaprhelper.so 并将其注入 sslvpnd 进程中,通过文件系统套接字 /tmp/clientsDownload.sock 从 sslvpnd 进程接收数据。
-
替换系统文件:投放 /bin/smit 和 /bin/toybox 二进制文件,删除原有的 FortiOS 符号链接,并将新二进制文件设置为系统命令(如将 /bin/toybox 复制为新的 /bin/sh)。
-
解密凭证:解密存储在配置中的凭证。
/bin/smit 是指向 /bin/init 的符号链接,恶意的 smit 二进制文件通过创建子进程来执行 /bin/init,当子进程终止后会执行以下恶意操作:
-
通过创建包含 /data2/libcrashpad.so 路径的 /data/etc/ld.so.preload 文件,建立恶意软件的持久性。
-
对 /data/etc/ld.so.preload 文件进行时间篡改,使其访问和修改时间与 /bin/init 的时间戳一致。
原文始发于微信公众号(KeepHack1ng):黑客针对Fortinet漏洞的利用
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论