1. 程式人生 > >ProxyChains實現自動新增代理逃避檢測

ProxyChains實現自動新增代理逃避檢測

使用爬蟲爬取網站或者使用掃描器掃描目標時經常會遇到掃描頻率較為頻繁導致IP被封或者限制訪問的情況,這時候我們就需要考慮利用IP代理的方式不斷的變換IP進行爬蟲和掃描,從而逃避目標端的檢測。這裡介紹一款代理工具ProxyChains。

ProxyChains是一個開源代理工具,能夠強制使任何應用的TCP連線使用SOCKS4,SOCKS或者HTTP(S)代理進行連線。首先簡單介紹一下ProxyChains的使用。

Kali中自帶ProxyChains,也可以從https://github.com/rofl0r/proxychains-ng下載安裝。ProxyChains執行的所有配置都在/etc/proxychains.conf中:

在[ProxyList]下面新增代理IP和埠,可以任意新增代理,一行一個記錄。

各配置項用法如下:

dynamic_chain:該配置項能夠通過ProxyList中的每個代理執行流量,如果其中一個代理關閉或者沒有響應,它能夠自動選擇ProxyList中的下一個代理;

strict_chain:改配置為ProxyChains的預設配置,不同於dynamic_chain,也能夠通過ProxyList中的每個代理執行流量,但是如果ProxyList中的代理出現故障,不會自動切換到下一個。

random_chain:該配置項會從ProxyList中隨機選擇代理IP來執行流量,如果ProxyList中有多個代理IP,在使用proxychains的時候會使用不同的代理訪問目標主機,從而使主機端探測流量更加困難。

大致瞭解了proxychains的配置項之後,可以測試一下proxychains使用代理訪問的情況,proxychains使用起來也非常簡單,命令形式為:

proxychains <執行的命令> <命令引數>

接下來可以實踐一下proxychains代理的效果。

首先直接執行sqlmap掃描目標地址,然後在某雲上的WAF看到攔截日誌及源IP:

接著利用proxychains代理sqlmap掃描目標地址,然後在某雲上的WAF上能過看到攔截日誌及源IP已經變成了代理IP:

可以看到攻擊IP已經變成了代理IP,所屬地區也變成了代理IP的地區,試驗成功。

接下來就是如何實現ProxyChains自動新增代理,大致分為以下幾個步驟:

需要有一個提供免費代理的地址;

解析該地址提供的內容獲取代理IP和埠;

將獲取的代理IP和埠加入到proxychains.conf配置檔案的ProxyList配置項中

 

需要注意的是,在使用proxychains代理轉發過程中,如果目標物件為https,那麼需要使用支援SSL/https協議的代理,快代理提供的免費代理均只支援http協議;Proxy List中有支援SSL/HTTPS協議且免費的代理。

第一步:訪問快代理並解析網頁內容獲取代理IP和埠:

第二步:將獲取的代理IP和埠更新寫入ProxyList配置項中:

配置檔案更新成功之後,就可以執行該指令碼看看效果了,出現如下圖結果,代理寫入成功。

至此可以利用該指令碼簡單實現proxychains自動新增代理逃避檢測。