服务器端中间人/窃听:使用未加密 HTTP 的两台服务器之间的攻击

信息安全 http 网络服务器 中间人 dns 欺骗 嗅探
2021-08-15 06:06:37

我是安全新手,我想知道网络服务器之间的中间人和窃听攻击是如何工作的,而不是个人设备和服务器之间的。

我在这里看到的大多数关于中间人攻击的问题似乎都涉及个人 Web 浏览器通过不安全的 Internet 连接与服务器通信。如果他们在公共 wi-fi 上使用未加密的 HTTP,那么就很容易从他们在同一网络上广播的数据包中拦截和读取他们的通信,如Firesheep所示。

但是,攻击者将如何对通过未加密 HTTP 进行通信的两个公共 Internet 服务器之间的连接进行攻击呢?

我知道,如果 HTTP 消息没有加密,就会发生中间人攻击和窃听攻击。但我想知道这种攻击的实际风险、可行性和实用性。

假设有两台服务器,A 和 B。
服务器 A 是一个 VPS 或其他东西,来自 Rackspace 或 Linode,在您的控制之下。
服务器 B 是另一个组织的公共 Web 服务器,不受您的控制。
服务器 B 不支持 HTTPS;它需要 HTTP 和会话 cookie。
服务器 A 需要在服务器 B 的网站上间歇性地连接到服务器 B:登录、做事、注销。
服务器 A 的 IP 地址可能是公开的,也可能不是公开的——无论如何它都会暴露给服务器 B。服务器 B 的 IP 地址是公开的。

如果攻击者拥有个人资源,他们将如何窃听或拦截此连接?这不像 VPS 使用个人可以连接的公共本地网络。

我能想到的最重要的事情是,攻击者可能会对托管服务器 A 的 VPS 公司的 DNS 服务器发起 DNS 欺骗攻击。所以你必须相信 VPS 公司的 DNS 服务器不会受到损害,对?这是否需要递归到组织外部的服务器,一直到根服务器?攻击者需要什么样的资源来攻击这些服务器?

有没有其他方法可以在这两台服务器之间发生中间人或窃听攻击?这些还需要什么资源?

除了 wi-fi 拦截之外,还有一些关于中间人攻击技术的问题——尽管它们比这个问题更广泛,特别是关于两个托管服务器之间的未加密 HTTP。这些其他问题包括:

2个回答

我以前见过,并且在 DefCon 演讲中谈到过,人们将在示例中的 VPS 之类的东西上设置代理,并捕获用户和通过代理的服务器之间的流量。如果他们愿意,他们还可以选择注入 JavaScript 或向您返回虚假数据。

要让攻击者嗅探到 Web 服务器的所有流量,他们至少需要远程访问它,或者它所在的网络。他们还需要能够将收集到的数据传输给自己。我听说黑客通常使用 VPS 来隐藏他们的身份,只要他们侵入 Web 服务器并尝试执行此类攻击。这可能是你从中得到的。

至于需要的资源;像wireshark这样的数据包嗅探器可以工作。此外,还需要对 Web 服务器上的漏洞进行利用。

作为攻击者,如果存在允许我访问服务器 A 的漏洞(如果攻击者可以在服务器上获得受限 shell,则始终假设攻击者可以获得 root 访问权限),那么我将能够嗅探网络流量从服务器 A 到服务器 B,例如使用 tcpdump。通过 HTTP 发送的任何内容都是明文。