【技術分享】BurpSuite 代理設置的小技巧


http://p1.qhimg.com/t01eec3579ca4ae458c.jpg

 

作者:三思之旅

預估稿費:300RMB

投稿方式:發送郵件至linwei#360.cn,或登陸網頁版在線投稿

 

在Web滲透測試過程中,BurpSuite是不可或缺的神器之一。BurpSuite的核心是代理Proxy,通常情況下使用BurpSuite的套路是:瀏覽器設置BurpSuite代理——>訪問Web應用程序——>BurpSuite抓包分析。本人從事Web滲透測試尚不足一年,這期間在代理設置過程中踩到過一點『小坑』,現在將我踩過的『小坑』總結一下。本文主要面對新人朋友,老司機們請不吝賜教~

 

0x01 一般情形

最一般的情形是針對采用HTTP協議的Web應用程序的滲透測試。這種情況下,直接設置瀏覽器的代理服務器為BurpSuite即可,默認為127.0.0.1:8080。

http://p3.qhimg.com/t0154ae3d36c4d9f7ba.png

當然,直接更改瀏覽器的代理服務器設置比較繁瑣,更好的辦法是使用瀏覽器插件,預先設置好代理方案,然后根據實際情況一鍵切換。Chrome推薦使用Proxy SwitchyOmega插件:

http://p1.qhimg.com/t01ac68f9161aefa53f.png

Firefox推薦使用FoxyProxy

http://p3.qhimg.com/t01ef8e6039b2be1a61.png

至於IE瀏覽器,說實在話用得很少,不建議用於滲透測試。一方面,IE不支持擴展插件;另一方面,IE的代理設置也就是系統全局代理,一旦更改了IE的代理,除了那些自帶代理設置的程序外(如安裝了Proxy SwitchyOmega擴展的Chrome瀏覽器),其他程序請求數據都要走代理,給我們的測試帶來很大不便。但是,如果你非要用IE的話(比如針對某些不支持Chrome和Firefox的網銀系統進行滲透測試),也有比較方便的解決辦法,容我先賣個關子,后文會有說明。

 

0x02 HTTPS網站的情形

許多人在第一次使用BurpSuite抓取HTTPS網站報文時都會遇到『您的連接不是私密連接』(Chrome)、『此網站的安全證書存在問題』(IE)或者『您的連接不安全』(Firefox)的問題,這時候怎么辦?

http://p3.qhimg.com/t01269e5e776f60685e.png

這個問題其實很簡單,安裝一個證書即可解決,想知道原因的可以自行Google一下HTTPS原理就能夠得到答案。

首先,瀏覽器設置好BurpSuite代理服務器后,訪問http://burp,然后點擊右上角的CA Certificate,這時會自動下載一個名為cacert.der的證書文件。

http://p6.qhimg.com/t0101b994d31fa01995.png

打開這個證書文件,根據提示安裝這個證書,基本上是一路『下一步』,唯一需要注意的是,在『證書存儲』這一步選擇將證書存儲在『受信任的根證書頒發機構』。

http://p4.qhimg.com/t015f68adefd4e68e32.png

證書安裝好之后,Chrome和IE就能夠正常訪問HTTPS網站了(由於Google一直在推全網HTTPS,Chrome對證書要求很嚴格,我們安裝的證書不是權威機構頒發的,因此地址欄會一直提示『不安全』,但是不影響使用)。

不過,如果你使用Firefox瀏覽器的話,還需要增加一步,即將證書導入到Firefox中。打開Firefox的『選項——高級——證書』,然后點擊『查看證書』按鈕打開『證書管理器』。

http://p6.qhimg.com/t01e4b1a1ef763a3c69.png

在『證書管理器』中,點擊下方的『導入』按鈕,導入之前下載的cacert.der證書文件,並且在彈出的『下載證書』對話框中,勾選3個『信任使用此CA標識的……』復選框,最后點擊『確定』即可。

http://p3.qhimg.com/t017931c4113d47758e.png

http://p1.qhimg.com/t017daf61ff48cd94b8.png

這時候,Firefox也可以正常使用了。

 

0x03 移動端流量抓取

