可以說,現在的網站建設很注重防火牆的建設,輕則會用防火牆來過濾包,重則直接將伺服器掛到大機房,或CDN加速器(如cloudflare)上。如你用一個固定IP在短時間內發送大量測試包這些伺服器,相信你的IP在幾分鐘內就會被封。那更別說用sqlmap跑資料庫之類的操作了。如果可以讓你在滲透測試過程中,IP不停地變化,而且還可以隱藏真實IP那是那麼美好的事。以下要教大家搭的tor軟路由就完全可做上以上這兩點。而且,經過tor 你可以自由訪問暗網,還可以做暗網的滲透測試。在這裡,我不想跟大家講述tor的原理,百度一下會有一大堆文檔給大家講解。我就直接進入主題。
目標:在vmware 上用Linux系統搭一個tor 軟路由虛擬機,將通過此路由的內網機器產生的流量全部轉發到洋蔥網絡上出去。
材料: Linux系統( 新 一點版本,這裡用kali2)
Iptabes包過濾系統(iptables 1.3.5 或之後版本)
Tor 0.2.0.1-alpha 之後版本
Vmware Workstation (新一點的版本,這裡用pro 12)
學習前題:你要會Linux的基本操作;
你知道tor的原理(相信你也不想用得那麼不明不白);
你了解iptables 包過濾系統;
你了解虛擬機(這裡我用vmware workstation)
前言:可以是任何的linux 系統 ,因為基本上所有的Linux 系統的內核都具備路由轉發功能。
現在有些新版本的Linuxg默認安裝的包過系統不是Iptables(像centos 7 ).你可以換成iptables .當然可以從這裡學習包轉發的思路,用你喜歡 的軟體包過慮軟體實現。
一、VM要求(配網卡):
1、在這裡,我將忽略linux 的安裝。並以kali2為例 。打開linux VM 。
2、進入VM設置,將網絡適配器設置為你通常連接網際網路使用的那個選擇(這裡是「Brige」)。
3、點擊「LAN segments…」按鈕,添加一個新的區域網區段。
4、點擊「Add…」按鈕,添加一個新的網絡適配器(僅保留默認設置然後點擊finish)。
5、設置新的適配器應用你創建的區域網區段,對另一個適配器不作處理。
二、 打開linux VM .
配置 兩張網卡的參數,如果是debian版的Linux(如這裡的kali2),配置文件路徑可能是
/etc/network/interfaces
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 192.168.1.1
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
netmask 255.255.255.0
重啟網卡
/etc/init.d/networking restart
啟網絡設置面板
/etc/init.d/network-manager restart
打開轉發linux 的IP轉發功能(IP forwarding):
echo "1" > /proc/sys/net/ipv4/ip_forward
如果使用PPP、DHCP等動態IP(內網網瞳),需要打開:
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
如果想在重啟計算機後設置也保留
修改/etc/sysctl.conf
net.ipv4.ip_forward = 1
二、安裝 tor
連接vpn(這裡假設你的linux 已配好能連vpn,建設你用個穩定點的vpn,不然,你vpn斷了,tor就斷,各種重接,很煩。)
然後換好有能安裝的tor源。如果你linux 此時的源不能裝tor ,你可以將
deb http://deb.torproject.org/torproject.org main
加進你的source.lists 文件裡
apt-get install tor
等安裝完全後:
修改/etc/tor/torrc 在最後加上
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsOnResolve 1
TransPort 9040 (tor 代理的listening 埠)
TransListenAddress 192.168.1.1 (內網tor 的listening ip)
TransListenAddress 127.0.0.1 (本地tor的listening ip 如果你想將本地產生的流量包也轉發到tor 上,你可以利用轉發到這個IP 的 9040埠上)
DNSPort 53 (tor dns 請求的 的 listening 的埠)
DNSListenAddress 127.0.0.1 (本地tor的listening ip 如果你想將本地產生的流量包也轉發到tor 上,你可以利用轉發到這個IP 的 9040埠上)
DNSListenAddress 192.168.1.1 (內網tor 的listening ip)
開啟tor:
可以直接打命令:tor
也可以:services tor start (service 是默認加進去的,但開機啟動不是,我想你也不想開機啟動。因為你開機還沒有連vpn呀。除非你有另外的方案來協調這兩者的關係。)
他會提示你不要用root的權限來運行tor proxy。實際如果你是單單地用tor proxy在轉向這臺機的流量,那你可以不用Root運行tor。但基於你是用來做軟路由,你無法不用root去運行tor(至少我現在沒有找到方法,如果你找到方法請與我聯繫,交流一下)
同時也提醒tor 透明代理的兩個可能因為配置不當而產生的洩漏(下面這兩個連結請連接vpn看)
https://lists.torproject.org/pipermail/tor-talk/2014-March/032503.html
https://lists.torproject.org/pipermail/tor-talk/2014-March/032507.html
你可以按照其指導避免漏露,這裡我不示範。
如要配置開機自動啟動
update-rc.d tor enable
配置iptables:
iptables –F
iptables -t nat –F
允許 ssh 連接到 tor
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 22 -j REDIRECT --to-ports 22
讓 tor 代理做dns 解釋
iptables -t nat -A PREROUTING -i eth1 -p udp --dport 53 -j REDIRECT --to-ports 53
將 從eth1 產生的所有那些SYN標記被設置而FIN和ACK標記沒有設置的包全部轉發到 tor 代理設置的 Transprot 9040 上(可以理解為 tcp所有流量轉發到9040上)
iptables -t nat -A PREROUTING -i eth1 -p tcp --syn -j REDIRECT --to-ports 9040
iptables –t nat -L 列出iptables 的鏈的狀態如下:
如果你可以自行研究設置本機產生的流量都轉發到tor 網絡上,但注意不要轉發vpn連接的流量
這裡,我的建議是:除非你很清楚知道tor 和vpn 所用到的埠,不然我建議是單個埠轉發
比如:
你想轉發dns 解釋到 tor 代理上,可以將/etc/resolv.conf
nameserver 127.0.0.1 (tor 代理在上面已設置成listening 127.0.0.1:53)
你想轉發80埠:
Iptables –t nat –A OUTPUT –p tcp –dport 80 –j REDIRECT –to-prots 9040
轉發53埠:
Iptables –t nat –A OUTPUT -p udp –dport 53 –j REDIRECT --to-ports 53
如些類推 但要注意不要轉發udp 包 到9040 埠,因為tor 代理是不接受udp連接的。
如果想這些規則在linux 重啟後仍然生效:
vim /etc/network/if-pre-up.d/iptables
在這個文件裡添加內容 :
#!/bin/bash
/sbin/iptables-restore < /etc/iptables.rules
為上面文件添加執行權限:
chmod +x /etc/network/if-pre-up.d/iptables
這時,洋蔥路由器就配置完成了
打開你的測試機: 將網卡配成 在Linux裡添加的新的內網網卡
以eth1 作為網關來配置網。
這樣測試機裡的流量是全部轉 發到tor 代理上再出去。
下面是要測試機裡用firefox 不做任何配置接.onion的網:
成功了!要注意的是:你不要做要利用到暗網IP的掃描(像nmap)。你知道的,tor 網絡最重要的特點:隱藏IP。
參考資料:
基於Ubuntu搭建Linux路由器:
http://www.cnblogs.com/arrongao/p/4280522.html
在Ubuntu Linux 上讓tor 成為透明代理
http://www.digitalarmedforces.org/index.php/8-linux/19-how-to-setup-tor-as-a-transparent-proxy-on-ubuntu-linux
tor 透明代理設置:(這個打開一定要連vpn)
https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy
iptables 參數詳解:
http://www.cnblogs.com/arrongao/p/4280522.html
如何用TOR搭建軟路由:
http://www.freebuf.com/articles/others-articles/76229.html