使用基于Web的攻击手法发现并入侵物联网设备
字数 1621 2025-08-27 12:33:54
基于Web的攻击手法发现并入侵物联网设备教学文档
1. 研究背景与概述
- DNS重绑定攻击历史:安全社区已讨论20年,浏览器供应商仍未实现稳定防御方法
- 新型攻击趋势:组合多种现有攻击手法形成新攻击手段(如针对加密货币钱包的攻击)
- 研究来源:普林斯顿大学和加州大学伯克利分校2018年8月的研究成果
2. 研究对象与方法
2.1 测试设备
- 测试15个物联网设备,其中7个提供本地HTTP服务器:
- Google Chromecast
- Google Home
- 智能电视
- 智能开关
- 三个摄像头
2.2 攻击目标
- 欺骗受害者访问攻击者控制的网站
- 发现受害者本地网络上的IoT设备
- 使用基于Web的攻击控制这些设备
2.3 攻击时间
- 早期研究:平均1分钟可拿下设备
- 本研究:显著降低攻击所需时间
- 注意:Chrome会缓存DNS请求并"无视"低于某阈值的TTL
3. 攻击技术详解
3.1 HTTP端点发现
- 通过Raspberry Pi无线接入点分析设备通信
- 发现:
- 35个GET请求端点
- 8个POST请求端点
- 这些端点用于在发现阶段识别相应IP地址
3.2 攻击两阶段模型
阶段一:发现设备
- 获取本地IP:通过WebRTC获取本地IP地址
- 端口扫描:向81端口上相应IP范围内的所有IP发送请求
- 活动设备:立即用TCP RST数据包响应
- 非活动设备:请求超时
- 端点探测:向活动IP发送35个GET端点请求
- 根据错误消息判断IP是否匹配7台设备之一
浏览器兼容性:
- 适用:Chrome、Firefox
- 不适用:
- Safari:所有Fetch请求超时
- Edge:无法获取详细HTML5错误消息
阶段二:获取访问权限(DNS重绑定攻击)
- 受害者访问攻击者控制的域(domain.tld),执行恶意JavaScript
- JavaScript请求domain.tld上的特定资源(如http://domain.tld/hello.php)
- 若本地DNS缓存仍解析为攻击者IP,返回"hello"字符串,重复步骤2
- 若缓存过期,发送新DNS查询
- 攻击者名称服务器返回本地IP地址而非远程IP
- 收到404等错误响应,表明DNS重绑定成功
- 绕过同源策略,获取设备Web应用访问权限
可实现的控制:
- 重启Google Chromecast、Google Home、智能电视和智能交换机
- 录制视频或音频
4. 防御措施
4.1 用户层面
- 禁用浏览器WebRTC(防止泄露私有IP)
- 局限性:攻击者仍可通过向私有IP范围内的*.1地址发送请求发现IP
- 配置家庭路由器DHCP服务器使用不同子网(如/16)
- 安装DNSMASQ(从DNS回复中删除RFC1918地址)
- 使用OpenWRT路由器(内置DNSMASQ)
4.2 IoT制造商
- 控制Host头部:若与RFC1918规定的私有IP不符则阻止访问
4.3 DNS提供商
- 使用DNSWall等防御机制过滤DNS应答中的私有IP地址
4.4 浏览器供应商
- 开发插件限制公共网站访问私有IP范围
5. 参考文献
- 普林斯顿和伯克利研究报告: [Web-based Attacks to Discover and Control Local IoT Devices](Web-based Attacks to Discover and Control Local IoT Devices)
- 本地网络应用攻击: [Vulnerable Web Applications on Developers' Computers Allow Hackers to Bypass Corporate Firewalls](Vulnerable Web Applications on Developers' Computers Allow Hackers to Bypass Corporate Firewalls)