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

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

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

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

工具目录

分类

查看所有分类
Loading categories
SSH-Terrapin-Prefix-Truncation-Weakness-CVE-2023-48795-Checker — 轻量级 Python 扫描器,用于检测 CVE-2023-48795(SSH Terrapin 前缀截断漏洞)。通过被动横幅抓取和 KEXINIT 解析,检测易受攻击的密码/MAC 组合以及缺失的 strict-KEX 缓解措施。 | Kitploit
工具/GitHubGitHub/mr-whiskerss/ssh-terrapin-prefix-truncation-weakness-cve-2023-48795-checker
侦察漏洞扫描器漏洞利用信息收集网络安全渗透测试
GitHubmr-whiskerss/ssh-terrapin-prefix-truncation-weakness-cve-2023-48795-checker

SSH-Terrapin-Prefix-Truncation-Weakness-CVE-2023-48795-Checker

轻量级 Python 扫描器,用于检测 CVE-2023-48795(SSH Terrapin 前缀截断漏洞)。通过被动横幅抓取和 KEXINIT 解析,检测易受攻击的密码/MAC 组合以及缺失的 strict-KEX 缓解措施。

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
113个月前尚未审核

terrapin_check.py

一个用于检测 CVE-2023-48795 的轻量级 Python 扫描器——SSH Terrapin 前缀截断漏洞。

Terrapin 是 SSH 中的一个协议级漏洞,允许主动中间人(MitM)攻击者截断协商后的扩展信息,从而降低连接安全性——最严重的情况下会禁用 ext-info(用于服务器签名算法)和 ping(用于 OpenSSH 的 no-auth 扩展)。


📋 目录

  • 关于本漏洞
  • 工作原理
  • 环境要求
  • 安装
  • 使用方法
  • 输出
  • 存在漏洞的条件
  • 修复建议
  • 免责声明

关于本漏洞

字段详情
CVECVE-2023-48795
CVSS5.9(中危)
类型SSH 协议——前缀截断 / 完整性绕过
披露时间2023 年 12 月
影响范围OpenSSH < 9.6、PuTTY < 0.80、libssh < 0.10.6 及众多其他实现
参考资料terrapin-attack.com

该漏洞的存在是因为某些 SSH 加密算法/MAC 组合——特别是 chacha20-poly1305 以及使用 Encrypt-then-MAC 的 CBC 模式加密算法——允许主动 MitM 攻击者在握手期间注入和删除 SSH 序列号,从而在不被发现的情况下截断协商后的扩展数据。

修复方案引入了一个 strict KEX 扩展(kex-strict-*[email protected]),客户端和服务器都必须通告该扩展才能免受此漏洞影响。


工作原理

该脚本仅执行被动的横幅抓取和 KEXINIT 解析——不进行完整的 SSH 握手,不进行身份验证,也不进行漏洞利用:

  1. 打开到目标 SSH 端口的 TCP 连接
  2. 交换 SSH 标识横幅
  3. 接收并解析服务器的 SSH_MSG_KEXINIT 数据包
  4. 检查通告的算法名称列表是否存在易受攻击的组合
  5. 检查是否存在 strict-KEX 缓解扩展
  6. 关闭连接

由于检查完全发生在密钥交换阶段,因此它是非侵入性的,除了正常的 TCP 连接尝试外不会留下任何有意义的痕迹。


环境要求

  • Python 3.8+
  • 无第三方依赖——仅使用标准库(socket、struct、argparse、concurrent.futures)

安装

root@kitploit:~
git clone https://github.com/Mr-Whiskerss/terrapin_check
cd terrapin_check
chmod +x terrapin_check.py

使用方法

单台主机

root@kitploit:~
python3 terrapin_check.py <host> [port]
root@kitploit:~
python3 terrapin_check.py 192.168.1.10
python3 terrapin_check.py 192.168.1.10 2222

从文件批量扫描

每行一个目标——支持 host 或 host:port 格式。

