1. 程式人生 > >帶頭大哥777:“黑客”必用兵器之“網路抓包工具”

帶頭大哥777:“黑客”必用兵器之“網路抓包工具”

“黑客”必用兵器之“網路抓包工具”

在之前的文章裡講到過網路通訊原理、網路協議埠、漏洞掃描等網路相關知識,很多網友看到這些文章以後都說寫的不錯,但是閱讀後感覺還是做不到深刻理解,今天我就教大家一個工具,有了這個工具,你就可以驗證之前學習過的網路知識了。"這是一個什麼工具呢?這麼神奇"其實我相信大家很多人都聽說過或者使用過,而且這個工具也是黑客或者從事網路工程的工作者必用的工具,它就是"網路抓包工具"。

今天我們就詳細介紹一下網路抓包的目的是什麼?常用的網路抓包工具有哪些?網路抓包工具的使用方法和技巧!

一、 網路抓包目的是什麼?

官方定義:抓包(packet capture)就是將傳送與接收的進行截獲、重發、編輯、轉存等操作,也用來檢查網路安全。抓包也經常被用來進行資料擷取等。

對於白帽子黑客來說抓包的目的就是分析網路報文、定位網路介面問題、分析應用資料介面、學習網路協議,使用抓包工具可以直觀的分析出網路資料 。

對於黑帽子黑客來說抓包的目的就更明確了,就是為了尋找漏洞了,黑客首先通過抓包截獲資料,提取有價值資料例如資料包裡的賬號密碼、資料包裡的應用資訊。截獲這些資料後可以重新編輯,更改裡邊的價值資訊再轉存回去,例如新聞曝光過上海警方就破獲了一起特大網路盜竊案,僅僅在半天的時間裡,黑客就非法體現金額高達千萬,為什麼黑客會在這麼短的時間裡就能非法提現這麼多錢呢?原來,黑客尋找到了某理財APP的系統漏洞,利用網路抓包的形式非法修改APP傳給後臺的資料資訊,比如黑客充值1元,利用抓包,把1元改為1000或者更高的資料傳給伺服器,實際他只充值了1元而已,傳給伺服器的資料被惡意修改過。

這裡還是需要提醒小夥伴們一次,咱們學習的目的一定是為了掌握這門技術,去更好的服務於生活,為社會能夠創造正向價值,千萬不要走偏往犯罪的道路前行。

二、常用的網路抓包工具有哪些?

1、Wireshark

Wireshark 在Windows、mac、linux都有自己的版本,可謂圖形化抓包軟體的最為流行的一種,針對黑客,網路管理員和安全工作者都是必備之物。

網路管理員使用Wireshark來檢測網路問題,網路安全工程師使用Wireshark來檢查資訊安全相關問題,開發者使用Wireshark來為新的通訊協定除錯,普通使用者使用Wireshark來學習網路協定的相關知識。

2、tcpdump

tcpdump 可以抓所有層的資料,功能十分強大,tcpdump Linux作為網路伺服器,特別是作為路由器和閘道器時,資料的採集和分析是不可少的。TcpDump是Linux中強大的網路資料採集分析工具之一。用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據使用者的定義對網路上的資料包進行截獲的包分析工具。作為網際網路上經典的的系統管理員必備工具,tcpdump以其強大的功能,靈活的擷取策略,成為每個高階的系統管理員分析網路,排查問題等所必備的工具之一。

3、httpwatch

HttpWatch是強大的網頁資料分析工具.整合在Internet Explorer工具欄.包括網頁摘要.Cookies管理.快取管理.訊息頭髮送/接受.字元查詢.POST 資料和目錄管理功能.報告輸出.HttpWatch 是一款能夠收集並顯示深層資訊的軟體。它不用代理伺服器或一些複雜的網路監控工具,就能夠在顯示網頁同時顯示網頁請求和迴應的日誌資訊。甚至可以顯示瀏覽器快取和IE之間的交換資訊。整合在Internet Explorer工具欄。

4、Burpsuite

目前Web安全滲透,是必須的工具,沒有之一,功能十分強大,Burp Suite 是用於攻擊web 應用程式的整合平臺。它包含了許多工具,併為這些工具設計了許多介面,以促進加快攻擊應用程式的過程。所有的工具都共享一個能處理並顯示HTTP 訊息,永續性,認證,代理,日誌,警報的一個強大的可擴充套件的框架

5、Fiddler

目前最常用的web 報文滲透工具,功能十分強大,可以最為本地代理,報文重放等等。Fiddler是一個http協議除錯代理工具,它能夠記錄並檢查所有你的電腦和網際網路之間的http通訊,設定斷點,檢視所有的"進出"Fiddler的資料(指cookie,html,js,css等檔案,這些都可以讓你胡亂修改的意思)。 Fiddler 要比其他的網路偵錯程式要更加簡單,因為它不僅僅暴露http通訊還提供了一個使用者友好的格式。