有時候,我們還需要對移動APP進行抓包分析,這時候該怎么辦?

其實很簡單,兩步即可解決。

第一步,在BurpSuite的Proxy Listeners中,選中當前在用的代理,點擊左側的Edit按鈕,在彈出的對話框中,將Bind to address選項設置為All interfaces。

http://p9.qhimg.com/t0180e31a478096d6d0.png

第二步,手機和PC連接同一Wifi,打開手機Wifi設置,設置HTTP代理服務器為BurpSuite所在的PC的IP地址,端口為BurpSuite的代理端口。以iPhone為例,其設置如下圖所示。

http://p4.qhimg.com/t01148c3882850e2a00.png

然,如果APP走的是HTTPS通道,仍然需要安裝證書才能正常訪問,方法同前,不再贅述。

 

0x04 多重代理的情形

在某些網絡環境中,訪問目標網站需要走代理。比如說,為了訪問google.com,我已經給瀏覽器設置了SS代理(默認127.0.0.1:1080),現在我想對google.com進行滲透測試,那么該怎么設置瀏覽器代理?這時候不能簡單的把瀏覽器代理設置為BurpSuite,這樣雖然可以進行抓包,但是沒有了SS的幫助,我們是無法訪問google.com的,抓包也就沒有意義了。這時候該怎么辦?

在這種情況下,我們必須借助代理鏈了。

顧名思義,代理鏈就一系列的代理形成的鏈條。像剛才那種情形,我們首先設置瀏覽器的代理為BurpSuite以便能夠抓包;然后為BurpSuite再設置一個上游代理即SS。這樣訪問google.com時,請求數據先經過BurpSuite,於是可以進行抓包了;然后再流向SS,最后經過SS服務器到達google.com。服務器端返回的響應則剛好相反。通過這個BurpSuite——SS的代理鏈,我們就解決了本節開頭所描述的問題。

作為一個神器,BurpSuite是具備這個功能的。在BurpSuite的User options下的Connections頁面中,有『Upstream Proxy Servers』和『SOCKS Proxy』這兩個配置項,都是跟代理鏈相關的。接下來逐一進行說明。

http://p4.qhimg.com/t018de03332f97234b7.png

1. Upstream Proxy Servers

在該設置項中,可以設置多個上游代理服務器規則,滿足規則的請求將被發送至相應的代理服務器。只說概念過於無聊,還是以google.com為例進行說明。

為了對google.com進行抓包分析,我們首先要設置瀏覽器的代理為BurpSuite,這一點是毫無疑問的。為了能正常訪問google.com,還需要設置BurpSuite的上流代理為SS(127.0.0.1:1080)。點擊Upstream Proxy Servers列表框左側的Add按鈕,打開『Edit upstream proxy rule』對話框。這里一共有8個設置項,一般情況下只需關注前4個:

Destination host:這里填入目標網站域名或者IP,支持通配符(*表示0個或者任意個字符,?表示除點號之外的任意一個字符)。在本例中,我們可以填入*.google.com。

Proxy host:填入SS代理服務器的IP地址,即127.0.0.1。如果為空表示直接連接。

Proxy port:填入SS的代理地址,即和1080。

Authentication type:這里選擇認證類型,由於SS本地代理無需認證,這是選擇None。

如果Authentication type為None,則接下來的4項內容無需理會,否則需要根據實際情況設置以下4項內容。

Username:用戶名。

Password:密碼。

Domain:域。僅用於NTLM認證類型。

Domain hostname:域主機名。僅用於NTLM認證類型。

設置內容如下圖所示,最后點擊OK即可。

http://p9.qhimg.com/t0133616c7f458a9bb8.png

這時候你會發現google.com已經能夠訪問了,並且BurpSuite中也成功地抓取到了相應的請求報文。

你可以同時設置多個Upstream Proxy Servers,在使用過程中,BurpSuite會按順序將請求的主機與Destination host中設置的內容進行比較,並將請求內容發送至第一個相匹配的Proxy server。因此,Proxy Server的順序很重要,講究個先來后到!

2. SOCKS Proxy

與Upstream Proxy Servers的作用類似,SOCKS Proxy的功能也是將請求內容發送至相應的代理服務器。不同之處在於,SOCKS Proxy作用於TCP協議層,因此如果設置了該項,那么所有的請求數據都會被發送至SOCKS代理服務器。所以,SOCKS Proxy的設置更簡單。同樣以google.com為例,先在下方的輸入框中依次填入SOCKS代理服務器的IP、端口(如果SOCKS代理服務器需要認證,還需要填寫用戶名和密碼),然后勾選Use SOCKS proxy即可。

http://p1.qhimg.com/t0199a4ad43cb2d41ce.png

需要注意的一點是,如果同時設置了Upstream Proxy Servers和SOCKS Proxy,則根據規則應該發送至上游代理的請求將會通過SOCKS Proxy發送。

 

0x05 被測客戶端不支持代理設置的情形

有時候,我們想對電腦上的某客戶端進行抓包分析,然而這個客戶端並沒有代理設置的功能,怎么辦?如果直接設置系統代理當然也是可以的,但是這樣一來所有程序的流量都要經過BurpSuite,一方面有可能影響非測試軟件的使用;另一方面,BurpSuite中非測試軟件的請求記錄過多也影響我們的分析測試。有沒有更好的解決方案?

答案是肯定的,這時候就需要Proxifier登場了。Proxifier是什么?且看官網的說明:

Proxifier allows network applications that do not support working through proxy servers to operate through a SOCKS or HTTPS proxy and chains.

簡單的說,使用Proxifier能夠為那些本身不能設置代理的軟件設置SOCKS或者HTTPS代理(鏈)。Proxifier的體積雖小,但功能卻十分強大,除了有Windows版之外,還有Mac版的。因此,非常值得關注。

還是通過實例進行說明。有一次,需要對某微信公眾號進行滲透測試,有些微信公眾號的鏈接復制到瀏覽器中可以直接打開,但是這個公眾號做了限制,只能在微信中打開,即使改了UA也不行。

http://p8.qhimg.com/t017b1d08569ab7bc7e.png

微信網頁版中只能看到公眾號發的文章,而不能進行交互。設置手機代理倒是可以進行測試,但是一邊在手機上操作、一邊在PC上抓包很不方便,而且容易給領導一種一直在玩手機的錯覺……微信PC版功能倒是挺全,然而卻不能設置代理!

怎么辦?貌似山窮水盡了。最后寄希望於Google,經過一番搜索,直到Proxifier的出現,總算柳暗花明!言歸正傳,接下來看看Proxifier怎么玩。

Proxifier的界面很簡潔,我們重點關注其中的兩個功能,即Proxy Servers和Profication Rules。工具欄中最左側的兩個圖標分別對應這兩個功能。

http://p3.qhimg.com/t019658c12350963f7c.png

首先點擊工具欄第一個圖標,打開Proxy Servers對話框。Proxy Servers對話框分為上下兩部分,上半部分用於設置代理服務器,下半部分用於設置代理鏈。

http://p3.qhimg.com/t01c4cb2fc4c07edc2f.png

1. 代理服務器設置

我們先講講代理服務器設置。點擊Add按鈕,增加一個代理服務器,填入相應的代理服務器地址和端口,這里填入BurpSuite的代理127.0.0.1:8080;Protocol中選擇HTTPS;點擊Advanced按鈕,設置一個Custom Label以方便區分。

http://p2.qhimg.com/t0184f72ae4fe7cdd2e.png

設置完成之后,可以點擊下方的Check按鈕測試一下代理是否設置成功。如果出現下圖所示的Proxy is ready to work with Proxifier!說明代理設置成功。不過默認的用於測試的目標網站是www.google.com,很有可能出現誤判,建議點擊右上角的Test Settings按鈕將Target host更改為不掛代理也可正常訪問的網站。

http://p9.qhimg.com/t01ec7e49800ce0480a.png

Proxy Server設置完成之后會提示你尚未設置當前啟用的代理服務器,是否要進入規則設置,點擊『是』即可進行代理規則設置。也可以點擊工具欄第二個圖標進入『Proxification Rules』對話框。

http://p7.qhimg.com/t0196410bf0775713d8.png

