黑客技术
点击放大

Exploration of the xz backdoor (C).
Includes the following:
* honeypot: fake 服务端 to detect exploit attempts
* ed448 patch: patch liblzma.so to use our own ED448 public key
* backdoor format: format of the backdoor payload
* backdoor demo: cli to trigger the RCE assuming knowledge of the ED448 private key
!xzbot demo
See openssh.patch for a simple patch to openssh that logs any
connection attempt with a public key N matching the backdoor format.
Any connection attempt will appear as follows in sshd logs:
The backdoor uses a hardcoded ED448 public key for signature and
decrypting the payload. If we replace this key with our own, we can trigger
the backdoor.
The attacker's ED448 key is:
We will replace this key with our own (generated with seed=0):
To start, download a backdoored libxzma shared object, e.g.
from
Then run the patch script. See assets/ for examples.
Then run sshd using this modified liblzma.so.5.6.1.patch shared object.
The backdoor can be triggered by connecting with an SSH certificate with a
payload in the CA signing key N value. This payload must be encrypted and
signed with the attacker's ED448 key.
The structure has the following format:
A request type is derived from the three above (a * b + c).
If this value is greater than 3, the backdoor skips processing.
* Type 1: unknown, expects zero bytes
* Type 2: executes null-terminated payload with system()
* Type 3: unknown, expects 48 bytes (signed)
The ciphertext is encrypted with chacha20 using the first 32 bytes of the
ED448 public key as a symmetric key. As a result, we can decrypt any
exploit attempt using the following key:
The ciphertext has the following format:
Setting either x or y leads to slightly different code paths.
The signature is an RFC-8032 ED448 signature computed over the following :
* The 32-bit magic value (e.g. 02 00 00 00)
* The 5 bytes of fields before command
* [optional] length bytes of the command
* The first 32 bytes of the sha256 hash of the 服务端's hostkey
The following will connect to a SSH 服务端 at 127.0.0.1:2222 and
run the command id > /tmp/.xz:
On the 服务端, we can set a watchpoint for the call to system()
and observe the command is executed:
The process tree after exploitation looks different from a normal sshd
process tree:
*Note: successful exploitation does not generate any INFO or higher log entries.*
开发语言:Go
Star 数:3550
该项目属于黑客技术方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕notes, honeypot, and exploit demo for the xz backdoor (C)展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | xzbot - notes, honeypot, and exploit demo for the xz backd |
| 所属分类 | 黑客技术 |
| 发布作者 | admin |
| 发布时间 | 2026-10-05 22:09:19 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 484 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |