NAT Slipstreaming:新的NAT/防火墙绕过攻击
2020-11-05 12:50:00 Author: www.4hou.com(查看原文) 阅读量:268 收藏

NAT Slipstreaming to Bypass Firewall

最新研究证明了一项名为NAT Slipstreaming的技术,攻击者利用该技术可以绕过防火墙的保护,并远程访问受害者机器上的任意TCP/UDP 服务。

NAT Slipstreaming

NAT Slipstreaming 通过发送一个到恶意站点的链接给目标用户(或加载恶意公告的合法站点),当目标用户访问该链接时,就会触发网关打开受害者设备上的任意 TCP/UDP 端口,绕过基于浏览器的端口限制。

NAT Slipstreaming 利用了用户浏览器和NAT、路由器、防火墙中内置的Application Level Gateway (ALG) 连接追踪机制,通过时序攻击、webRTC、自动远程MTU和IP 分段发现、TCP 包大小消息、TURN 认证滥用、精确的包边界控制、通过浏览器滥用的协议混淆等实现内部IP 提取。

研究人员在运行Linux kernel v2.6.36.4 版本的NetGear Nighthawk R7000 路由器上对该技术进行了测试。

确定包边界

NAT(Network address translation,网络地址转化)是网络设备在传输消息过程中对包的IP header部分的网络地址信息进行修改实现IP地址空间的映射。NAT 的主要优势是可以减少组织内部网络中公网IP 地址的使用和改善安全性。

NAT Slipstreaming利用了TCP和IP 包的分段来远程调整包的边界,并用它来创建一个以SIP 方法开头的TCP/UDP 包,比如REGISTER或INVITE。

firewall bypass

SIP (Session Initiation Protocol,会话发起协议)是用来为声音、视频和消息应用发起、维护和终止实时多媒体会话的通信协议。HTTP中的包分段和伪造的SIP 请求的混合可以用来诱使 NAT ALG 打开任意到客户端的内部连接的端口。

为实现这一目的,需要发送大量含有ID和隐藏了web表单的HTTP POST请求,隐藏的web表单指向一个运行包嗅探器的攻击服务器,用来获取MTU 大小、数据包大小、TCP和IP header大小,然后将这些大小数据通过POST 消息发送回给受害者客户端。

此外,攻击者还滥用了TURN (Traversal Using Relays around NAT,使用中继穿越NAT) 中的认证函数。TURN 协议允许一台主机使用中继服务与对端进行报文传输。攻击者滥用 TURN 协议中的认证函数来引发包溢出,使得IP 包分段。即通过 padding 填充来溢出 TCP或 UDP 包,使得其分割成2部分,因此SIP 数据包就会在第二个包边界的开始部分。

连接到TCP/UDP

在攻击的第二阶段,攻击者会通过浏览器上的WebRTC ICE 或通过在网关(192.168.*.1或10.0.0.1) 上转型时序攻击来提取受害者的内部IP 地址。

一旦客户端获取了包大小和内部IP 地址,就会构造一个web表单来填充POST 数据直到包被分段,此时加上包含内部IP 地址的SIP REGISTER。然后该表单会通过JS 在受害者不知情的情况下提交。

当包到达攻击者服务器后,如果SIP 包没有用公网IP 地址覆写,就会自动发送消息给客户端,要求调整包大小为新的边界。

如果包边界正确,NAT会认为这是一个合法的SIP 注册,并且来自受害者机器的SIP 客户端,最终NAT 会打开受害者发送的原始包的端口。

然后,路由器会转发攻击者选择的端口给内部受害者。NAT Slipstreaming的完整PoC 代码参见:https://github.com/samyk/slipstream

更多参见NAT Slipstreaming攻击主页:https://samy.pl/slipstream/

本文翻译自:https://thehackernews.com/2020/11/new-natfirewall-bypass-attack-lets.html如若转载,请注明原文地址:


文章来源: https://www.4hou.com/posts/Kmw8
如有侵权请联系:admin#unsafe.sh