Real-Fruit-Snacks/Depth

GitHub: Real-Fruit-Snacks/Depth

纯 x86_64 NASM 汇编实现的完整 SSH-2.0 协议栈,提供轻量级、无依赖的安全传输通道。

Stars: 0 | Forks: 0

Depth ![Assembly](https://img.shields.io/badge/language-Assembly-6E4C13.svg) ![Platform](https://img.shields.io/badge/platform-Linux%20x86__64-lightgrey) ![License](https://img.shields.io/badge/license-MIT-blue.svg) **纯 x86_64 NASM 汇编实现的完整 SSH-2.0 协议。** ~94 KB 静态 ELF 二进制文件。密钥交换 (X25519)、主机身份验证 (Ed25519)、加密传输 (ChaCha20-Poly1305)、交互式 shell (PTY)、SFTP、端口转发。无 libc,无依赖。
## 快速开始 **前置条件:** NASM、GNU ld、GCC ``` git clone https://github.com/Real-Fruit-Snacks/Depth.git cd Depth make ``` **验证:** ``` file build/depth # ELF 64-bit LSB executable, x86-64, statically linked ./build/depth # bind mode, port 7777 ssh -p 7777 svc@target # connect with OpenSSH ``` ## 功能 ### ChaCha20-Poly1305 AEAD 完整的 `chacha20-poly1305@openssh.com` 传输加密。双密钥方案:K1 加密载荷,K2 加密数据包长度。序列号 nonce。每个数据包都经过身份验证。 ### Ed25519 + X25519 从零实现的完整椭圆曲线密码学。X25519 Diffie-Hellman 密钥交换,Ed25519 主机密钥签名。SHA-512 内部实现,SHA-256 交换哈希。所有域运算均为纯汇编实现。 ### 完整 SSH 协议栈 符合 RFC 4253/4254:版本交换、算法协商 (KEXINIT)、ECDH 密钥交换、NEWKEYS、服务请求、密码认证、通道复用(最多 8 个并发)、PTY 分配、shell/exec 请求、窗口管理。 ### 交互式 Shell (PTY) 通过 `/dev/ptmx` 实现完整的伪终端支持。Fork、setsid、设置控制终端、dup2 标准输入输出、execve `/bin/bash`。基于 poll 的 I/O 中继在 PTY 主设备和 SSH 通道之间传递,并管理子进程生命周期。 ### SFTP SFTPv3 实现:open、read、write、close、stat、fstat、lstat、setstat、opendir、readdir、remove、mkdir、rmdir、rename、realpath。通过事件循环集成实现并发 shell + SFTP 会话。 ### 端口转发 本地 (`ssh -L`) 和远程 (`ssh -R`) TCP 转发。本地转发使用 direct-tcpip 通道,远程转发使用全局请求处理。与 shell/SFTP 通道复用。 ## 架构 ``` Depth/ ├── Makefile # Build targets for binary + 22 test harnesses ├── src/ │ ├── main.asm # Entry point: bind/reverse mode dispatch │ ├── ssh_transport.asm # Version exchange, KEXINIT, ECDH, key derivation │ ├── ssh_auth.asm # Password + pubkey authentication │ ├── ssh_channel.asm # Channel multiplexing, window management │ ├── ssh_client.asm # v2 event loop: poll, dispatch, PTY/pipe relay │ ├── ssh_pty.asm # PTY allocation, shell/exec spawn │ ├── ssh_sftp.asm # SFTPv3 dispatch: 16 opcodes │ ├── ssh_forward.asm # Local port forwarding (direct-tcpip) │ ├── ssh_remote_forward.asm # Remote port forwarding (tcpip-forward) │ ├── ssh_encode.asm # SSH wire encoding: mpint, string, uint32 │ ├── ssh_aead.asm # ChaCha20-Poly1305 AEAD │ ├── sha256.asm # SHA-256 (FIPS 180-4) │ ├── sha512.asm # SHA-512 (for Ed25519) │ ├── curve25519.asm # X25519 scalar multiplication │ ├── ed25519.asm # Ed25519 sign + verify │ ├── hmac_sha256.asm # HMAC-SHA256 │ ├── hkdf.asm # HKDF extract + expand │ ├── net.asm # TCP socket operations │ ├── io_dispatch.asm # Function pointer I/O abstraction │ ├── tls13.asm # TLS 1.3 handshake + record I/O │ └── sc_reduce_c.c # Ed25519 scalar reduction (C helper) ├── include/ │ ├── ssh.inc # SSH constants, channel struct, SFTP types │ ├── syscall.inc # Linux syscall numbers │ ├── config.inc # IP, port, credentials, mode settings │ └── *.inc # AEAD, ChaCha20, Poly1305, TLS constants └── tests/ # 25 NASM harnesses + 28 Python test runners ``` ## 平台 仅限 Linux x86_64。~94 KB 静态链接 ELF 二进制文件。使用原始 `syscall` 指令和 NASM 特定语法。无 libc,无动态链接,无运行时依赖。不可移植到其他架构或操作系统。 ## 安全 通过 [GitHub 安全公告](https://github.com/Real-Fruit-Snacks/Depth/security/advisories) 报告漏洞。90 天负责任披露。 **Depth 不是** C2 框架、漏洞扫描器、漏洞利用框架或反取证工具。它是用于授权安全测试的 SSH 协议实现。 ## 许可证 [MIT](LICENSE) — Copyright 2026 Real-Fruit-Snacks
标签:AEAD加密, ChaCha20-Poly1305, CVE, Ed25519, NASM汇编, PTY, RFC 4253, RFC 4254, SHA-256, SHA-512, SSH, SSH-2.0协议, SSH服务器, X25519, x86_64汇编, 密码学, 密钥交换, 手动系统调用, 数字签名, 无依赖, 椭圆曲线密码学, 端口转发, 纯汇编实现, 网络安全, 通道复用, 隐私保护, 静态ELF