NVDA 远程访问是 NVDA 的一款插件,它允许两台运行 Windows 的计算机进行远程连接,这样可以让朋友从远程位置协助解决问题,但是这个插件存在一些漏洞,可帮助入侵者侵入受控主机。
强尼经常使用 NVDA 远程插件来帮伙伴们解决电脑遇到的问题,发现这个插件并不是很安全,在先前,强尼也想发文说一下,后来因为懒惰等原因迟迟没有动笔,今天,强尼浏览到 anyaudio.net 时,发现了 Sam Tupy 小朋友也在说起 NVDA 远程插件的问题,强尼也想跟大伙儿说一下 NVDA 远程插件的漏洞问题。
NVDA 远程插件,可以通过官方的中转服务器(nvdaremote.com)来中转协助者与被协助者之间传输的数据,也可以自己架设服务器来进行双方点对点传送。为了保护连接不会被他人插足,在建立连接时,必须使用双方事先约定的密钥,验证通过后才可以建立起连接。但是由于疏忽大意以及设计弱点,很容易导致 NVDA 远程插件变成黑客入侵电脑的工具。
密钥的弱点:这个问题最严重,只要作为控制模式,并且作为客户端去连接 nvdaremote.com,然后稍加穷举猜解,肯定能蒙到一台不知道来自哪里的电脑,然后便可以去操作它,而且权限等同于被操作的电脑当前登录的用户的权限。另外,这个插件自动生成的密钥也并不是很安全,那只是 7 位的数字而已。
端口的弱点:自架的 NVDA 远程插件的服务器端口,一律都是 6837,并且没有办法轻易修改,这很容易让害客扫描,如果那台服务器恰好是被控模式,并且密钥很简单,也一样能被远程操作。
其实,NVDA 远程插件的两个最严重的漏洞,修补起来也并不难。
如果确实要通过 nvdaremote.com 这个官方的服务器来中转数据,从而绕过局域网无法自己架设服务器的尴尬,唯一可以帮助降低风险的方法是使用一个强密钥,并且不要多次使用这个密钥,强烈不推荐使用自动生成的密钥,它过于容易被猜解。
对于自己架设服务器的朋友,强尼建议除了使用强密钥来保护安全,在条件允许的情况下,通过路由器来进行端口跳转。在本例中,端口跳转不同于端口映射,端口映射是把局域网电脑的 6837 端口直接映射到互联网,而不进行端口号的修改,端口跳转会修改端口号。例如,把局域网 100.80.0.3 的 6837 端口“跳转”到互联网 IP 的 7386 端口。不过,不是所有的路由器都有端口跳转的功能。当设置了端口跳转后,从远程位置访问 NVDA 时,则应在主机地址后面加入端口号,例如 166.111.4.100:7386,如果不加入端口号,就会导致连接失败。
最后,如果开发者能看懂中文,我强烈建议允许手工修改端口号,没有什么事情比得上电脑被入侵让人沮丧了。