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 攻击流程
- 向受害者发送恶意链接
- 受害者访问链接后发起HTTP POST请求
- POST数据精心构造,超过MSS导致分段
- 特定分段恰好形成伪造的SIP REGISTER包
- ALG误识别并添加NAT映射
- 攻击者通过映射访问内网
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 完整攻击步骤
- 发送恶意链接诱导内网用户点击
- 通过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的防火墙保护
防御关键在于:
- 合理配置网络设备
- 禁用不必要的服务
- 保持系统和应用更新
- 采用纵深防御策略