
ssh-mitm v6.0.0
SSH-MITM - SSH 审计变得简单
SSH-MITM - ssh 审计变得简单
一款用于授权安全审计的交互式 SSH 拦截工具。
拦截会话、监控实时流量、注入命令,并操控文件传输——全部实时完成。
法律声明: SSH-MITM 仅用于授权的安全审计、渗透测试和研究。 请勿将其用于您不拥有或未经明确书面许可进行测试的系统。 未经授权拦截 SSH 流量在您所在的司法管辖区可能属于违法行为。
🎓 SSH-MITM 新手?从交互式教程开始
ssh-mitm tutorial
打开一个基于浏览器的分步指南——无需目标服务器。 五个章节模拟对 Logfile Inc. 的授权评估,涵盖 密码拦截、公钥认证、SFTP 传输、命令执行 以及实时会话镜像。
快速开始
将 SSH-MITM 置于客户端与其 SSH 服务器之间,即可拦截连接—— 独立终止两端并转发所有流量,同时让审计人员获得完全的可见性和控制权:
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
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 — OpenSSH 的 GSSAPI 认证违反了 RFC 4462,使得攻击者可以完全绕过
MaxAuthTries,导致预认证拒绝服务。同一根本原因还产生了用户名有效性预言机和特权进程崩溃,这些问题均在 OpenSSH 10.4 中修复。
DeepSec 2021 演讲——攻击的完整说明:
点击在 vimeo.com 上观看
并非这项研究的每个结果都是漏洞——请参阅 上游贡献 了解直接贡献给 OpenSSH 的加固修复。
(返回顶部)
贡献
欢迎贡献!请阅读 CONTRIBUTING.md 了解开发环境设置、代码风格以及如何提交拉取请求。
(返回顶部)
联系方式
- 电子邮件:[email protected]
- 问题跟踪器
(返回顶部)

