第四章 SSL和Proxy高級選項


在前一章,我們已經學習了HTTP消息如何通過Burp Proxy進行攔截和處理,本章我們將繼續學習HTTPS協議消息的攔截和處理。

HTTPS協議是為了數據傳輸安全的需要,在HTTP原有的基礎上,加入了安全套接字層SSL協議,通過CA證書來驗證服務器的身份,並對通信消息進行加密。基於HTTPS協議這些特性,我們在使用Burp Proxy代理時,需要增加更多的設置,才能攔截HTTPS的消息。

本章包含的主要內容有

  • CA證書的安裝
  • CA證書的卸載
  • Proxy監聽設置
  • SSL直連和隱形代理設置

我們都知道,在HTTPS通信過程中,一個很重要的介質是CA證書,下面就我們一起來看看Burp Suite中CA證書的安裝。

CA證書的安裝

一般來說,Burp Proxy代理過程中的CA主要分為如下幾個步驟(以win7下IE9為例):

1.首先,根據前三章內容的學習,你已配置好Burp Proxy監聽端口和IE的代理服務器設置。其次,你的IE瀏覽器中沒有安裝過Burp Suite的CA證書,如果已經安裝,請先卸載證書。詳細的卸載方法請參考CA證書的卸載章節。

2.以管理員身份,啟動IE瀏覽器,在地址欄輸入http://burp並回車,進入證書下載頁面 

3.點擊上圖所示的證書下載,另存為到本地目錄。

4.點擊瀏覽器上的【工具】菜單,打開【Internet選項】。

 

5.在彈出的證書對話框中,點擊【內容】-【證書】。

 

6.在彈出的證書對話框中,選中【受信任的根證書頒發機構】,點擊【導入】。

 

7.點擊【下一步】,選擇步驟3保存的證書文件,進行下一步操作。

 

8.指定證書的存儲位置,如圖

 

9.點擊【下一步】,直至完成。這時,會提示安全警告,點擊【是】,提示導入完成。

 

10.關閉IE,重啟瀏覽器,CA證書即配置完成。

CA證書的卸載


CA證書的卸載的通常有兩種方式,第一種方式在上一章節CA證書安裝中的第6步,找到需要卸載的證書,點擊【刪除】即可。我們這里主要描述第二種刪除方式,主要是為了解決在第一種方式的基礎上刪除按鈕失效或者證書列表里看不到的證書也一起刪除的方法。

1.首先,我們打開cmd,輸入mmc,或者你在運行輸入框里直接輸入mmc回車,會彈出管理控制台。 

2.點擊【文件】菜單,打開【添加/刪除管理單元】 

3.找到證書,如下圖1,點擊【添加】按鈕,如下圖2

 

4.在彈出的對話框中默認選中【我當前的用戶】,點擊【完成】,一直到結束,這是會在控制台跟節點下多了一個證書的節點。 

5.打開CA證書所在的位置,選擇刪除即可。

 

6.這時,你再返回到IE瀏覽器的證書列表里,則不會再看到被刪除的證書了。

除了IE之外,其他的瀏覽器如FireFox、Chrome、Sarifa等都證書的安裝和卸載基本類似,操作時可以以IE的CA證書安裝作為參考。

Proxy監聽設置


當我們啟動Burp Suite時,默認會監聽本地回路地址的8080端口,除此之外,我們也可以在默認監聽的基礎上,根據我們自己的需求,對監聽端口和地址等參數進行自由設置。特別是當我們測試非瀏覽器應用時,無法使用瀏覽器代理的方式去攔截客戶端與服務器端通信的數據流量,這種情況下,我們會使用自己的Proxy監聽設置,而不會使用默認設置。

  • Proxy監聽設置

當我們在實際使用中,可能需要同時測試不同的應用程序時,我們可以通過設置不同的代理端口,來區分不同的應用程序,Proxy監聽即提供這樣的功能設置。點擊圖中的【Add】按鈕,會彈出Proxy監聽設置對話框,里面有更豐富的設置,滿足我們不同的測試需求。

  

Proxy監聽設置主要包含3塊功能:

 

1.端口和IP綁定設置Binding 綁定的端口port是指Burp Proxy代理服務監聽的端口,綁定IP地址分僅本地回路、所有接口、指定地址三種模式,在滲透測試中,無論你選擇哪種模式,你需要明白一點,當你選擇的非本地回路IP地址時,同局域網內的其他電腦也可以訪問你的監聽地址。

 

 

2.請求處理Request Handling 請求處理主要是用來控制接受到Burp Proxy監聽端口的請求后,如果對請求進行處理的。  

