NAT Splitstreamming v1 浅析
字数 1742 2025-08-10 08:29:01

NAT Splitstreamming v1 技术分析与防御指南

1. 技术概述

NAT Splitstreamming是一种由安全研究员Samy Kamkar在2020年10月公开的针对NAT网关的攻击技术。该技术允许攻击者从外网突破NAT网关,直接访问内网IP地址,绕过传统NAT提供的防火墙保护。

2. NAT基础

2.1 NAT工作原理

NAT(Network Address Translation)的主要功能是让多个设备共享同一个公网IP地址:

  • 内网设备使用私有IP地址(如10.0.0.0/8或192.168.0.0/16)
  • 外发数据包经过NAT网关时,源地址和端口被修改为公网IP和端口
  • 回传数据包经过NAT网关时,目的地址和端口被还原为内网IP和端口
  • NAT网关维护地址映射表来跟踪这些转换关系

2.2 NAT的防火墙特性

传统NAT具有单向性:

  • 内网设备可以主动连接外网
  • 外网设备不能主动连接内网设备
  • 这种特性提供了基本的防火墙功能

3. ALG技术

3.1 ALG的作用

ALG(Application Layer Gateway)用于解决特殊协议(如FTP)在NAT环境下的兼容性问题:

  • 主动模式FTP需要服务器主动连接客户端
  • ALG识别应用层协议内容(如FTP的PORT命令)
  • 动态修改协议内容并添加NAT映射

3.2 ALG实现示例

以Linux Netfilter的Conntrack为例:

  • 识别目的端口为21的TCP包
  • 匹配payload中的"PORT"字符串
  • 识别为主动模式FTP后修改PORT命令内容
  • 添加临时的NAT映射关系

4. NAT Splitstreamming攻击原理

4.1 核心思路

利用ALG的动态映射特性:

  • 欺骗ALG使其添加任意的NAT映射
  • 通过该映射实现外网对内网的主动访问

4.2 技术演进

  • 2010年:使用IRC协议(NAT Pinning)
  • 2020年:使用SIP协议(NAT Splitstreamming v1)
  • 后续更新:NAT Splitstreamming v2

5. SIP协议利用

5.1 SIP REGISTER包结构

REGISTER sip:192.168.2.89 SIP/2.0
Via: SIP/2.0/UDP 192.168.2.161:10586
...
Contact: <sip:192.168.2.161:10586>;methods="INVITE, MESSAGE..."
...

关键字段:

  • Contact字段指定了内网IP和端口
  • ALG会修改此字段并添加NAT映射

6. TCP分段攻击

6.1 攻击流程

  1. 向受害者发送恶意链接
  2. 受害者访问链接后发起HTTP POST请求
  3. POST数据精心构造,超过MSS导致分段
  4. 特定分段恰好形成伪造的SIP REGISTER包
  5. ALG误识别并添加NAT映射
  6. 攻击者通过映射访问内网

6.2 关键技术点

MTU与MSS

  • MTU(最大传输单元):数据链路层帧最大长度(以太网1500字节)
  • MSS(最大分段大小):TCP段最大长度(小于MTU)

MSS控制

  • 通过TCP握手时的MSS Option协商
  • 精确控制使HTTP POST分段位置落在伪造SIP包头

分段伪造

[正常HTTP头部][填充数据][伪造SIP包][剩余数据]

第三段起始位置精确对齐伪造SIP包头

7. 辅助技术

7.1 内网IP探测

使用WebRTC技术:

  • 通过STUN协议获取内网IP
  • 已有成熟工具如webrtc-ips

7.2 完整攻击步骤

  1. 发送恶意链接诱导内网用户点击
  2. 通过WebRTC探测内网IP
  3. 控制TCP MSS值
  4. 发起特制HTTP POST请求触发分段
  5. 伪造SIP包触发ALG
  6. 通过新增NAT映射访问内网

8. 防御措施

8.1 网络设备层面

  • 禁用不必要的ALG功能
  • 更新固件修复已知漏洞
  • 限制ALG只处理特定信任的流量

8.2 终端防护

  • 浏览器安全设置限制WebRTC
  • 使用内容安全策略(CSP)
  • 及时更新浏览器补丁

8.3 网络架构

  • 部署深度包检测(DPI)设备
  • 实施零信任网络架构
  • 加强内网边界防护

9. 总结

NAT Splitstreamming攻击结合了多种技术:

  1. 利用TCP分段特性构造恶意包
  2. 欺骗ALG添加非法NAT映射
  3. 绕过传统NAT的防火墙保护

防御关键在于:

  • 合理配置网络设备
  • 禁用不必要的服务
  • 保持系统和应用更新
  • 采用纵深防御策略

10. 参考资源

  1. Samy Kamkar官方文章
  2. GitHub项目
  3. NAT Pinning技术
  4. WebRTC IP泄露
  5. MSS技术说明
NAT Splitstreamming v1 技术分析与防御指南 1. 技术概述 NAT Splitstreamming是一种由安全研究员Samy Kamkar在2020年10月公开的针对NAT网关的攻击技术。该技术允许攻击者从外网突破NAT网关,直接访问内网IP地址,绕过传统NAT提供的防火墙保护。 2. NAT基础 2.1 NAT工作原理 NAT(Network Address Translation)的主要功能是让多个设备共享同一个公网IP地址: 内网设备使用私有IP地址(如10.0.0.0/8或192.168.0.0/16) 外发数据包经过NAT网关时,源地址和端口被修改为公网IP和端口 回传数据包经过NAT网关时,目的地址和端口被还原为内网IP和端口 NAT网关维护地址映射表来跟踪这些转换关系 2.2 NAT的防火墙特性 传统NAT具有单向性: 内网设备可以主动连接外网 外网设备不能主动连接内网设备 这种特性提供了基本的防火墙功能 3. ALG技术 3.1 ALG的作用 ALG(Application Layer Gateway)用于解决特殊协议(如FTP)在NAT环境下的兼容性问题: 主动模式FTP需要服务器主动连接客户端 ALG识别应用层协议内容(如FTP的PORT命令) 动态修改协议内容并添加NAT映射 3.2 ALG实现示例 以Linux Netfilter的Conntrack为例: 识别目的端口为21的TCP包 匹配payload中的"PORT"字符串 识别为主动模式FTP后修改PORT命令内容 添加临时的NAT映射关系 4. NAT Splitstreamming攻击原理 4.1 核心思路 利用ALG的动态映射特性: 欺骗ALG使其添加任意的NAT映射 通过该映射实现外网对内网的主动访问 4.2 技术演进 2010年:使用IRC协议(NAT Pinning) 2020年:使用SIP协议(NAT Splitstreamming v1) 后续更新:NAT Splitstreamming v2 5. SIP协议利用 5.1 SIP REGISTER包结构 关键字段: Contact字段指定了内网IP和端口 ALG会修改此字段并添加NAT映射 6. TCP分段攻击 6.1 攻击流程 向受害者发送恶意链接 受害者访问链接后发起HTTP POST请求 POST数据精心构造,超过MSS导致分段 特定分段恰好形成伪造的SIP REGISTER包 ALG误识别并添加NAT映射 攻击者通过映射访问内网 6.2 关键技术点 MTU与MSS : MTU(最大传输单元):数据链路层帧最大长度(以太网1500字节) MSS(最大分段大小):TCP段最大长度(小于MTU) MSS控制 : 通过TCP握手时的MSS Option协商 精确控制使HTTP POST分段位置落在伪造SIP包头 分段伪造 : 第三段起始位置精确对齐伪造SIP包头 7. 辅助技术 7.1 内网IP探测 使用WebRTC技术: 通过STUN协议获取内网IP 已有成熟工具如webrtc-ips 7.2 完整攻击步骤 发送恶意链接诱导内网用户点击 通过WebRTC探测内网IP 控制TCP MSS值 发起特制HTTP POST请求触发分段 伪造SIP包触发ALG 通过新增NAT映射访问内网 8. 防御措施 8.1 网络设备层面 禁用不必要的ALG功能 更新固件修复已知漏洞 限制ALG只处理特定信任的流量 8.2 终端防护 浏览器安全设置限制WebRTC 使用内容安全策略(CSP) 及时更新浏览器补丁 8.3 网络架构 部署深度包检测(DPI)设备 实施零信任网络架构 加强内网边界防护 9. 总结 NAT Splitstreamming攻击结合了多种技术: 利用TCP分段特性构造恶意包 欺骗ALG添加非法NAT映射 绕过传统NAT的防火墙保护 防御关键在于: 合理配置网络设备 禁用不必要的服务 保持系统和应用更新 采用纵深防御策略 10. 参考资源 Samy Kamkar官方文章 GitHub项目 NAT Pinning技术 WebRTC IP泄露 MSS技术说明