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抓包工具,過濾條件輸入
上面的資訊就是登入FTP伺服器後,進行了一個上傳和下載檔案的操作,此處我們返回Wireshark介面停止抓包,儲存,截圖如下:
接下來,我們就詳細的對上面的步驟,進行分析。
實驗步驟二 分析FTP協議資料包
在FTP工作流程中使用控制連結和資料連線兩種方式來實現資料傳輸,下面我們來分析這兩種包的詳細資訊。
分析控制連結的資料
FTP的控制連線用於傳送使用者名稱、密碼及設定傳輸方式等控制資訊,下面以儲存的ftp.pcapng捕獲檔案為例,分析
上圖中顯示了所有資料包的Info列,在這裡可以看到ftp傳輸的所有資訊,因為FTP是明文形式傳輸資料包的,所有我們在InFo列裡能看到登入FTP伺服器的使用者名稱、密碼和傳輸檔案等。在上圖中,登入FTP伺服器的使用者名稱為Hetian,密碼為123456,下載了檔案cat.jpg及上傳了檔案Tulip.jpg。這裡顯示的都是成功,如果傳輸過程中出差的話,會返回相應的應答碼。
在捕獲的FTP資料包中,USER,PASS,CWD,RETR和STOR等都是控制連線使用的控制命令。這些控制命令在包詳細資訊中,顯示的格式都相同。這裡以控制使用者資訊的命令為例,分析包的詳細資訊。在ftp.pcapng捕獲檔案中,捕獲的使用者資訊如下:
從該介面可以看到登入FTP伺服器時,使用的控制命令是USER和PASS。根據這兩個命令,可以看到登入的賬號為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伺服器進行上傳和下載檔案。下面以捕獲的檔案為例,分析資料連線的資料。
上面的圖中,控制命令RETR和PORT的資料分別為上傳和下載的資料包。這裡我們以下載檔案為例(上傳相同原理),點選上面的第811幀資料,右鍵,
選擇Follow TCPStream選擇,
上面顯示了所有FTP的傳輸資訊,如果想要檢視傳輸的資料,就要將這些資訊去掉。關閉上面的視窗,在Wireshark中,你會發現過濾條件被修改為如下
最簡單的方法就是,在前面加一個!,就能達到去掉的效果。如下圖:
接下來就是要找到我們下載的檔案。如何能快速的找到下載的檔案呢,這裡給出兩種方法,大家自行選擇:
通過協議的欄位去分析:你會發現,去掉了FTP的控制連線資料,顯示的是TCP協議的資料,在TCP協議中,PUSH欄位表示推送資料,我們就可以在Info中找到PUSH欄位,間接找到想要的檔案。
我們知道下載的檔案是JPG格式,所以也就知道二進位制的表示為JFIF(exe格式用二進位制分析器開啟是MZ的道理是一樣的),所以就可以通過Wireshark自帶的搜尋,快速找到檔案所在的幀數。搜尋的快捷鍵是Ctrl+F.如下圖
這樣也能找到相應的幀資訊。我們在找到幀資訊之後(814幀或者820均可),通過右鍵,Follow TCPStream,可以看到資料的資訊,其中的JFIF表示了檔案格式為jpg,如下:
我們點選上圖的Save as,輸入名字cat.jpg即可。
開啟儲存的檔案,即我們下載的圖片
這個時候關閉Follow TCP Stream彈出的視窗,Wireshark顯示的資訊如下:
上面的資料包顯示了傳輸cat.jpg檔案的所有非FTP控制資料包,在該過程中,明細可以看到,經理了TCP的三次握手和四次斷開連線。請學習者根據上面的方法,去尋找找到上傳的檔案資訊。