6、Charles

Charles支援抓去http、https協議的請求,不支援socket。使用情況和fiddler基本大同小異。也是很常用的抓包工具。

三、 網路抓包工具的使用方法和技巧

由於常用的抓包工具眾多,使用方法也很相似這裡我只介紹其中大家最常用的Wireshark網路抓包工具的使用方法。

工具,它是功能最全面使用者最多的抓包工具。Wireshark是一個網路封包分析軟體。網路封包分析軟體的功能是擷取網路封包,並儘可能顯示出最為詳細的網路封包資料。Wireshark使用WinPCAP作為介面,直接與網絡卡進行資料報文交換。

Wireshark基礎架構如下:

“黑客”必用兵器之“網路抓包工具”

 

Wireshark的官方下載網站:

Wireshark是開源軟體,可以跨平臺使用

具體使用方法如下:

1、 介面視窗介紹

“黑客”必用兵器之“網路抓包工具”

 

1.1WireShark 主要分為這幾個介面

1) Display Filter(顯示過濾器), 用於過濾

2) Packet List Pane(封包列表), 顯示捕獲到的封包, 有源地址和目標地址,埠號。 顏色不同,代表

3) Packet Details Pane(封包詳細資訊), 顯示封包中的欄位

4) Dissector Pane(16進位制資料)

5) Miscellanous(位址列,雜項)

1.2常用按鈕從左到右的功能依次是:

1) 列出可用介面。

2) 抓包時需要設定的一些選項。一般會保留最後一次的設定結果。

3) 開始新的一次抓包。

4) 暫停抓包。

5) 繼續進行本次抓包。

6) 開啟抓包檔案。可以開啟之前抓包儲存後的檔案。不僅可以開啟wireshark軟體儲存的檔案,也可以開啟tcpdump使用-w引數儲存的檔案。

7) 儲存檔案。把本次抓包或者分析的結果進行儲存。

8) 關閉開啟的檔案。檔案被關閉後,就會切換到初始介面。

9) 過載抓包檔案。

2、點選網路介面,獲取報文

點選介面名稱之後,就可以看到實時接收的報文。Wireshark會捕捉系統傳送和接收的每一個報文。如果抓取的介面是無線並且選項選取的是混合模式,那麼也會看到網路上其他報文。

上端面板每一行對應一個網路報文,預設顯示報文接收時間(相對開始抓取的時間點),源和目標IP地址,使用協議和報文相關資訊。點選某一行可以在下面兩個視窗看到更多資訊。"+"圖示顯示報文裡面每一層的詳細資訊。底端視窗同時以十六進位制和ASCII碼的方式列出報文內容。

“黑客”必用兵器之“網路抓包工具”

 

需要停止抓取報文的時候,點選左上角的停止按鍵。

“黑客”必用兵器之“網路抓包工具”

 

色彩標識:

進行到這裡已經看到報文以綠色,藍色,黑色顯示出來。Wireshark通過顏色讓各種流量的報文一目瞭然。比如預設綠色是TCP報文,深藍色是DNS,淺藍是UDP,黑色標識出有問題的TCP報文——比如亂序報文。

“黑客”必用兵器之“網路抓包工具”

 

報文樣本:

比如說你在家安裝了Wireshark,但家用LAN環境下沒有感興趣的報文可供觀察,那麼可以去Wireshark wiki下載報文樣本檔案。

開啟一個抓取檔案相當簡單,在主介面上點選Open並瀏覽檔案即可。也可以在Wireshark裡儲存自己的抓包檔案並稍後開啟。

“黑客”必用兵器之“網路抓包工具”

 

過濾報文:

如果正在嘗試分析問題,比如打電話的時候某一程式傳送的報文,可以關閉所有其他使用網路的應用來減少流量。但還是可能有大批報文需要篩選,這時要用到Wireshark過濾器。

最基本的方式就是在視窗頂端過濾欄輸入並點選Apply(或按下回車)。例如,輸入"dns"就會只看到DNS報文。輸入的時候,Wireshark會幫助自動完成過濾條件。

“黑客”必用兵器之“網路抓包工具”

 

也可以點選Analyze選單並選擇Display Filters來建立新的過濾條件。

“黑客”必用兵器之“網路抓包工具”

 

另一件很有趣的事情是你可以右鍵報文並選擇Follow TCP Stream。

“黑客”必用兵器之“網路抓包工具”

 

你會看到在伺服器和目標端之間的全部會話。

“黑客”必用兵器之“網路抓包工具”

 

關閉視窗之後,你會發現過濾條件自動被引用了——Wireshark顯示構成會話的報文。

“黑客”必用兵器之“網路抓包工具”

 

檢查報文:

