这些类型的攻击可以通过对通过 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.com
DNS 192.168.1.254
。由于 DNS 条目的 TTL 非常短,因此浏览器会请求名称查找并获取路由器地址。由于路由器具有默认凭据设置,恶意页面可以发送 AJAX 请求以读取和更改路由器配置页面上的任何内容。这“绕过”了相同的源策略,因为路由器现在与恶意站点 ( ) 具有相同的源http://evil.example.com:80
。
这种攻击将依靠浏览器及时重新检查 DNS。大多数浏览器在操作系统之外都有自己的 DNS 缓存,并且缓存时间可能超过 TTL 规定的时间,从而阻碍了这种类型的攻击。