root@kitploit:~
python3 terrapin_check.py -f targets.txt
python3 terrapin_check.py -f targets.txt --threads 20 --timeout 3

仅输出摘要(适用于大规模扫描)

root@kitploit:~
python3 terrapin_check.py -f targets.txt --summary

全部选项

root@kitploit:~
usage: terrapin_check.py [-h] [-f FILE] [-p PORT] [--threads THREADS] [--timeout TIMEOUT] [--summary] [host] [port]

positional arguments:
  host                  Target host
  port                  SSH port (default: 22)

options:
  -h, --help            Show this help message and exit
  -f, --file FILE       File containing hosts (host or host:port per line)
  -p, --port-flag PORT  Default port when using -f (default: 22)
  --threads THREADS     Concurrent threads for bulk scan (default: 10)
  --timeout TIMEOUT     Socket timeout in seconds (default: 5.0)
  --summary             Print one-line summary per host only

退出码

退出码含义
0未发现存在漏洞的主机
1检测到一个或多个存在漏洞的主机

这使脚本可以无缝地用于管道和自动化工作流中。


输出

单台主机(详细)

root@kitploit:~
────────────────────────────────────────────────────────────
  Target : 192.168.1.10:22
  Banner : SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6
  Status : VULNERABLE

  Strict-KEX : No
  ✗ ChaCha20-Poly1305 advertised → prefix-truncation possible
  ✗ CBC+ETM combination advertised
      CBC ciphers : aes128-cbc, aes256-cbc
      ETM MACs    : [email protected], [email protected]

  KEX algorithms:
    curve25519-sha256
    ecdh-sha2-nistp256
    diffie-hellman-group14-sha256
────────────────────────────────────────────────────────────

批量扫描(摘要)

root@kitploit:~
  [VULN]  192.168.1.10:22                  VULNERABLE (CVE-2023-48795)
  [SAFE]  192.168.1.20:22                  Not vulnerable
  [MIT]   192.168.1.30:22                  Algorithms present but strict-KEX mitigates
  [?]     192.168.1.99:22                  ERROR: Connection refused

存在漏洞的条件

如果满足以下任一条件,且服务器未通告 strict-KEX 扩展,脚本会将主机标记为 VULNERABLE(存在漏洞):

1. ChaCha20-Poly1305

服务器在任一加密方向上通告了 [email protected]。

2. CBC 加密算法 + ETM MAC 组合

服务器同时通告了任意 CBC 模式加密算法和任意 ETM MAC:

检查的 CBC 加密算法: aes128-cbc, aes192-cbc, aes256-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, idea-cbc, arcfour, arcfour128, arcfour256, [email protected]

检查的 ETM MAC: [email protected], [email protected], [email protected], [email protected] 及其变体

缓解措施——Strict KEX

如果服务器在其 KEX 算法列表中通告了 [email protected],则无论提供哪些加密算法和 MAC,连接都会受到保护。在这种情况下,脚本将报告 MITIGATED(已缓解)而非 VULNERABLE。


修复建议

操作详情
升级 OpenSSH在客户端和服务端均升级至 。Strict KEX 默认启用。
root@kitploit:~
# /etc/ssh/sshd_config
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
MACs hmac-sha2-256,hmac-sha2-512

移除算法会降低加密套件的灵活性。升级始终是首选的修复方式。


免责声明

本工具仅供已获授权的安全评估使用。请仅针对您拥有或已获得明确书面许可的系统进行测试。作者对滥用行为不承担任何责任。


属于 Mr-Whiskerss 渗透测试工具包的一部分。

下载工具
≥ 9.6
修补其他实现PuTTY ≥ 0.80、libssh ≥ 0.10.6、Paramiko ≥ 3.4.0、AsyncSSH ≥ 2.14.2
移除易受攻击的算法如果无法立即升级,请从 sshd_config 中移除 chacha20-poly1305、CBC 加密算法及 ETM MAC: