嗨,恶意软件爱好者们,
今天,我将分析一款名为“BPFDoor”的恶意软件。该恶意软件于2022年被发现。
在分析恶意软件之前,别忘了使用虚拟机,并始终记住使用仅主机模式连接。
摘要
BPFDoor 是一款 Linux/Unix 恶意后门程序,允许威胁行为者远程连接到 Linux shell,以获取对受感染设备的完全访问权限。
当该恶意软件被植入您的 Linux/Unix 环境时,它将非常危险。此恶意软件专门设计用于允许威胁行为者远程连接到被入侵的系统,并且无需在您的机器上运行任何开放端口。
BPFDoor 是一种被动恶意软件,这意味着它可以监听一个或多个端口以接收传入的数据包。该恶意软件使用一个在网络层工作的 Berkeley 包过滤器嗅探器。从我的角度来看,这款恶意软件的功能大致与远程访问工具(RAT)相同。BPFDoor 在感染系统后还会重命名自身,作为一种逃避检测的技术。
为了更好地理解什么是 Berkeley 包过滤器,您可以查看此链接 → www.ibm.com/docs/en/qsi…
到目前为止,我们已经简要介绍了这款 Linux/Unix 恶意软件。现在我将解释它使用哪种数据包。BPFDoor 只解析 TCP、UDP 和 ICMP 数据包,并检查特定的数据值。
此外,如果 TCP 和 UDP 数据包具有正确的“魔法值”,以及正确的密码,恶意软件将立即采取行动,借助支持的命令获取反向 shell。
(按下回车或点击查看完整尺寸图片:www.bleepingcomputer.com/news/securi…
拿起你的咖啡,让我们简要分析一下这个恶意软件。
基础静态恶意软件分析
我们首先通过静态分析来探索这个恶意软件,看看它属于哪个恶意软件家族。在此步骤中,我们不会运行这个 ELF 文件。
分析前你应该知道:
- 使用防病毒工具确认恶意性
- 使用哈希值识别恶意软件
- 从文件的字符串、函数和头部收集信息
每种技术都可能提供不同的信息,这取决于你的目标需求。尽可能多地收集信息非常重要。
(按下回车或点击查看完整尺寸图片:它显示这是一个 ELF 文件)
(按下回车或点击查看完整尺寸图片:MD5哈希值)
为了理解这个恶意软件是否被加壳,你可以使用命令 hexdump -C <文件名> |grep -C 1 UPX,该命令专门搜索 UPX 的痕迹。
在此过程之后,我们使用了“Certutil”来识别“md5”,但是,你也可以使用“PESTUDIO”。
(按下回车或点击查看完整尺寸图片:有趣的 API,如网络、加密、内存相关 API) (按下回车或点击查看完整尺寸图片:VirusTotal 上已有 36 个安全厂商将其识别为恶意软件) 在某些情况下,检测结果是泛化的,并且不准确地将上述 Solaris 变体标记为 Linux 恶意软件,尽管它并非 Linux 二进制文件。
(按下回车或点击查看完整尺寸图片:12 个字符串被列入黑名单) Socket(套接字):套接字允许同一台或不同机器上的两个不同进程进行通信。 我们也可以使用 PEID 来识别加壳器。
什么是 PEID ? 为了检测加壳文件,我们可以使用 PEID。你可以使用 PEID 来检测用于构建应用程序的加壳器或编译器的类型。这不是 EXE 文件,但我们可以将其从 ELF 转换为 EXE,但由于该文件的魔数,转换可能不会成功,不过我们还是试试吧! 如你所见,这不会成功!
我将把 md5sum 放到 virustotal 上以检查恶意软件家族。 (按下回车或点击查看完整尺寸图片:访问 virustotal -> 输入 md5sum -> 社区)
该恶意软件的源代码
首先,我想知道这个恶意软件是否有源代码。据推测,这篇帖子帮助了我 → twitter.com/cyb3rops/st…
(按下回车或点击查看完整尺寸图片)
char sh[] 很有趣。
(按下回车或点击查看完整尺寸图片)
(按下回车或点击查看完整尺寸图片:看起来有一个 shell)
为了确认这一点,我们只需将十六进制代码复制到在线十六进制转换程序。
(按下回车或点击查看完整尺寸图片:太棒了)
我们将更深入地分析这个源代码。
有趣的是,我们有一个名为“getshell()”的函数,我将能够分析这个函数。 我们还有 rc4_ctx, crypt_ctx, decrypt_ctx。 RC4:也称为 Rivest Cipher 4,是一种流密码形式。它通过一种算法一次一个字节地加密消息。存在许多流密码,但 RC4 是最流行的之一。它应用简单,并且速度很快,即使对于非常大的数据也是如此。 (来源:www.okta.com/identity-10… (按下回车或点击查看完整尺寸图片)
如果我们能检测到“getshell()”这个函数以更好地理解它的作用,那将是非常棒的。 (按下回车或点击查看完整尺寸图片)
看起来C&C服务器可能选择了随机的临时端口。因为正如我上面提到的,“它可以监听一个或多个端口以接收来自一个或多个主机的传入数据包,攻击者可以利用这些数据包远程向被入侵的网络发送命令。”它并不用于特定端口。 (按下回车或点击查看完整尺寸图片)
tv[0].tv_sec = 1225394246 这个部分很有趣;二进制文件将自身复制到 /dev/shm/kdmtmpflush,这仅在 RAM 中,并且每次重启都会清除。
你听说过“epoch”吗?让我解释一下它是什么。这并非小事。
什么是 epoch? 在计算环境中,epoch 是计算机时钟和时间戳值所依据的参考日期和时间。传统上,epoch 对应于特定日期的协调世界时 (UTC) 0 时 0 分 0 秒 (00:00:00),具体日期因系统而异。 (来源:www.techtarget.com/searchdatac… —————————————————————————————— 让我们继续我们的研究。
如果我们理解了什么是“epoch”,我们将能够将这个 epoch 时间转换为人类可读的日期时间。 (按下回车或点击查看完整尺寸图片)
这段代码当然不是最高明的。:) 这可能是作者随机生成的。这款恶意软件在执行其任务时具有优势;这是最高明的,因为我们讨论过 Berkeley 包过滤器,而这应该能绕过 Linux/Unix 中的防火墙规则。
绕过本地防火墙
应用层防火墙实现了基本的基于规则的配置(非常基本)。在不显式使用它的情况下,它允许授权和监听服务与系统进行通信——以确保它在网络上是“隐藏的”。当涉及到绕过防火墙时,这个恶意软件会做得非常好。运行此恶意软件后,它会将 /dev/shm/ 重命名为 /dev/shm/kdmtmpflush,并且自身也会运行。
这是 Linux 中的目录 → (按下回车或点击查看完整尺寸图片)
运行此文件后,文件将自动删除。你始终可以检查进程 ID /proc/<PID> 并执行简单的 ls 命令来找到该恶意进程的真实 ID。你需要是 root 用户才能运行此恶意软件。
我在这个恶意软件进行恶意活动时,发现了一篇关于这一步的精彩文章。 链接 -> www.sandflysecurity.com/blog/bpfdoo…
让我们继续我们的研究。 (按下回车或点击查看完整尺寸图片)
看第 683 行的 system(),它执行 /sbin/iptables。 什么是 Iptable? Iptables 基本上是 Linux 中的防火墙。iptables 防火墙通过将网络流量与一组规则进行比较来工作。这些规则定义了数据包必须具有的特征才能匹配规则,以及对匹配数据包应采取的操作。Windows 没有像 Linux 那样的 iptables 等价物。 ———————————————————————————————————————————————————————————————————————————— 之后,它将睡眠 1 秒,当这个过程完成时,它将创建监听先前指定端口的套接字。 (按下回车或点击查看完整尺寸图片)
我们可以从这段源代码中读到,它从 /dev/shm 中删除所有目录和子目录,然后将字符串再次复制到 /dev/shm,我估计它会以 755 权限复制 /kdmtmpflush,并且在运行后,此文件将被永久删除或变得不可见。
(按下回车或点击查看完整尺寸图片)
BPFDoor 逃避检测的技术之一是使用上述选择将二进制文件重命名为看起来像正常的 Linux 守护进程。我忘了提; 黑客利用位于台湾的路由器作为 VPN 隧道,通过虚拟专用服务器 (VPS) 运行 BPFDoor。
此恶意软件利用 solaris 漏洞来获取 root 权限。 (按下回车或点击查看完整尺寸图片) 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 选手 | 逆向工程 (按下回车或点击查看完整尺寸图片) CSD0tFqvECLokhw9aBeRqojLf1fq1JERLOdY0q0SC4ANtT03VNUXVS8fXtKJZcF8j3sLQz6LuahI2oliZDQ7+K+eK6bSpBiqEdD1A68OBcU=