为什么端口扫描时最好使用端口 20 和 53 作为源端口?

信息安全 dns 港口 ftp 敲门
2021-08-31 05:32:24

我读到如果服务器位于无状态防火墙后面的 DMZ 内,那么在进行端口扫描时使用端口 20 和 53 作为源端口是个好主意。为什么这是个好主意?我猜防火墙很可能不会过滤 FTP 和 DNS 数据?

1个回答

你猜对了。

根据Nmap 参考指南

--source-port <portnumber>; -g <portnumber> (欺骗源端口号)

一种令人惊讶的常见错误配置是仅基于源端口号信任流量。很容易理解这是如何发生的。管理员将设置一个闪亮的新防火墙,但只会收到来自应用程序停止工作的忘恩负义用户的抱怨。特别是,DNS 可能会被破坏,因为来自外部服务器的 UDP DNS 回复无法再进入网络。FTP 是另一个常见的例子。在活动的 FTP 传输中,远程服务器尝试与客户端建立连接以传输请求的文件。

存在针对这些问题的安全解决方案,通常以应用程序级代理或协议解析防火墙模块的形式出现。不幸的是,还有一些更简单、不安全的解决方案。注意到 DNS 回复来自端口 53 和活动 FTP 来自端口 20,许多管理员陷入了简单地允许来自这些端口的传入流量的陷阱。他们通常假设没有攻击者会注意到并利用此类防火墙漏洞。在其他情况下,管理员认为这是一种短期的权宜之计,直到他们能够实施更安全的解决方案。然后他们忘记了安全升级。

过度劳累的网络管理员并不是唯一落入这个陷阱的人。许多产品都带有这些不安全的规则。甚至微软也有罪。Windows 2000 和 Windows XP 附带的 IPsec 过滤器包含一个隐式规则,该规则允许来自端口 88 (Kerberos) 的所有 TCP 或 UDP 流量。在另一个众所周知的案例中,Zone Alarm 个人防火墙版本高达 2.1.25 允许任何具有源端口 53 (DNS) 或 67 (DHCP) 的传入 UDP 数据包。

Seclists.org 中的 2005 年回答提供了参考指南先前版本的引用:

--source_port <portnumber>

设置扫描中使用的源端口号。 许多幼稚的防火墙和数据包过滤器安装在其规则集中例外,以允许 DNS (53) 或 FTP-DATA (20) 数据包通过并建立连接。 显然,这完全颠覆了防火墙的安全优势,因为入侵者可以通过修改源端口来伪装成 FTP 或 DNS。显然,对于 UDP 扫描,您应该首先尝试 53,而 TCP 扫描应该在 53 之前尝试 20。请注意,这只是一个请求——nmap 只有在能够做到的时候才会接受它。例如,您不能从一个主机:端口到一个主机:端口进行 TCP ISN 采样,因此即使您使用此选项,nmap 也会更改源端口。这是较短但更难记住的-g选项的别名。