我正在阅读 FTP rfc,因此有这个想法。
假设有几台公共 ftp 服务器允许匿名用户登录。我在端口 21 上打开到每台服务器的控制连接。
现在假设 example.com 上有一个 Web 服务器,其 IP 地址为 xyzw,正在监听端口 80。FTP 允许用户指定要在其上设置数据连接的主机。因此,用户指定 example.com Web 服务器的主机和端口号。现在,FTP 服务器开始向 example.com 发送数据,但这不是有效的 HTTP 请求,因此被拒绝。但 example.com 注意到无效的 http 请求来自公共 FTP 服务器,而不是我的 IP 地址。这是否会导致利用所有公共 FTP 服务器进行分布式攻击?
更糟糕的是,ftp 服务器发送的数据可能是一个有效的 http 请求,这可能会触发 example.com 将文件发送回 ftp 服务器。
有办法解决这个问题吗?或者这根本就不是问题?
答案1
这不是一个问题,因为目标 Web 服务器将拒绝来自您的 ftp 傀儡的传输。即使传输的数据是有效的 http 请求,协议握手也不会匹配,连接将被关闭。因此,您的初始 ftp 请求将给您的原始机器带来比您的目标在流量中接收的更多开销。
可能还会有分散式漏洞就在这里。如果你运行僵尸网络,你可以使用僵尸网络中的 PC 来执行攻击。每个成员仍然会使用比其创建的带宽更多的带宽,但事实并非如此你的带宽,所以没关系。这给你带来的好处是,它有助于保护你捕获的僵尸电脑不被发现;这可能是掩盖僵尸藏身之处的一种方法。幸运的是,我预计这一额外的间接层带来的麻烦比它的价值要多。
这种攻击也相对容易防御。世界上可以使用的潜在匿名公共 FTP 服务器数量有限且固定。这些服务器通常不用于正常的 http 流量。因此,作为一名优秀的网络管理员,如果您发现自己是此类攻击的目标,您可以在路由器上通过 IP 阻止这些机器,在请求到达您的 Web 服务器之前。在传统的分布式攻击中,这将是糟糕的,因为您还会切断大量合法流量。但在这种情况下,参与攻击的 IP 地址中很少有会向您发送合法流量,因此阻止它们是安全的。
答案2
我认为 FTP 服务器不会允许您的 PC 选择端口 80 来传输数据。您很可能只会收到错误或断开连接。