BPFDoor:一款利用BPF技术规避防火墙的Linux后门恶意软件分析

0 阅读9分钟

BPFDOOR Linux 恶意软件分析

嘿,恶意软件爱好者们,

今天,我将分析一款名为“BPFDoor”的恶意软件。此恶意软件于2022年被发现。

在分析恶意软件之前,别忘了使用虚拟机,并且永远不要忘记设置仅主机(Host Only)网络连接。

概述

BPFDoor 是一款 Linux/Unix 后门恶意软件,它允许威胁攻击者远程连接到 Linux shell,从而完全控制受感染的设备。当此恶意软件被植入您的 Linux/Unix 环境时,它将非常危险。该恶意软件专门被设计用于允许威胁攻击者远程连接到受感染系统,并且不需要在您的机器上开放任何端口即可运行。

BPFDoor 是一种被动型恶意软件,这意味着它可以监听一个或多个端口以接收传入的数据包。该恶意软件使用一个在网络层工作的伯克利包过滤器嗅探器。在我看来,这款恶意软件的功能与远程访问木马大致相同。作为一种逃避检测的技术,BPFDoor 在感染系统后还会重命名自身。

要更好地理解伯克利包过滤器是什么,您可以查看此链接 → www.ibm.com/docs/en/qsi…

至此,我们已经简要介绍了这款 Linux/Unix 恶意软件。现在我将解释它使用哪种类型的数据包。BPFDoor 只解析 TCP、UDP 和 ICMP 数据包,它会检查特定的数据值。

此外,如果 TCP 和 UDP 数据包具有正确的“魔法值”以及正确的密码,恶意软件将立即采取行动,借助支持的命令获取反向 shell。

请按 Enter 键或点击以查看完整尺寸的图片: www.bleepingcomputer.com/news/securi…

端起您的咖啡,让我们来简要分析一下这款恶意软件。

基本静态恶意软件分析

我们开始通过静态分析来探究这款恶意软件,以了解它属于哪个恶意软件家族。在此步骤中,我们不会运行这个 ELF 文件。

分析前需要了解的内容:

  • 使用防病毒工具确认恶意性
  • 使用哈希值识别恶意软件
  • 从文件的字符串、函数和头部中收集信息

每种技术都可能提供不同的信息,这取决于您的目标需求。尽可能多地收集信息非常重要。

请按 Enter 键或点击以查看完整尺寸的图片: 它是一个 ELF 文件。

请按 Enter 键或点击以查看完整尺寸的图片: MD5 哈希值。

为了理解此恶意软件是否被加壳,您可以使用命令 hexdump -C <文件名> | grep -C 1 UPX,此命令专门搜索 UPX 加壳特征。

在此过程之后,我们使用了“Certutil”来识别“md5”,但是,您也可以使用“PESTUDIO”。

请按 Enter 键或点击以查看完整尺寸的图片: 有趣的 API > 网络,API > 加密,API > 内存。

请按 Enter 键或点击以查看完整尺寸的图片: Virustotal 上有 36 个供应商将其识别为恶意软件。

在某些情况下,检测结果是通用的,并且会错误地将上述 Solaris 变种标记为 Linux 恶意软件,尽管它并非 Linux 二进制文件。

请按 Enter 键或点击以查看完整尺寸的图片: 12 个字符串被列入黑名单。

Socket:套接字允许同一台或不同机器上的两个不同进程之间进行通信。

我们也可以使用 PEID 来识别加壳器。

什么是 PEID? 为了检测加壳文件,我们可以使用 PEID。您可以使用 PEID 来检测用于构建应用程序的加壳器或编译器类型。这不是 EXE 文件,但我们可以将其从 ELF 转换为 EXE,但由于该文件的魔数问题,这不会成功,但让我们试试看!

如您所见,这行不通!

我将把 md5sum 值放到 virustotal 上检查恶意软件家族。

请按 Enter 键或点击以查看完整尺寸的图片: 前往 virustotal -> 输入 md5sum -> 社区。

该恶意软件的源代码

首先,我想知道这款恶意软件是否有源代码。据推测,这篇帖子帮助了我 → twitter.com/cyb3rops/st…

请按 Enter 键或点击以查看完整尺寸的图片: char sh[] 很有趣。

请按 Enter 键或点击以查看完整尺寸的图片:

请按 Enter 键或点击以查看完整尺寸的图片: 看起来这里有一个 shell。

为了确认这一点,我们只需将十六进制值复制到在线的十六进制转换程序。

请按 Enter 键或点击以查看完整尺寸的图片: 太棒了。我们将更深入地分析这个源代码。

有趣的是,我们有一个名为“getshell()”的函数。我将能够分析这个函数。

我们还有 rc4_ctx, crypt_ctx, decrypt_ctx。

RC4:也称为 Rivest Cipher 4,是一种流密码形式。它通过算法一次一个字节地加密消息。存在许多流密码,但 RC4 是最受欢迎的之一。它应用简单,即使处理非常大的数据块,速度也很快。

获取 Ahmet Göker 的故事到您的收件箱。 免费加入 Medium 以获取此作者的更新。 订阅 订阅

来源 (www.okta.com/identity-10…)