選中一個報文之後,就可以深入挖掘它的內容了。

也可以在這裡建立過濾條件——只需右鍵細節並使用Apply as Filter子選單,就可以根據此細節建立過濾條件。

“黑客”必用兵器之“網路抓包工具”

 

3、應用Wireshark觀察基本網路協議

wireshark與對應的OSI七層模型

“黑客”必用兵器之“網路抓包工具”

 

TCP報文:TCP/IP通過三次握手建立一個連線。這一過程中的三種報文是:SYN,SYN/ACK,ACK。這個我之前的文章有講過就不在陳述過程了,接下來用抓包工具闡述以下過程。

首先開啟wireshark, 開啟瀏覽器輸入一個網址,然後在wireshark中輸入http過濾, 然後選中GET /tankxiao HTTP/1.1的那條記錄,右鍵然後點選"Follow TCP Stream",這樣做的目的是為了得到與瀏覽器開啟網站相關的資料包,將得到如下圖

“黑客”必用兵器之“網路抓包工具”

 

圖中可以看到wireshark截獲到了三次握手的三個資料包。第四個包才是HTTP的, 這說明HTTP的確是使用TCP建立連線的。

第一次握手資料包

客戶端傳送一個TCP,標誌位為SYN,序列號為0, 代表客戶端請求建立連線。 如下圖

“黑客”必用兵器之“網路抓包工具”

 

第二次握手的資料包

伺服器發回確認包, 標誌位為 SYN,ACK. 將確認序號(Acknowledgement Number)設定為客戶的I S N加1以.即0+1=1, 如下圖

“黑客”必用兵器之“網路抓包工具”

 

第三次握手的資料包

客戶端再次傳送確認包(ACK) SYN標誌位為0,ACK標誌位為1.並且把伺服器發來ACK的序號欄位+1,放在確定欄位中傳送給對方.並且在資料段放寫ISN的+1, 如下圖:

“黑客”必用兵器之“網路抓包工具”

 

就這樣通過了TCP三次握手,建立了連線。

ARP & ICMP:

開啟Wireshark抓包。開啟Windows控制檯視窗,使用ping命令列工具檢視與相鄰機器的連線狀況。

“黑客”必用兵器之“網路抓包工具”

 

停止抓包之後,Wireshark如下圖所示。ARP和ICMP報文相對較難辨認,建立只顯示ARP或ICMP的過濾條件。

“黑客”必用兵器之“網路抓包工具”

 

ARP報文:

地址解析協議,即ARP(Address Resolution Protocol),是根據獲取的一個。其功能是:將ARP請求到網路上的所有主機,並接收返回訊息,確定目標的實體地址,同時將IP地址和硬體地址存入本機ARP快取中,下次請求時直接查詢ARP快取。

最初從PC發出的ARP請求確定IP地址192.168.1.1的MAC地址,並從相鄰系統收到ARP回覆。ARP請求之後,會看到ICMP報文。

ICMP報文:

網路控制訊息協定(Internet Control Message Protocol,ICMP)用於網路中傳送控制訊息,提供可能發生在通訊環境中的各種問題反饋,通過這些資訊,令管理者可以對所發生的問題作出診斷,然後採取適當的措施解決。

PC傳送echo請求,收到echo回覆如上圖所示。ping報文被mark成Type 8,回覆報文mark成Type 0。

如果多次ping同一系統,在PC上刪除ARP cache,使用如下ARP命令之後,會產生一個新的ARP請求。

HTTP:

HTTP協議是目前使用最廣泛的一種基礎協議,這得益於目前很多應用都基於WEB方式,實現容易,軟體開發部署也簡單,無需額外的客戶端,使用瀏覽器即可使用。這一過程開始於請求伺服器傳送網路檔案。

“黑客”必用兵器之“網路抓包工具”

 

從上圖可見報文中包括一個GET命令,當HTTP傳送初始GET命令之後,TCP繼續資料傳輸過程,接下來的連結過程中HTTP會從伺服器請求資料並使用TCP將資料傳回客戶端。傳送資料之前,伺服器通過傳送HTTP OK訊息告知客戶端請求有效。如果伺服器沒有將目標傳送給客戶端的許可,將會返回403 Forbidden。如果伺服器找不到客戶端所請求的目標,會返回404。

如果沒有更多資料,連線可被終止,類似於TCP三次握手訊號的SYN和ACK報文,這裡傳送的是FIN和ACK報文。當伺服器結束傳送資料,就傳送FIN/ACK給客戶端,此報文表示結束連線。接下來客戶端返回ACK報文並且對FIN/ACK中的序列號加1。這就從伺服器端終止了通訊。要結束這一過程客戶端必須重新對伺服器端發起這一過程。必須在客戶端和伺服器端都發起並確認FIN/ACK過程。