其具體配置可分為:端口的轉發、主機名/域名的轉發、強制使用SSL和隱形代理4個部分。當我們配置了端口的轉發時,所有的請求都會被轉發到這個端口上;如果我們配置了主機或域名的轉發,則所有的請求會轉發到指定的主機或域名上。同時,我們可以指定,通過Burp Proxy的消息是否強制使用SSL,如果設置了此項,則請求若是http協議,經Burp proxy代理后將轉換為https協議。隱形代理主要是用於測試富客戶端應用或者是非瀏覽器代理方式的應用,當我們設置了它,訪問這些應用時,將通過非代理的方式,直接連接Burp Proxy的監聽端口。

 

  1. SSL 證書 這些設置控制呈現給SSL客戶端的服務器SSL證書。可以解決使用攔截代理時出現的一些SSL問題: 1.您可以消除您的瀏覽器的SSL警報,並需要建立SSL例外。其中,網頁加載來自其他域的SSL保護的項目,可以確保這些正確的加載到瀏覽器,而不需要為每個域手動接受代理的SSL證書。 2.可以與該拒絕無效的SSL證書連接到服務器胖客戶機應用程序的工作。 它有下列選項可供設置:

  2. 使用自簽名證書(Use a self-signed certificate ) —— 一個簡單的自簽名SSL證書呈現給您的瀏覽器,它總是會導致SSL警告。
  3. 生成每個主機的CA簽名證書(Generate CA-signed per-host certificates)—— 這是默認選項。在安裝時,Burp創造了一個獨特的自簽名的證書頒發機構(CA)證書,並將此計算機上使用。當你的瀏覽器發出的SSL連接指定主機,Burp生成該主機的SSL證書,由CA證書簽名。您可以安裝Burp的CA證書作為瀏覽器中的受信任的根,從而使每個主機證書沒有任何警報接受。
  4. 生成與特定的主機名CA簽發的證書(Generate a CA-signed certificate with a specific hostname)—— -是類似於前面的選項;不同的是,Burp會生成一個主機證書與每一個SSL連接使用,使用指定的主機名。
  5. 使用自定義證書(Use a custom certificate)—— 此選項可以加載一個特定的證書(在PKCS#12格式)呈現給瀏覽器。如果應用程序使用這需要一個特定的服務器證書(例如,與給定的序列號或證書鏈)的客戶端應該使用這個選項。

SSL直連和隱形代理

SSL直連的設置主要用於指定的目的服務器直接通過SSL連接,而通過這些連接的請求或響應任何細節將在Burp代理攔截視圖或歷史日志中可見。通過SSL連接傳遞可以並不是簡單地消除在客戶機上SSL錯誤的情況下有用。比如說,在執行SSL證書的移動應用。如果應用程序訪問多個域,或使用HTTP和HTTPS連接的混合,然后通過SSL連接到特定的主機問題仍然使您能夠以正常的方式使用Burp的其他方式進行通信。如果啟用自動添加客戶端SSL協商失敗的選項,當客戶端失敗的SSL協議檢測(例如,由於不承認Burp的CA證書),並會自動將相關的服務器添加到SSL直通通過列表中去。其設置界面如下圖所示: 

有時候,在攔截富客戶端軟件時,我們通常需要使用隱形代理。富客戶端軟件通常是指運行在瀏覽器之外的客戶端軟件,這就意味着它本身不具有HTTP代理是屬性。當它進行網絡通信時,客戶端將無法使代理感知或者無法由代理進行通信。在Burp中,我們可以使用隱形代理的方式,對通信內容進行代理或攔截,從而對通信的請求和響應消息進行分析。使用隱形代理通常需要做如下設置(以https://example.com為例): 

1.配置hosts文件,Windows操作系統下的目錄位置Windows/System32/drivers/etc/hosts,而Linux或者Unix下的目錄為/etc/hosts,添加如下行:

127.0.0.1 example.com

2.第一步設置完成之后,我們需要添加一個新的監聽來運行在HTTP默認的80端口,如果通信流量使用HTTPS協議,則端口為443。  

3.如果是HTTPS協議的通信方式,我們需要一個指定域名的CA證書。

  

4.接着,我們需要把Burp攔截的流量轉發給原始請求的服務器。這需要在Options->Connections->Hostname Resolution 進行設置。因為我們已經告訴了操作系統,example.com的監聽地址在127.0.0.1上,所以我們必須告訴Burp,將example.com的流量轉發到真實的服務器那里去。  

5.通過這樣的配置,我們就可以欺騙富客戶端軟件,將流量發送到Burp監聽的端口上,再由Burp將流量轉發給真實的服務器。

***微信掃一掃,關注“python測試開發圈”,了解更多測試教程!***


免責聲明!

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



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