对家庭路由器的 NAT 存在什么样的攻击?

信息安全 网络 攻击 攻击预防 防火墙 开发
2021-09-07 07:08:34

我一直认为 NAT 是某种安全功能,我仍然认为它是,因为如果它不存在互联网,分别是 NAT 背后的客户端,将更加不安全,因为例如端口 445 将直接开放给每个人都在扫描客户端等。

但似乎有一些攻击,其中攻击者只需要知道 WAN IP 地址。

哪个?

4个回答

这里已经有一些很好的安全问题列表。但是我还没有看到有人提到NAT Pinning

从 Samy Kamkar 的网站引述 NAT pinning 如何工作:

  1. 攻击者通过说服受害者页面上有可爱小猫的图片来引诱受害者访问 URL。
  2. 受害者点击 URL 并打开页面。
  3. 该页面有一个连接到http://attacker.com:6667(IRC端口)的隐藏表单。
  4. 客户(受害者)在不知情的情况下提交表单。一个 HTTP 连接被创建到(假的)IRC 服务器。
  5. 由攻击者运行的假 IRC 服务器只是听,不像我以前的女朋友所说的那样。
  6. 该表单还有一个隐藏值发送:“PRIVMSG samy :\1DCC CHAT samy [ip in decimal] [port]\1\n”
  7. 您的路由器帮您一个忙,看到“IRC 连接”(即使您的客户端正在使用 HTTP)并尝试“DCC 聊天”。DCC 聊天需要在客户端上打开一个本地端口,以便远程聊天重新连接到您。
  8. 由于路由器阻止了所有入站连接,它决定将任何流量转发给“DCC 聊天”中的端口,以允许友好的攻击者通过 NAT 遍历连接并与您“聊天”。但是,攻击者将端口指定为例如端口 21 (FTP)。路由器端口将 21 转发回受害者的内部系统。攻击者现在有一条清晰的路线可以连接到受害者的 21 端口并发起攻击,下载受害者高度机密的可爱小猫图片。

假设您的家庭路由器被配置为拒绝所有入站连接,那么获得对 LAN 的远程访问的最简单的攻击就是利用 LAN 本身。

  1. 开放 WiFi:如果 LAN 可以通过不安全的 WiFi 访问,并且路由器有默认密码,那么登录路由器并启用一些入站端口是很简单的。显然需要物理上的接近。

    • 或者,如果您有(恶意)访问者可以用来进入您的 LAN 的 RJ-45,那么您也有同样的漏洞。
    • 或者,如果您让访问者使用您的计算机。
  2. “通过 pharming 驱动” ——诱使 LAN 上的用户运行登录路由器的代码(java 小程序)(再次假设默认密码或易于破解的密码)并启用一些入站端口。

  3. 如果攻击者可以 MITM 您的 Web 连接,他可以在您上网时修改页面,以注入 #2 中列出的 pharming 攻击以打开路由器上的端口。

  4. 对于某些易受攻击的路由器:即使您配置了安全的管理员密码,攻击者也可以在访问您的 LAN 时使用创造性的主机名来毒害您的 DNS 缓存或可能将 XSS 注入路由器的管理界面。

  5. 同样,对于某些易受攻击的路由器:通过访问您的 LAN,攻击者可能能够嗅探您的身份验证会话以获取路由器密码。

  6. CSRF 攻击:您访问了一个恶意网页,该网页尝试对您的路由器的管理区域进行 CSRF。(对于某些设置了默认密码的易受攻击的路由器,或者如果您已经在该浏览器会话中通过路由器的身份验证。)

  7. CSRF 结合身份验证绕过漏洞。一些路由器在处理未经身份验证的请求的 Web 管理界面中存在错误。

有关上述列表中的一些攻击的详细信息,请参阅本文网络存档)。

对路由器的 NAT 的攻击可能会导致 DoS,但不会导致对 LAN 的远程访问。我没有列出任何这些。

家庭路由器上的 NAT 通常允许用户从 LAN 发起的所有出站连接。NAT 通常与 UPnP 配对,以允许用户/主机/服务根据需要打开所需的出站端口。

通常,对发起出站连接没有任何限制,以使连接尽可能方便用户。

如果您考虑家庭路由器部署常见的以下因素:

  • 缺乏监控
  • 不良或默认配置(默认密码)
  • 用户(即使是技术用户也会点击
  • LAN 上主机的安全性差(A/V、补丁)

利用 NAT 在家庭路由器上的工作方式的攻击,而不是对 NAT 本身的直接攻击,只是针对 LAN 上的用户的(鱼叉式)网络钓鱼攻击。

示例:用户可能单击打包的 PDF,然后执行代码调用 home,将能够发起一个出站连接,允许攻击者根据需要利用反向通道进一步利用 LAN 主机。

注意:这来自我对运行默认固件的家用路由器(Billion、Linksys)的经验。如果家庭用户部署运行自定义固件的 Cisco 877 或 Linksys,则可以应用额外的安全控制。

如果您只使用 NAT,那么它根本不会提供太多安全性。

例如,如果您的服务器在端口 445 上运行,并且它经过 NAT 连接到 Internet,攻击者甚至不需要知道它经过 NAT - NAT 将允许他们连接到它任何 IP 和端口都显示到 Internet。

这甚至不能算作对 NAT 的攻击 - NAT 在这里无关紧要。

为您提供安全性的部分是路由器的访问控制/防火墙功能。这将阻止 Internet 上的攻击者扫描您的客户端。

编辑- 有人指出,家庭路由器 NAT'ing 默认情况下确实提供单向 NAT,这实际上为您提供了像防火墙一样的拒绝所有访问控制规则。

建议:

  • 使用 NAT 允许多台计算机访问 Internet,但不要以为它提供了安全性
  • 为了安全起见,确保您的路由器/防火墙拒绝所有入站连接,除了您绝对需要的连接和响应出站请求的连接