默認有兩條直連的規則。點擊左下方的Add按鈕,進入具體的規則設置頁面。

http://p6.qhimg.com/t0104f6ab068fe48b32.png

設置內容並不復雜,一共五個設置項:

Name:可任意設置,建議設置有意義的名稱以方便使用。

Applications:設置代理的應用,此處設置的是微信的主程序wechat.exe。

Target hosts:設置訪問哪些網站走代理,根據實際情況填寫。

Target ports:設置訪問目標網站的哪些端口才走代理,根據實際情況填寫即可。

Action:這里選擇上一步設置的代理服務器即可。除了自定義的代理服務器外,這里還有Direct和Block的選項,分別是直連和阻止連接,說明Proxifier還可以有選擇的屏蔽某些站點,在某些情況下還是很有用的。

http://p5.qhimg.com/t0189e24578b1c08658.png

規則設置好之后,可點擊規則列表框右側的方向按鈕,更改規則的順序。和BurpSuite的Upstream Proxy Servers一樣,這里也講究個先來后到,所以當前在用的規則越靠前越好。如果你設置好代理及規則之后不起作用,可以到這里看看順序是不是沒有調整好。

http://p4.qhimg.com/t013c4b6dc0ee061dd7.png

一切設置就緒,別忘了點擊OK按鈕保存。這時候,在PC版的微信中對目標公眾號進行相應的操作與訪問,BurpSuite就能夠抓取到HTTP報文了。同時,在Proxifier中能夠看到連接狀態與日志。(PS:我發現每次使用Proxifier一開始總會出錯,過幾秒鍾就正常了,不知道啥原因?)

http://p7.qhimg.com/t01f6d13302299ed396.png

回到本節開頭的那個問題,對於那些無法設置代理的客戶端程序,可以使用Proxifier為其設置代理,進而使用BurpSuite等工具抓包分析。此外,如果將Proxification Rule中的Application設置為IE瀏覽器,即可選擇性地將目標站點的HTTP請求發送至BurpSuite,這就解決了使用IE進行滲透測試時代理設置不方便的問題。

2. 代理鏈設置

接下來說一說Proxifier的代理鏈功能。為了實現代理鏈,首先需要設置多個代理(在Proxifier中,僅有一個代理服務器的代理鏈也是允許的,但那沒什么意義)。還拿google.com的例子進行說明,我們需要兩個代理:BurpSuite(127.0.0.1:8080)和SS(127.0.0.1:1080)。先在Proxy Servers中增加一個SS(127.0.0.1:1080)的SOCKS5代理服務器。然后點擊下方右側的Create按鈕,新建一個代理鏈,名稱隨意,比如BurpSuite->SS。最后用鼠標依次將上方的BurpSuite和SS代理服務器拖到下方即可。注意,這里的順序也很重要。

http://p2.qhimg.com/t01eb5cc5f483f23183.png

點擊Create按鈕下方的Type按鈕可以設置代理鏈的類型,一共有3種類型的代理鏈:

Simple Chain:簡單類型,請求數據從上到下依次經過各代理服務器,這個是默認選項。

Redundancy:冗余類型,如果第一個代理服務器無法連接,則嘗第二個,以此類推。

Load Balancing:負載均衡類型,請求數據會隨機地發送到列表中的各個代理服務器。

http://p3.qhimg.com/t0103d3053c80d54522.png

按照我們的需求,需要選擇默認的Simple Chain。有了代理鏈,接下來仍然需要設置代理規則,設置方法同前,只不過在Action中選擇剛才設置的代理鏈即可。

BurpSuite自帶的Upstream Proxy Servers和SOCKS Proxy完全可以解決google.com的問題,這里僅僅是以此為例進行說明。Proxifier的代理鏈功能十分強大,至於怎么用就看大家的腦洞了~

 

0x05 結束語

本文總結了我在使用BurpSuite過程中所學會一點關於代理設置的小技巧。個人感覺平時在使用BurpSuite的過程中,僅僅用到了一小部分功能。今后應該抽空多研究一下自帶的幫助文檔,也希望大家多分享相關的技巧,大家共同進步!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM