0x01 基本原理爬蟲伺服器的環境配置(懂得的可以不看)

0x01 基本原理爬蟲伺服器的環境配置(懂得的可以不看)

來自專欄 暗網威脅情報從入門到放棄

0x00 前言

先說句抱歉,拖了四個月沒更新,主要是因為這四個月出現了太多的大事兒,首先我已經從數字廠離職到外賣廠了;其次上周和三個小夥伴代表DEFCON Group China到歐洲進行了為期一周的信息安全技術的交流,同時也準備了一個presentation分享;接著是幫小弟們弄DEFCON GROUP 0571的議題材料和技術細節;緊接著就是答應某童鞋幫他們出一份有關威脅情報運營和研究的公開課程,現在正在準備ppt和稿子的階段;最後就是內部培訓和自己的日常工作。所以這四個月大家能看到我的產出實際上是非常的少,再次說句抱歉。

很多朋友問這個是不是還沒開始就已經放棄了,坦白的說當初是有這種想法,但是裝出去的逼總是要還回來的,所以本人並不打算放棄,只是更新的頻率會慢一些,一方面是沒時間,另一方面是工作原因,畢竟寫技術的articles只是個副業,本身也沒有抱著寫article掙大錢的想法。廢話說的有點多了,我們來繼續正題吧。

0x01 TOR基礎

其實大家對tor這個東西應該有一個比較清楚的認識了,Tor的全稱是「The Onion Router」,號稱是「An anonymous Internet communicaton system」。它針對現階段大量存在的流量過濾、嗅探分析等工具,在JAP之類軟體基礎上改進的,支持Socks5,並且支持動態代理鏈(通過Tor訪問一個地址時,所經過的節點在Tor節點群中隨機挑選,動態變化,由於兼顧速度與安全性,節點數目通常為2-5個),因此難於追蹤,有效地保證了安全性。另一方面,Tor 的分散式伺服器可以自動獲取,因此省卻了搜尋代理伺服器的精力。我們可以用一張圖來表示Tor的連接建立過程(圖片源自於百度搜索):

a)暗網伺服器首先選擇3個介紹點(Tor節點)告知它們網站的公鑰。與這3個介紹點的連接並不是直連,而是通過Tor通信鏈路,所以介紹點不知道暗網伺服器地址。

b)暗網伺服器組裝自己的描述符,描述符包括公鑰、3個介紹點,接著用私鑰做簽名上傳到一個分散式的哈希表(實際上就是目錄伺服器),並且描述符與暗網地址是一個一對一的對應關係,暗網地址(後綴是onion的域名)是通過公鑰隨機生成的,可通過地址找到對應的描述符從而獲取到地址。

c)客戶端得知了一個後綴為onion地址,建立了Tor通信鏈路去訪問Tor目錄伺服器並獲取對應的描述符、公鑰等信息。同時客戶端會隨機選擇一個Tor伺服器節點作為「會合點」與之建立3 hops的Tor通信鏈路,並告訴通信鏈路一個一次性的會話密鑰。

d)客戶端組裝一個介紹信息(包含會合點的IP地址和一次性密鑰),用獲取的該網站公鑰進行加密,通過Tor通信鏈路發送此信息給一個介紹點,由介紹點轉發請求到.onion網站。由於通過Tor通信鏈路發送信息,因此客戶端地址匿名。

e)暗網服務收到介紹信息後用自己保留的網站私鑰解密得到會合點地址和一次性密鑰。並且創建一個3跳的Tor通信鏈路到會合點同時攜帶一次性密鑰。

f)會合點驗證一次性密鑰後通知客戶端連接建立成功。然後客戶端和暗網伺服器就可以通過各自的Tor通信鏈路連接到會合點進而通信。客戶端與暗網伺服器共經過6個Tor節點。

這樣我們就大概了解了tor通信的內容,接下來我們詳細了解一下Tor的協議。

0x02 TOR協議分析

Tor的協議其實有一點複雜,如圖所示(圖來自於網路):

其實由於這一部分需要有個大佬來進行講解,於是乎我找到了一篇算是比較全的Tor協議分析的文章,Tor源碼分析七 -- 握手協議 - CSDN博客,大家可以看這裡

0x03 TOR爬蟲環境配置

因為我們需要通過爬蟲來獲取頁面的數據,所以我們需要搭配一個用來爬取數據的伺服器,但是由於中國網路的原因,你懂得,所以我們需要配置一下相關的伺服器,用來爬相關的數據。

首先我們需要一台Ubuntu的伺服器,一台Shadowsocks的伺服器和一些時間,你懂得。

我們首先先來配置shadowsocks的環境,首先我們需要把許可權切換到root下,使用apt安裝shadowsocks,執行命令:

root@ubuntu:~# apt-get install shadowsocks

然後我們需要編輯Shadowsocks的信息,執行命令:

root@ubuntu:~# vim /etc/shadowsocks/config.json

通過修改配置文件,然後保存:

配置文件修改完畢後我們可以通過以下命令確認:

root@ubuntu:~# sslocal -c /etc/shadowsocks/config.json -q startroot@ubuntu:~# curl --socks5 127.0.0.1:1080 http://www.baidu.com

如果有回應,就證明通了

這個時候我們在進行Tor的配置,首先是安裝Tor,緊接著編輯配置文件

root@ubuntu:~# apt-get install torroot@ubuntu:~# vim /etc/tor/torrc

我在這裡就填寫如下信息了:

緊接著我們啟動Tor的服務,使用如下命令:

root@ubuntu:~# tor -f /etc/tor/torrc

如果沒有報錯的話,就證明成功了,比如下面這樣

緊接著我們就應該去安裝和配置privoxy用來訪問Tor

root@ubuntu:~# apt-get install privoxyroot@ubuntu:~# vim /etc/privoxy/config

添加forward-socks5t值為127.0.0.1:9050用來訪問tor也就是forward-socks5t / 127.0.0.1:9050 . ,然後利用下面的命令啟用privoxy

root@ubuntu:~# privoxy --user privoxy /etc/privoxy/config

如果沒有報錯則證明成功。我們就可以測試一下了:

root@ubuntu:~# w3m https://check.torproject.org/

如果返回Congratulations. This browser is configured to use Tor.,說明你成功了。

0x03 小結

這一篇確實有點水,但是畢竟九層之台起於壘土,配環境往往是干一件事情的第一步,作為一個新手,一上來配環境確實踩了很多的坑,所以還望大家諒解。


推薦閱讀:

TAG:暗網路 | 爬蟲計算機網路 | 網路安全 |