MatsuriDayo / nekoray

Qt based cross-platform GUI proxy configuration manager (backend: sing-box)
https://matsuridayo.github.io/
GNU General Public License v3.0
12.23k stars 1.16k forks source link

TunnelCrack 漏洞 #895

Closed ZIMUXA closed 11 months ago

ZIMUXA commented 11 months ago

嗨,我只是想知道Nekoray是否受到TunnelCrack漏洞的影响。如果是的话,您已经采取了任何措施或者是否有任何计划来减轻这些漏洞吗?(使用ChatGPT进行英文到中文的翻译) 更多信息请参考: https://tunnelcrack.mathyvanhoef.com/


English: Hi, I just wanted to know if Nekoray is affected by TunnelCrack vulnerabilities. If so, have you taken any steps or do you have any plans to mitigate these vulnerabilities? More info is on: https://tunnelcrack.mathyvanhoef.com/

cloudheap commented 11 months ago

This is DNS leak,you can use this website to check https://whoer.net/dns-leak-test

Nekoray is just an GUI, not a proxy program. You can disable the routing functionality of the proxy program, forcing all DNS queries to be resolved using remote servers. Alternatively, after establishing a VPN connection, you can run the GOST program, create a tunnel, and use a specified DNS resolver to resolve the target address for this request. Please refer to https://v2.gost.run/en/resolver/ for more information.

ZIMUXA commented 11 months ago

谢谢您的回复。 NekoRay不是一个代理程序,但当与V2Ray等协议一起使用时,它可以作为VPN客户端运行,您认为呢?因此,我认为它容易受到TunnelCrack的攻击。 根据我的理解,TunnelCrack漏洞不同于典型的DNS泄漏。尽管TunnelCrack攻击和DNS泄漏攻击都涉及到网络流量和路由的操纵,但它们在机制和目标上有所不同。 在DNS泄漏中,VPN用户的DNS查询(域名解析请求)被发送到ISP的DNS服务器,而不是通过VPN隧道路由。这可能会向ISP透露用户正在访问的网站。 TunnelCrack攻击侧重于操纵VPN隧道内部流量的路由。这些攻击旨在将某些流量转移到VPN隧道之外,使其对潜在攻击者可见。这些攻击针对的是用户的流量,而不仅仅是DNS查询。(使用ChatGPT进行英文到中文的翻译)


Thank you for the reply. NekoRay is not a proxy program, but when used with protocols like V2Ray, it can function as a VPN client, don't you think? So I assume it is vulnerable to TunnelCrack. Based on my understanding, the TunnelCrack vulnerability is not a typical DNS leak. While both TunnelCrack attacks involve manipulation of network traffic and routing, they differ from DNS leaks in terms of their mechanisms and objectives. In a DNS leak, a VPN user's DNS queries (domain name resolution requests) are sent to the ISP's DNS servers instead of being routed through the VPN tunnel. This can reveal the websites a user is accessing to the ISP. TunnelCrack attacks focus on manipulating the routing of traffic within the VPN tunnel itself. These attacks aim to divert certain traffic outside the VPN tunnel, making it visible to potential attackers. The attacks target the user's traffic rather than DNS queries specifically.

egg1234 commented 11 months ago

通过下面由漏洞发现者公布的演示视频,至少知道第一个localnet攻击方式要泄露传输的资料必须是用户在vpn里面访问的网站是http方式的,而不是https方式的,而且nekoray有全局代理模式(包括在TUN模式里面也是起作用的),即访问私有网段也将会被代理(即私有网段访问也会被加密发送到代理服务器再由代理服务器转发),如果用户担心在公共网络访问不安全,就可以使用全局代理模式,至于另外一个DNS的问题,的确如cloudheap同学说的,理论上nekoray已经使用remote dns为 https://8.8.8.8/dns-query 方式的查询,攻击者也不可能在DNS解析上动手脚了,这个也是漏洞发现者们建议的缓解方法,以上论述仅仅是个人的理解

https://www.youtube.com/watch?v=vOawEz39yNY

egg1234 commented 11 months ago

从下面TunnelCrack研究者的github公布细节来看,可以确认在windows/linux环境下,LocalNet Attacks对系统代理模式没有影响,因为攻击是通过dhcp服务器下放scope link路由条目,让vpn客户端判断目的地公网ip是本地可达的,所以才把流量泄露到攻击者设定的网关上并转发出去,这时http明码内容会被攻击者查看,而https加密内容攻击者只能看到用户访问了那些具体网站,内容并没有泄露,对于代理方式这个攻击流程无效,因为代理和本机路由条目没有关系,只有本机vpn客户端起了tun/tap接口并修改路由时才能起作用

github.com/vanhoefm/vpnleaks

基于以上攻击原理还引申出了另外一个问题,nekoray/v2rayN等客户端的作用是科学上网,本来就是要访问那些不能访问的网站,而且大部分客户端都会设置分流绕过,如果在tun模式下攻击者把用户的流量泄露到攻击者的网络再转发,用户的访问铁定被阻断,因为那些流量都是不能出境的,所以这时用户马上会发现连到攻击者的网络根本上不了网,如果用google.com测速的话,连测速都不通,结果不言而喻了

至少这个攻击对nekoray/v2rayN等这类客户端在国内是没有应用场合的,而对于一般商业机构vpn客户端这个攻击是很麻烦的

egg1234 commented 4 months ago

TunnelVision漏洞(即原来的TunnelCrack 漏洞)详细的研究说明及攻击方式,下面连接以中文简单介绍了TunnelVision漏洞(即原来的TunnelCrack 漏洞)的实现方式,

https://web.archive.org/web/20240508070728/https://f5.pm/go-238546.html

当然连接里面也有英文原文的更详细介绍,并且有实验操作教程,从这个介绍明确了这个漏洞能够做什么以及不能做什么

首先要实现这个漏洞的利用必须是客户端操作系统支持DHCP的option 121,但至少android系统不支持DHCP的option 121,所以android系统不受影响,另外linux系统也不受影响(根据中文介绍,英文原文关于linux系统为什么不受影响没有细读),另外这个漏洞既然是使用DHCP下放覆盖更改路由的方式实现流量重定向,那就对所有过墙的工具都没有影响

原因是DHCP本来就必须直接针对客户端分配ip,而墙没有这个可能性,退一步讲,即使有一些蜜罐DHCP热点实现这个漏洞的功能,一个墙内用户连接上去并启用过墙工具,这时用户的流量被分流到加密隧道外,但用户的流量肯定是墙不允许的否则也不用过墙工具了,而黑客已经无法把分离出来的流量重新塞回到加密隧道,只能把流量直接转发出去或丢弃,无论何种情况,用户的流量已经铁定过不了墙了,用户马上就会被报告网络不通,所以这个漏洞对于过墙工具完全没有影响,但的确对于非墙世界的外部VPN使用会造成严重影响