我如何确认这个 SSH 警告不是真正的中间人攻击?“警告:远程主机标识已更改!”

use*_*813 55 networking ssh

我是这种东西的新手,想排除中间人攻击。

我正在 LAN 内通过 SSH 从 Windows 10 PC 连接到 Raspberry Pi 4,我收到此消息。我是系统管理员,所以没有人可以检查。

我找到了很多关于如何解决这个问题的帖子,但我想知道在修复它之前我应该​​怎么做才能真正排除(或确认)攻击。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:0xgFiU5j9W2WgyurDOgORf+qeFQoHf0YE6G92KnrduY.
Please contact your system administrator.
Add correct host key in C:\\Users\\JamesAlesi/.ssh/known_hosts to get rid of this message.
Offending RSA key in C:\\Users\\JamesAlesi/.ssh/known_hosts:2
ECDSA host key for 192.168.1.123 has changed and you have requested strict checking.
Host key verification failed.
Run Code Online (Sandbox Code Playgroud)

Jör*_*tag 82

通常,您采用的方法始终相同:您通过攻击者不可能操纵的通道验证密钥的指纹。

例如,在我以前的大学里,你可以去计算中心前台拿一张传单,上面有所有重要钥匙和证书的指纹列表。如果是你认识的朋友的服务器,你可以打电话给他们,让他们给你读指纹。如果它是托管的托管服务器,一些更注重安全的托管服务提供商可能会提供将指纹邮寄给您。

要点是:IFF你有理由相信您的网络连接被攻破,那么尝试获取指纹,而不使用网络。

对于您的 Raspberry Pi,有几个非常简单的选项:

  • 只需将网络电缆从您的计算机直接连接到 Raspberry Pi。Boom:再也没有“中间人”可以发动中间人攻击了。
  • 从您的 PC 连接到 Pi 的串行控制台并直接登录到控制台。Boom:甚至没有网络了。
  • 将 USB 键盘和 HDMI 显示器插入 Pi 并直接登录控制台。
  • 取出 SD 卡(或 U 盘或任何启动介质),在您的 PC 上安装 ext2 文件系统(如果您不运行 Linux,您可能需要额外的软件,或者您可以启动到 Linux LiveCD) ,并检查中的密钥/etc/ssh/ssh_host_ecdsa_key

这回答了关于如何验证主机密钥的更具体的问题。现在回答你更普遍的问题:

我是这种东西的新手,想排除中间人攻击。

为了在您的 LAN 上发起中间人攻击,攻击者需要物理访问您的 LAN 基础设施。因此,如果您想排除中间人攻击,您可以从字面上跟踪您的电缆并寻找“中间人”,即您不认识的设备。虽然要小心:这样的设备可能很小而且隐藏得很好。

您还可以在您的门锁或您家的其他入口(窗户等)上寻找闯入的迹象。

现在,您可以进行合理性分析:更有可能的是,有人闯入您的家并在您没有​​注意到的情况下在您的 LAN 中安装了一个设备,只是为了看看您在用 Raspberry Pi 做什么?或者更可能是 192.168.1.123 之前分配给了不同的设备(或者您更新或重新安装或重新配置了您的 Pi)并且旧密钥仍然缓存在您的 PC 上?

如果我们谈论的是一个无线网络,虽然,那么MITM攻击并没有需要物理访问。因此,更有可能有人在您不注意的情况下发起此类攻击。然而,问题仍然存在:攻击者想通过嗅探你和你的树莓派之间的连接来做什么?

同样,如果您 LAN 上的任何设备也连接到不同的网络(WiFi、邻域网络、Internet),则该设备可能会通过网络受到攻击,从而使攻击者可以访问您的 LAN。

正如上面的评论中提到的,被入侵的 Raspberry Pi 是一件很有价值的事情,但任何有能力的攻击者都会知道以不改变主机密钥的方式来破坏它。

  • 但是,您并不总是需要物理访问。例如,OP 可能正在运行连接到互联网的易受攻击的网络路由器,或暴露的 Wi-fi 路由器,或者设备正在使用其他人的 Wi-fi 等。但是,首先要检查的是在 Pi 上重新安装或更改 IP 地址。 (21认同)
  • 您需要物理访问来安装 MitM 的唯一情况是在气隙 LAN 上。一旦网络连接到 Internet,攻击者就可以破坏 LAN 上的设备并使用它来劫持连接(重定向数据包以在交换机/路由器上进行处理、欺骗 ARP、运行自己的 DHCP 服务器等)。 (14认同)
  • “更有可能的是,有人闯入你的家并在你没有注意到的情况下在你的局域网中安装了一个设备,只是为了看看你在用你的树莓派做什么?” 或者有人闯入您的家并_偷了_您的 RPi、其他计算机、电视、珠宝和其他贵重物品。除非你是一个对破坏和输入资源和技术知识的人非常感兴趣的人,否则有人_极不可能_可能会在你的房子里安装物理设备来对你进行中间人。 (3认同)
  • ...也就是说,从学术的角度了解如何解决问题是好的。 (3认同)
  • *“...或您家的其他入口点(窗户等)”* 我明白您在那里做了什么。:-P 无论如何,这是一个很好的答案的主要例子,它既解决了 OP 的直接问题(合理性分析),也为将来发现这个问题的其他人提供了参考(通过另一个渠道验证指纹)。 (3认同)
  • “不再有“中间人”可以发动中间人攻击。” - NIC 驱动程序 :D(以及一如既往的 CPU 微码) (2认同)

gro*_*taj 19

当您第一次连接到任何主机时,SSH 会保存其标识信息。如果此标识将来发生更改,则会显示此消息。

这可能发生在例如重新安装目标系统之后,用另一个具有相同 IP/主机名的系统来替换它,或者在重新生成系统的服务器 SSH 密钥之后。如果这听起来像您最近所做的事情,那就是原因。

也可能是有人拦截了您的连接(并实际发送了他们的身份证明),但在 LAN 中不太可能。

  • OP 询问“我想知道在修复攻击之前我应该​​怎么做才能真正排除(或确认)攻击。”。我没有看到任何答案,你只是在解释为什么它可能会改变,但是不是问题。 (3认同)
  • @Calimo 但是,面对一个简单、直接的解释,奥卡姆剃刀刮掉了阴谋论。当然,邪恶先生本可以潜伏在您的网络中,直到您最终在 Pi 上重新安装 Linux,然后在您第一次按下 Enter 键进行连接时准确地安装了他的 MiM 攻击,就像 [Inidiana Jones 所做的那样避免被图书管理员发现](https://youtu.be/Txy5um9alv8)。 (3认同)
  • @Calimo 在一定程度上是这样。比如说,如果有人问“防止顶级政客在比萨店虐待儿童的最佳方法是什么”,你就不会深入研究监视和武器细节。当然,这里的这个问题并不是疯狂的,但它仍然植根于一种应该解决的误解。Joerg 的回答很好地解决了这个问题(与比萨店打样相反,为后代讨论 LAN 打样并没有什么害处)。 (3认同)

Dav*_*rtz 9

从您通常登录的机器登录 Raspberry Pi。注意钥匙。确认指纹正确。

如果您从未设置过从任何位置登录 Raspberry Pi 的任何安全方式,那么您就没有。下次,在设置机器时这样做。例如,在设置操作系统时从控制台拍摄密钥指纹的照片。

  • 我不确定这是否真的让事情变得更清楚。OP 过去显然已连接到此 IP/主机名。我假设这是他们通常用来登录的机器。 (5认同)
  • 在重新映像 Pi 后,他会收到此消息。 (4认同)