使用基于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 攻击目标

  1. 欺骗受害者访问攻击者控制的网站
  2. 发现受害者本地网络上的IoT设备
  3. 使用基于Web的攻击控制这些设备

2.3 攻击时间

  • 早期研究:平均1分钟可拿下设备
  • 本研究:显著降低攻击所需时间
  • 注意:Chrome会缓存DNS请求并"无视"低于某阈值的TTL

3. 攻击技术详解

3.1 HTTP端点发现

  • 通过Raspberry Pi无线接入点分析设备通信
  • 发现:
    • 35个GET请求端点
    • 8个POST请求端点
  • 这些端点用于在发现阶段识别相应IP地址

3.2 攻击两阶段模型

阶段一:发现设备

  1. 获取本地IP:通过WebRTC获取本地IP地址
  2. 端口扫描:向81端口上相应IP范围内的所有IP发送请求
    • 活动设备:立即用TCP RST数据包响应
    • 非活动设备:请求超时
  3. 端点探测:向活动IP发送35个GET端点请求
    • 根据错误消息判断IP是否匹配7台设备之一

浏览器兼容性

  • 适用:Chrome、Firefox
  • 不适用:
    • Safari:所有Fetch请求超时
    • Edge:无法获取详细HTML5错误消息

阶段二:获取访问权限(DNS重绑定攻击)

  1. 受害者访问攻击者控制的域(domain.tld),执行恶意JavaScript
  2. JavaScript请求domain.tld上的特定资源(如http://domain.tld/hello.php)
  3. 若本地DNS缓存仍解析为攻击者IP,返回"hello"字符串,重复步骤2
  4. 若缓存过期,发送新DNS查询
  5. 攻击者名称服务器返回本地IP地址而非远程IP
  6. 收到404等错误响应,表明DNS重绑定成功
  7. 绕过同源策略,获取设备Web应用访问权限

可实现的控制

  • 重启Google Chromecast、Google Home、智能电视和智能交换机
  • 录制视频或音频

4. 防御措施

4.1 用户层面

  1. 禁用浏览器WebRTC(防止泄露私有IP)
    • 局限性:攻击者仍可通过向私有IP范围内的*.1地址发送请求发现IP
  2. 配置家庭路由器DHCP服务器使用不同子网(如/16)
  3. 安装DNSMASQ(从DNS回复中删除RFC1918地址)
  4. 使用OpenWRT路由器(内置DNSMASQ)

4.2 IoT制造商

  • 控制Host头部:若与RFC1918规定的私有IP不符则阻止访问

4.3 DNS提供商

  • 使用DNSWall等防御机制过滤DNS应答中的私有IP地址

4.4 浏览器供应商

  • 开发插件限制公共网站访问私有IP范围

5. 参考文献

  1. 普林斯顿和伯克利研究报告: [Web-based Attacks to Discover and Control Local IoT Devices](Web-based Attacks to Discover and Control Local IoT Devices)
  2. 本地网络应用攻击: [Vulnerable Web Applications on Developers' Computers Allow Hackers to Bypass Corporate Firewalls](Vulnerable Web Applications on Developers' Computers Allow Hackers to Bypass Corporate Firewalls)
基于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)