返回更新列表
新发布Sep 11, 2026

ssh-mitm v6.0.0

SSH-MITM - SSH 审计变得简单

分享

SSH-MITM - ssh 审计变得简单

SSH-MITM intercepting password login

一款用于授权安全审计的交互式 SSH 拦截工具。
拦截会话、监控实时流量、注入命令,并操控文件传输——全部实时完成。

Download as an AppImage     Download on Flathub     Get it from the Snap Store

OpenSSF Best Practices Code style: black CodeFactor Documentation Status PRs Welcome GitHub Follow me on GitHub

法律声明: SSH-MITM 仅用于授权的安全审计、渗透测试和研究。 请勿将其用于您不拥有或未经明确书面许可进行测试的系统。 未经授权拦截 SSH 流量在您所在的司法管辖区可能属于违法行为。


🎓 SSH-MITM 新手?从交互式教程开始

ssh-mitm tutorial

打开一个基于浏览器的分步指南——无需目标服务器。 五个章节模拟对 Logfile Inc. 的授权评估,涵盖 密码拦截、公钥认证、SFTP 传输、命令执行 以及实时会话镜像。

SSH-MITM interactive tutorial


快速开始

将 SSH-MITM 置于客户端与其 SSH 服务器之间,即可拦截连接—— 独立终止两端并转发所有流量,同时让审计人员获得完全的可见性和控制权:

SSH-MITM setup

1. 安装

SSH-MITM 无需安装。下载 AppImage 即可直接使用:

wget https://github.com/ssh-mitm/ssh-mitm/releases/latest/download/ssh-mitm-x86_64.AppImage
chmod +x ssh-mitm-x86_64.AppImage

其他安装方式(pip、Flatpak、Snap)请参阅安装指南

⚡ 获取最新版本

PyPI 上的版本可能滞后。直接从 GitHub 安装,即可获得交互式教程和所有最新改进:

pip install git+https://github.com/ssh-mitm/ssh-mitm.git

2. 启动 SSH-MITM

将 SSH-MITM 指向您的目标主机——请使用您已获授权测试的系统:

./ssh-mitm-x86_64.AppImage server --remote-host <target-host>

3. 路由客户端连接

让 SSH 客户端通过 SSH-MITM 的 10022 端口进行连接:

ssh -p 10022 user@mitm-host

SSH-MITM 拦截会话并立即记录凭据:

INFO     Remote authentication succeeded
    Remote Address: <target-host>:22
    Username: alice
    Password: secret
    Agent: no agent

SSH-MITM intercepting credentials

4. 附加到实时会话

对于每个被拦截的连接,SSH-MITM 都会在本地端口上打开一个镜像 shell:

INFO     ℹ created mirrorshell on port 34463. connect with: ssh -p 34463 127.0.0.1

从另一个终端连接到它:

ssh -p 34463 127.0.0.1

镜像 shell 会实时反映会话内容。审计人员可以观察用户的活动 并独立注入命令,而不会影响原始连接。

SSH-MITM 能做什么

功能描述
交互式会话监控通过镜像 shell 附加到任何被拦截的会话——实时观察并注入命令
文件传输操控拦截 SCP/SFTP 传输,存储副本,或即时替换文件
端口转发拦截拦截 TCP 隧道和动态 SOCKS 4/5 转发
FIDO2 令牌钓鱼通过 trivial auth 攻击拦截硬件令牌认证(OpenSSH 信息
认证拦截捕获密码;接受与目标服务器相同的公钥,并自动回退到密码认证
MOSH 会话监控拦截并解密 MOSH(Mobile Shell)UDP 会话;通过内置 VT100/ANSI 模拟器查看实时终端
PowerShell 远程处理(PSRP)拦截通过 SSH 的 PowerShell 远程处理会话;记录命令、输出、错误和状态转换;写入每会话记录
客户端审计仅凭密钥协商行为即可识别连接 SSH 客户端中的已知漏洞
插件支持通过插件扩展和自定义所有拦截行为

使用场景

  • 渗透测试 — 在授权项目中主动审计 SSH 客户端和服务器;拦截、操控和重放会话
  • 安全研究 — 交互式分析 SSH 客户端行为、认证流程和协议级弱点
  • 培训环境 — 在受控实验室设置中演示 MITM 技术和会话劫持
  • 恶意软件分析 — 在隔离环境中监控并交互来自可疑客户端的 SSH 会话

安全研究

SSH-MITM 最初是为了研究 SSH 客户端处理 硬件令牌认证时的一个根本性弱点而开发的。研究发现,FIDO2 令牌——通常用作第二 因素——可以通过一种称为 trivial authentication 的技术被钓鱼。

该攻击利用了 SSH 客户端可能被强制使用一种 trivial 认证方法的事实—— 例如无提示的 keyboard-interactive——这实际上无需任何真实 认证即可授予访问权限。这完全绕过了硬件令牌保护,因为令牌从未被 挑战。SSH-MITM 可以针对任何未明确拒绝该方法的客户端模拟此攻击:

ssh-mitm server --enable-trivial-auth

从中间人位置进行操作,可以观察到从任一端点都无法看到的 SSH 客户端行为。 SSH-MITM 已被用于发现广泛部署的 SSH 软件中的 7 个此前未知的 漏洞

CVE-2026-60000 CVE-2022-38337 CVE-2022-38336 CVE-2021-36370 CVE-2021-36369 CVE-2021-36368 CVE-2021-36367

最新:CVE-2026-60000 — OpenSSH 的 GSSAPI 认证违反了 RFC 4462,使得攻击者可以完全绕过 MaxAuthTries,导致预认证拒绝服务。同一根本原因还产生了用户名有效性预言机和特权进程崩溃,这些问题均在 OpenSSH 10.4 中修复。

DeepSec 2021 演讲——攻击的完整说明:
点击在 vimeo.com 上观看
Click to view video on vimeo.com

下载演示文稿幻灯片

并非这项研究的每个结果都是漏洞——请参阅 上游贡献 了解直接贡献给 OpenSSH 的加固修复。

(返回顶部)

贡献

欢迎贡献!请阅读 CONTRIBUTING.md 了解开发环境设置、代码风格以及如何提交拉取请求。

(返回顶部)

联系方式

(返回顶部)

贡献者

分类