尽管文中介绍的方法同样适用于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)
-
@ 阿布格里卜 可以外加VPN(推荐Lantern) TOR里再搞个网桥 网桥获取地址:https://bridges.torproject.org
-
@ 阿布格里卜 你说的也可以 不过我更喜欢用Tor。
-
我朝啥时候能用tor过?
-
@ 收废品 如果你连tor和VPN的区别都分不清 就不要拿辩证思维来装逼
-
@ Illusionists 多此一举,母鸡挂vpn,虚拟机通过vpn出去不就完了!

不容错过
- 耸人听闻还是真相?简要分析浑水资本发布的圣犹达公司心脏医疗设备安全报告clouds2016-08-31
- 是谁那么大本事让美国半个互联网瘫痪?有家中国企业牵扯其中?欧阳洋葱2016-10-24
- “暗云”BootKit木马详细技术分析腾讯电脑管家2015-01-30
- 走近科学:”种子“的前世今生追影人2016-06-16
0daybank
已有 9 条评论
我朝啥时候能用tor过?
@ 阿布格里卜 可以外加VPN(推荐Lantern) TOR里再搞个网桥 网桥获取地址:https://bridges.torproject.org
@ Illusionists 多此一举,母鸡挂vpn,虚拟机通过vpn出去不就完了!
@ 阿布格里卜 你说的也可以 不过我更喜欢用Tor。
tor就是慢,长连接一个小时以上容易断开 其他很不错
不错学习一下。
不挂vpn就算用了Bridge一样连不上tor,既然有vpn了,你在vmware母鸡拨vpn,guest选择nat上网继承vpn,还用tor做啥!
这年头什么都不实验,翻译下老外的帖子就牛逼哄哄了,you can you up!
@ 收废品 煞笔,一看你就没见过大场面
@ 收废品 如果你连tor和VPN的区别都分不清 就不要拿辩证思维来装逼