尽管文中介绍的方法同样适用于Tor浏览器之外的其他匿名代理,但我们还是专注于介绍如何在研究环境中建立安全的Tor。

通过Tor通信的VM

正如大多安全研究者所经历的,在VM(Virtual Machine虚拟机)中分析恶意软件或者exp的时候都需要做一个重要决定,而大多数人更愿意选择在离线环境中进行逆向,但是如果你是在监控C&C通信或者一个exp工具包,那离线环境就不可行了。你会使用你真实的IP吗?你会使用强迫所有东西通过tor的第三方代理工具吗(希望没有软件会将你的IP泄露出去)?你会通过一个VPN运行整个系统,然后再重新链接回你的所有软件吗?

我想出的解决方案是使用一个独立的虚拟机创建一个透明的Tor代理作为路由器,而虚拟机可以用于让所有流量通过Tor(无须额外配置或者软件,甚至不会发现代理的存在)。尽管搭建路由器需要花费15分钟左右的时间,但是一旦搭建好了之后,所有的VM根本无需任何配置就可以通过Tor进行通信了。

这里举了一个例子,展示了使用我的(没有任何代理)设置便可轻松通过tor连接一个全新的虚拟机上。

视频演示

安装路由器

VM要求:

Ram——至少200MB

Disk——至少500MB

我选择使用pfSense软件,这是一个基于FreeBSD,专为防火墙和路由器功能定制的开源软件,你可以从官网上下载最新版本。尽管教程中我使用的是VMware Workstation,但是这个方法应该在大多数VM软件中都可以使用。

1、创建一个新的VM,你通常会用到pfSense ISO(但是请暂时不要启用它)。

2、进入VM设置,将网络适配器设置为你通常连接互联网使用的那个选择(这里是“NAT”)。

3、点击“LAN segments…”按钮,添加一个新的局域网区段。

4、点击“Add…”按钮,添加一个新的网络适配器(仅保留默认设置然后点击finish)。

5、设置新的适配器应用你创建的局域网区段,对另一个适配器不作处理。

现在你可以开启VM。几秒钟之后你便会看到如下图显示,按1然后等待。

下图中你将会需要对调用安装程序进行选择,按“I”。如果10秒内你没有选择,引导将继续进行,你需要重新启动一次。

在安装程序时你可以点击“Accept these Settings”(接受这些设置),然后再“Quick/Easy Install”(快速安装)时候选择“OK”。

接下来提示会要求你安装内核,选择“Standard Kernel”(标准内核),等待完成之后让系统重新引导(确保在VM开始运行前移除CD以防止任何意外发生)。

如果一切顺利,你会到达欢迎页面。顶部提供了广域网和局域网适配器的信息。广域网应该为em(),你设置连接到互联网的适配器,当局域网为em1时,这个适配器便是连接到局域网区段上的。广域网适配器的IP地址应该与你host电脑虚拟适配器(通常为“虚拟网络适配器VMnet8”)为同一子网。

出于安全因素,默认路由器的网络控制面板不可接受广域网的访问,因此为了访问控制面板你需要启动另一个虚拟机(最好是你打算链接到tor的那个),然后设置虚拟网络适配器连接到你为路由器设置的局域网区段。

现在,你只需要打开一个浏览器,导航到pfSense路由的局域网IP(在这里我的地址是192.168.1.1),然后你就能看见如下图所示(登录信息 admin:pfSense)

你可以跳过设置导向,直接去修改登录信息,然后去主配置页面。

你需要到“Services>DNS Resolver”(服务>DNS解析器)然后取消“Enable DNS Resolver”(启用DNS解析器)的功能并保存设置(我们将使用tor作为我们的DNS解释器,系统便可以同时访问.onion洋葱域)

Tor的安装

你可以直接通过pfSense控制台完成这个步骤(按下8进入shell),或者进入客户虚拟机的配置面板,通过“System>Advanced”(系统>高级)开启SSH,然后选中“Enable Secure Shell”复选框中的“OK”。

如果你选中SSH选项,必须使用来自虚拟机内部的putty。IP与控制面板IP相同,并且登录信息与管理面板一样。

一旦进入shell,我们便可以安装tor:

pkg install tor
rm -rf /usr/local/tor/torrc

打开“/usr/local/etc/tor/torrc”,按如下配置编辑后保存:

DNSPort 53
 DNSListenAddress YOUR_PFSENSE_LAN_IP_HERE
 VirtualAddrNetworkIPv4 10.192.0.0/11
 AutomapHostsOnResolve 1
 RunAsDaemon 1
 TransPort 9040

现在,我们可以在启动项添加tor然后运行起来:

touch /usr/local/etc/rc.d/tor.sh
cd /usr/local/etc/rc.d/
echo "/usr/local/bin/tor" >> tor.sh && chmod +x tor.sh
/usr/local/bin/tor

防火墙设置

现在我们需要给通过tor给代理设置一些规则;不幸的是你无法促进整个端口范围,因此最好只为每个主流端口(HTTP、HTTPS、IRC等)添加端口传递规则,那么任何与规则不符的流量则会被阻止。

首先,我们需要去设置“Firewall>Nat>Port Forwarding”(防火墙>Nat>端口转发),为我们想通过tor传递的每个TCP端口或者端口范围添加一个规则(你可以只添加HTTP和HTTPS端口,后面再陆续添加更多)。

规则设置如下:

Interface: LAN (Traffic from VMs)
Protocol: TCP
Source: Any (All devices on the LAN)
Destination: not LAN net (Ignore traffic between VMs or the VMs and pfSense router)
Destination port range: from 80 to 80 (HTTP)
Redirect Target IP: 127.0.0.1 (The pfSense router)
Redirect target port: 9040 (The transparent proxy port we set in tor config)
Description: Doesn't matter, put what you want

在其他目标端口/端口范围重复上述设置(如HTTPS为443,SSH为22等等),你无法让(1到65535)全部范围转发,但是你可以转发大多数的。值得注意的是Tor不支持UDP,因此你无须转发UDP的流量或者使用你的真实IP

现在去设置“Firewall>Rules>LAN”(防火墙>规则>局域网),同时取消IPv4和IPv6 的“默认允许局域网IPv4/6任意链接”。

删除下述规则将会阻止不遵循端口转发规则(不经过tor)的所有流量,这就意味着我们需要创建一个遵循pfSense服务器DNS请求的规则,在“Firewall>Rules>Lan”(防火墙>规则>局域网)创建一个新的规则,详情如下:

Action: Pass (Allow traffic matching this rule)
Interface: LAN (Traffic from VMs)
TCP/IP: Version: IPv4
Protocol: TCP/UDP (DNS can be both)
Source: LAN net (From VMs)
Destination: (type): Single host or alias
Destination (address): The LAN ip of your pfSense router.
Destination port range: from 53 to 53
Description: Allow DNS

如果你想让流量在链接路由器的虚拟机之间流动,请完成如下设置:

Action: Pass (Allow traffic matching this rule)
Interface: LAN (Traffic from VMs)
TCP/IP: Version: IPv4
Protocol: TCP/UDP 
Source: LAN net (From VMs)
Destination: LAN net (To VMs)
Destination port range: from Any to Any
Description: Allow VM Communication

完成了所有设置。现在你应该可以使用dnsleaktest.com检查一下你的IP地址,你的DNS应该无法被检测出来(即使你启动了WebRTC,STUN的exp也仍无法工作)。

小编翻译水平有限,各位有兴趣童鞋可以点击下面的原文链接,涨姿势。

*参考来源:malwaretech,转载需注明来自FreeBuf黑客与极客(FreeBuf.COM)

源链接

Hacking more

...