这个基于 HTML5 的“大规模路由器感染”方案是如何工作的?

信息安全 网络
2021-09-07 09:52:18

我读了这篇文章,说纯粹通过一个网站,“没有任何用户交互”的大规模路由器感染是(/曾经?)可能的。我不确定这个问题是否仍然存在,因为它是 3 年前发布的,但我仍然很好奇。

文章指出:

攻击者如何“拥有”路由器?首先,必须诱使受害者访问恶意网站,然后将带有指令的 JavaScript 推送到浏览器,以告知浏览器所有本地连接的设备。其次,在了解网络并找到目标设备后,恶意网站将需要对该设备发起暴力攻击和神圣登录凭据。然后,在获得对设备的访问权限后,网站可以发送恶意固件,指示浏览器将其安装在目标设备上。

我得到了关于 HTML5 发布 IP 地址的部分,这些 IP 地址允许黑客查看网络上的设备,但从那里我不明白黑客是如何远程侵入和控制设备的。

我没有意识到我可以完全通过我的家庭网络来控制我自己的计算机,而无需利用像 TeamViewer 或 LogMeIn 这样的应用程序。黑客如何通过知道我的 IP 地址来尝试输入我的密码?

有人可以解释一下这比文章更清楚的工作方式吗?

2个回答

这些类型的攻击可以通过对通过 JavaScript 侦察工具发现的 IP 地址进行多次CSRF攻击来实现。

假设您的本地 IP 地址是192.168.1.100. 您访问恶意网站,JavaScript 运行并192.168.1.254在您的网络上找到该设备。现在,根据 JavaScript 的复杂程度,它要么识别路由器的品牌和型号,要么尝试暴力攻击以利用路由器。也就是说,它将在设备上发送其数据库中的每个漏洞,以尝试破坏它。

假设 BOB 2000 路由器存在一个漏洞,即其 URL/config/remoteConfigSettings没有实施任何类型的身份验证检查。由于此页面只能从您的本地网络访问,因此它通常不易受到基于 Internet 的攻击。

但是,当您网络上的某个人访问了恶意站点后,这可能会尝试对其数据库中的每一次攻击,以尝试利用路由器192.168.1.254,包括从浏览器发送带有消息正文的 POST 请求:

AllowInternetAccess=true&RequirePassword=false

http://192.168.1.254/config/remoteConfigSettings.

由于此页面易受攻击,该请求会导致路由器的 WAN 端可用于远程管理并禁用密码验证。恶意网站可以向攻击者报告发现了一个设备以及互联网 IP,以便攻击者稍后手动登录,或者在授予远程访问权限后更有可能添加到 IP 列表以进行自动利用。远程利用可能包括从更改 DNS 设置到攻击者控制的服务器以进行未来 MITM 攻击,再到路由器本身的恶意固件更新。

除了检查已知漏洞外,恶意脚本还可以尝试常规路由器请求,但使用默认或常用凭据进行身份验证。

更新

关于@Ajedi32 关于同源策略的评论- 扫描仪不需要路由器处于同源即可对其进行指纹识别。它使用 IFrame 和图像标签的组合来确定是否加载了某些内容和内容,然后将这些内容与已知的默认 IP 进行匹配。来自作者的网站

扫描器访问 IFrame 以对已知的默认路由器 IP 执行网络通用扫描,一旦建立连接,它就会传递 IP 地址并根据该地址执行路由器/设备的查找。我决定这样做的原因是因为我希望扫描仪能够抓取尽可能多的设备,因为不可能对所有内容进行指纹识别。

一旦找到 IP 地址,它就会将其传递给指纹功能,该功能使用图像对象与设备建立连接,以查看指纹图形是否存在。

通过 DNS 重新绑定

链接文章中未讨论的另一种可能性是DNS 重新绑定攻击192.168.1.254假设一旦受害者访问过,IFrame 技巧就会检测到正在运行的东西evil.example.com攻击者的检测脚本然后运行一个服务器端脚本来重新绑定到的evil.example.comDNS 192.168.1.254由于 DNS 条目的 TTL 非常短,因此浏览器会请求名称查找并获取路由器地址。由于路由器具有默认凭据设置,恶意页面可以发送 AJAX 请求以读取和更改路由器配置页面上的任何内容。这“绕过”了相同的源策略,因为路由器现在与恶意站点 ( ) 具有相同的源http://evil.example.com:80

这种攻击将依靠浏览器及时重新检查 DNS。大多数浏览器在操作系统之外都有自己的 DNS 缓存,并且缓存时间可能超过 TTL 规定的时间,从而阻碍了这种类型的攻击。

许多路由器都有一个基于 Web 的管理控制台,听起来这就是这种攻击所利用的。通常,管理控制台只能在 LAN 上访问,而不是允许外部连接 - 而这种恶意 JavaScript 是用来从攻击者的机器桥接到 LAN 的。

这种攻击可能发生的一种潜在方式:

  1. 恶意 JavaScript 在受害者的浏览器中加载。这不需要突破浏览器的沙箱,或者以其他方式攻击用户的 PC 本身——它只需要运行足够长的时间来攻击路由器。
  2. JS 扫描本地网络设备,并确定路由器的位置(例如,192.168.1.1 和 10.1.1.1 是路由器非常常见的 IP)。
  3. 然后 JS 尝试访问路由器的 Web 管理面板。请记住,此时您在 LAN 中,因此就路由器而言,这是一个内部连接。
  4. 路由器的管理面板要求您输入用户名/密码。很有可能这仍然是该特定类型路由器的默认设置。通常它会类似于“admin:admin”。
  5. 如果攻击者能够猜出正确的用户名/密码,他们就可以访问管理面板。如果有任何从 Web 管理面板中升级固件的能力(文章说有时是这种情况),就是这样 - 游戏结束,攻击者可以安装他们喜欢的任何东西。