请按 Enter 键或点击以查看完整尺寸的图片: 如果我们能检测到“getshell()”函数,以便更好地理解这个函数的作用,那就太好了。

请按 Enter 键或点击以查看完整尺寸的图片: 看起来 C&C 服务器可能会选择随机的临时端口。因为正如我上面提到的,“它可以监听一个或多个端口,接收来自一个或多个主机的传入数据包,攻击者可以利用这些数据包远程向受感染的网络发送命令。”它并不用于特定的端口。

请按 Enter 键或点击以查看完整尺寸的图片: tv[0].tv_sec = 1225394246。这部分很有趣;因为二进制文件将自己复制到 /dev/shm/kdmtmpflush,这个目录仅在 RAM 中,并且每次重启都会清空。

您听说过“epoch”吗?让我解释一下它是什么。这并不简单。

什么是 epoch? 在计算领域,epoch 是计算机时钟和时间戳值所依据的日期和时间。传统上,epoch 对应于协调世界时某个特定日期的 0 时、0 分、0 秒,具体日期因系统而异。

来源 (www.techtarget.com/searchdatac…)

——————————————————————————————————————————————————————

让我们继续我们的研究。

如果我们理解了“epoch”是什么,我们就能够将这个 epoch 时间转换为人类可读的日期时间。

请按 Enter 键或点击以查看完整尺寸的图片: 这段代码当然不是至高无上的。:) 这可能是作者随机生成的。这款恶意软件在执行其任务时有优势;这是非常厉害的,因为我们讨论过伯克利包过滤器,而这应该能绕过 Linux/Unix 中的防火墙规则。

绕过本地防火墙

应用层防火墙实现了基本的基于规则的配置(非常简单)。在没有明确使用的情况下,它允许授权和监听服务与系统进行通信——以确保它在网络上“隐藏”起来。在绕过防火墙方面,这款恶意软件将做得非常好。运行此恶意软件后,它会将 /dev/shm/ 重命名为 /dev/shm/kdmtmpflush 并同时运行自身。

这是 Linux 中的目录 →

请按 Enter 键或点击以查看完整尺寸的图片: 运行此文件后,该文件将自动删除。您可以随时检查进程 ID /proc/<PID> 并执行简单的 ls 命令,以便能够找到该恶意进程的真实 ID。您需要是 root 用户才能运行此恶意软件。

在该恶意软件进行恶意活动时,我找到了一篇关于此步骤的精彩文章。 链接 -> www.sandflysecurity.com/blog/bpfdoo…

让我们继续我们的研究。

请按 Enter 键或点击以查看完整尺寸的图片: 看第 683 行 system() 它执行 /sbin/iptables。

什么是 Iptables? Iptables 基本上是 Linux 中的防火墙。iptables 防火墙通过将网络流量与一组规则进行比较来工作。规则定义了数据包要匹配该规则必须具有的特征,以及对匹配数据包应采取的操作。Windows 没有像 Linux 那样的 iptables 等价物。

——————————————————————————————————————————————————————————————————————————————————————————————————————————————————

之后,它将休眠 1 秒,在此过程完成时,它将创建套接字,监听之前指定的端口。

请按 Enter 键或点击以查看完整尺寸的图片: 我们可以从这段源代码中读到,它删除了 /dev/shm 中的所有目录和子目录,然后将字符串再次复制到 /dev/shm,我推测它将复制 /kdmtmpflush 并赋予 755 权限,并且在运行后,这个文件将被永久删除或隐藏。

请按 Enter 键或点击以查看完整尺寸的图片: BPFDoor 规避检测的部分技术是使用上述选择将二进制文件重命名为看起来像正常的 Linux 守护进程。我忘了提到;

黑客利用位于台湾的受感染路由器作为 VPN 隧道,通过虚拟专用服务器运行 BPFDoor。

该恶意软件利用 Solaris 漏洞获取 root 权限。

请按 Enter 键或点击以查看完整尺寸的图片: thehackernews.com/2022/06/qui…

我们可以做些什么?

为了让 BPFDoor 启动,威胁攻击者需要将恶意的二进制文件上传到服务器。最佳的防御措施是确保病毒和恶意软件签名是最新的,以捕获任何潜在的指标,并在环境中创建规则,以帮助检测看似不可检测的威胁。

来源 (thehackernews.com/2022/06/qui…)

————————————————————————————————————————————————————————

在下一部分,我们可以动态地研究这款恶意软件,我必须不断提高自己 :)

——————————————————————————————————————————————————————

感谢阅读这篇恶意软件博客。如果您对此类内容感兴趣,请关注我并订阅…并与您的朋友分享。

您可以在以下平台找到我: Linkedin:www.linkedin.com/in/ahmetg%C… Twitter:twitter.com/TurkishHood…_ Youtube:www.youtube.com/c/TurkishHo… Github:github.com/DarkGhost01…

Ahmet Göker | 漏洞利用研究员 | 恶意软件研究员 | 密码分析员 | CTF 选手 | 逆向工程

请按 Enter 键或点击以查看完整尺寸的图片: CSD0tFqvECLokhw9aBeRqojLf1fq1JERLOdY0q0SC4ANtT03VNUXVS8fXtKJZcF8j3sLQz6LuahI2oliZDQ7+K+eK6bSpBiqEdD1A68OBcU=