1. 程式人生 > >Wireshark資料抓包分析之FTP協議

Wireshark資料抓包分析之FTP協議

實驗步驟一 配置FTP伺服器,並在測試者機器上登入FTP伺服器

在區域網環境中,我們使用一個小工具來(Quick Easy FTP Server)實現FTP伺服器。

配置Quick Easy FTP Server軟體

雙擊桌面的Quick Easy FTP Server,如下圖


如上圖,可以建立匿名的,但是匿名就沒有密碼,這裡我們建立一個,下一步


輸入密碼,這裡隨意,記住即可,後面客戶端登入會用到。下一步


選擇一個FTP伺服器的目錄,我們選擇C盤下的FTP目錄(資料夾下面放入一些資料)。這裡目錄必須存在。下一步


       

許可權我們選擇允許下載允許上傳即可。這兩個是比較常見的,其他的配置預設。點選下一步


        

這樣我們就配置好QuickEasy FTP Server,下面,我們選擇點選開啟按鈕(左上角的綠色按鈕,即左上角綠色問號最左邊的按鈕),開啟之後,狀態變化,如下;


這樣我們就配置完Quick Easy FTP Server

這裡介紹一種容易出錯的地方,就是開啟時提示失敗,可能是預設埠21被佔用了,這裡給出兩種辦法:

1改變預設埠,21改為數字較大的埠;

2使用netstat –ano| findstr “21”,檢視那個程序在佔用21埠,然後在工作管理員中關閉佔用埠的程式即可。這裡推薦方法1

獲取FTP的控制連結資料和資料鏈接資料

下面我們在測試者機器上,開啟Wireshark抓包工具,過濾條件輸入

ip.addr == 10.1.1.33,這裡可以通過cmd的命令列去登入FTP伺服器,也可以通過瀏覽器登入,我們這裡,為了熟悉FTP的常用命令,使用cmd的命令列登入,如下

上面的資訊就是登入FTP伺服器後,進行了一個上傳和下載檔案的操作,此處我們返回Wireshark介面停止抓包,儲存,截圖如下:


接下來,我們就詳細的對上面的步驟,進行分析。

實驗步驟二 分析FTP協議資料包

FTP工作流程中使用控制連結和資料連線兩種方式來實現資料傳輸,下面我們來分析這兩種包的詳細資訊。

分析控制連結的資料

FTP的控制連線用於傳送使用者名稱、密碼及設定傳輸方式等控制資訊,下面以儲存的ftp.pcapng捕獲檔案為例,分析

FTP協議控制連線資料包。


上圖中顯示了所有資料包的Info列,在這裡可以看到ftp傳輸的所有資訊,因為FTP是明文形式傳輸資料包的,所有我們在InFo列裡能看到登入FTP伺服器的使用者名稱、密碼和傳輸檔案等。在上圖中,登入FTP伺服器的使用者名稱為Hetian,密碼為123456,下載了檔案cat.jpg及上傳了檔案Tulip.jpg。這裡顯示的都是成功,如果傳輸過程中出差的話,會返回相應的應答碼。

在捕獲的FTP資料包中,USERPASSCWDRETRSTOR等都是控制連線使用的控制命令。這些控制命令在包詳細資訊中,顯示的格式都相同。這裡以控制使用者資訊的命令為例,分析包的詳細資訊。在ftp.pcapng捕獲檔案中,捕獲的使用者資訊如下:


從該介面可以看到登入FTP伺服器時,使用的控制命令是USERPASS。根據這兩個命令,可以看到登入的賬號為Hetian,密碼為123456.這兩個包的詳細資訊如下

使用者名稱包詳細資訊

File Transfer Protocol (FTP)

       USERHetian\r\n

              Requestcommand: USER

              Requestarg: Hetian

從上面的資訊中,可以看到該包使用了FTP協議,輸入的使用者名稱為Hetian,請求的命令是USER,請求引數為Hetian

密碼的詳細資訊

FileTransfer Protocol (FTP)

       PASS123456\r\n

       Requestcommand: PASS

       Requestarg: 123456

從上面的資訊中,可以看到輸入的密碼為123456,請求的命令是PASS,請求引數為123456

其餘的CMD等命令,學習者自己檢視下。

分析資料連線的資料

資料連線用於傳送檔案資料,也就是通過FTP伺服器進行上傳和下載檔案。下面以捕獲的檔案為例,分析資料連線的資料。


上面的圖中,控制命令RETRPORT的資料分別為上傳和下載的資料包。這裡我們以下載檔案為例(上傳相同原理),點選上面的第811幀資料,右鍵,


選擇Follow TCPStream選擇,


上面顯示了所有FTP的傳輸資訊,如果想要檢視傳輸的資料,就要將這些資訊去掉。關閉上面的視窗,在Wireshark中,你會發現過濾條件被修改為如下


最簡單的方法就是,在前面加一個!,就能達到去掉的效果。如下圖:


接下來就是要找到我們下載的檔案。如何能快速的找到下載的檔案呢,這裡給出兩種方法,大家自行選擇:

通過協議的欄位去分析:你會發現,去掉了FTP的控制連線資料,顯示的是TCP協議的資料,在TCP協議中,PUSH欄位表示推送資料,我們就可以在Info中找到PUSH欄位,間接找到想要的檔案。

我們知道下載的檔案是JPG格式,所以也就知道二進位制的表示為JFIFexe格式用二進位制分析器開啟是MZ的道理是一樣的),所以就可以通過Wireshark自帶的搜尋,快速找到檔案所在的幀數。搜尋的快捷鍵是Ctrl+F.如下圖


這樣也能找到相應的幀資訊。我們在找到幀資訊之後(814幀或者820均可),通過右鍵,Follow TCPStream,可以看到資料的資訊,其中的JFIF表示了檔案格式為jpg,如下:


我們點選上圖的Save as,輸入名字cat.jpg即可。


開啟儲存的檔案,即我們下載的圖片


這個時候關閉Follow TCP Stream彈出的視窗,Wireshark顯示的資訊如下:


上面的資料包顯示了傳輸cat.jpg檔案的所有非FTP控制資料包,在該過程中,明細可以看到,經理了TCP的三次握手和四次斷開連線。請學習者根據上面的方法,去尋找找到上傳的檔案資訊。