玩轉wireshark系列第四篇-抓取ftp包【轉】
https://blog.csdn.net/u011416247/article/details/80872735
(首先宣告一下我也是一名小白,初學wireshark沒多久,我也很願意和大家一起討論wireshark的具體應用。)
本實驗使用的版本是wireshark2.4.7版,選擇“捕獲”-“選項”。
選擇當前連的網,一般選擇流量“起起伏伏”的那個介面。
做ftp實驗的第一個問題就是去哪裡找一個ftp伺服器,我在百度上找遍了所有的ftp伺服器都不能用,沒辦法,只能自己動手搭一個了。
1.在win7上先開啟ftp服務:這裡Internet資訊服務底下的三個包括子項全部需要勾選。點選確定後,可能會要等一會兒,完成後就可以使用FTP服務了。
2.開啟 計算機--》管理--》 在這裡我們可以看見剛剛新增的服務 (IIS)
3.建立一個ftp站點
4.點選新增FTP站點後,就是要繼續的新增必要的站點資訊,這裡是:站點名稱以及登入ftp後的站點指定目錄(資料夾),點選下一步。
5.站點的地址就寫自己的IP就好,埠21,是ftp控制訊號的預設埠,(埠隨意,儘量不要用已經被佔用了的埠號)。SSL證書選無,有證書配置起來就很麻煩了。IP儘量配一個,用它推薦的那個吧,我的是192.168.1.4,不能自己隨便設一個,這樣會無法訪問。
6.身份驗證和授權勾選“基本“和”匿名“,匿名即採用使用者名稱anonymous。允許所有使用者訪問。到這步一個ftp伺服器就搭好了。
7.測試訪問ftp伺服器,在“計算機”裡輸入“ftp://192.168.1.4”由於有勾選匿名,訪問的時候無需輸入使用者名稱密碼,當然也可以在瀏覽器裡面訪問。然後可以測試讀寫。
8.要讓別的機子訪問ftp伺服器,需要關閉防火牆,或者針對ftp相關埠設定允許通過的規則(預設為20,21)。
之後我在本地訪問自己搭的ftp,出乎意料的是wireshark根本沒有捕獲到FTP資料包,這是為什麼呢?查閱資料之後發現wireshark是捕獲網絡卡的資料包,本地訪問本地必然沒有經過無線網絡卡。所以我找了一臺本區域網上的機子訪問該ftp,終於捕獲到了ftp報文。
從上往下分析一個ftp訪問的過程。下圖是第一個包,表示ftp服務被訪問。(220代表服務就緒)
下圖表示使用者登入的使用者名稱和密碼,使用匿名訪問的。
下圖表示匿名訪問需要輸入email,但是實際上重新整理一下就進去了。
(331代表要求密碼)
用IE代理訪問ftp
使用者登入了(230代表登入因特網)
CWD指令為更改訪問目錄,比如說點進去一個檔案等。
CWD訪問成功。(250代表檔案行為完成)
訪問檔案的格式是ASCII(200代表成功)
FTP採用被動模式。
主動模式(PORT)
如下圖所示,使用者主機直接暴露在網際網路中,使用者連線FTP SERVER使用主動模式遵循以下一個過程:
使用者主機一個隨機埠連線FTP SERVER的TCP21埠進行協商;
使用者主機告訴FTP SERVER,我的XXXX埠已經開啟,你可以放心大膽的連過來;
然後FTP SERVER就用TCP20埠連線使用者主機的XXXX埠,資料傳輸開始。
被動模式(PASV)
當用戶主機前端多了一道防火牆(客戶機使用地址轉換接入網際網路),事情就變的複雜了,首先,主動模式是FTP SERVER連線客戶機,防火牆肯定不幹;即便樂意幹客戶機與伺服器協商的XXXX埠也是隨機埠,你讓迷茫的防火牆情何以堪,這時就需要客戶端軟體使用被動模式主動連線防火牆,這麼一來正合防火牆的胃口。
客戶端使用被動模式遵循以下過程:
首先使用者使用隨機埠連線FTP SERVER的TCP 21埠進行協商;
FTP SERVER告訴客戶機:我的XXXX埠開放了,你連過來吧;
客戶機使用一個隨機埠連線FTPSERVER的XXXX埠傳輸資料。
(227代表進入被動模式)
列舉該目錄下的檔案
開始傳輸檔案,比如下載到本地。(125代表開啟資料連線,開始傳輸)
傳輸完成。(226代表結束資料連線)
FTP協議概述
預設埠資料連線用20號埠,控制連線用21號埠。FTP協議的底層協議是TCP協議。此外它還需要安裝dns服務。
FTP 命令:
1)訪問控制命令:
使用者名稱:USER
密碼: PASS
賬戶: ACCT
改變工作目錄: CWD
返回上層目錄: CDUP
結構裝備: SMNT
重新初始化: REIN
登出: QUIT
2)傳輸引數命令:
資料埠:PORT
被動: PASV
表示型別:TYPE
檔案結構:STRU
F- 檔案
R- 記錄結構
P-頁結構
傳輸模式:MODE
S-流
B-塊
C-壓縮
3)FTP服務命令:
獲得:RETR
儲存:STOR
唯一儲存:STOU
追加:APPE
分配:ALLO
重新開始:REST
重新命名開始:RNFR
重新命名為:RNTO
放棄:ABOR
刪除:DELE
刪除目錄:RMD
新建目錄:MKD
列印工作目錄:PWD
列表:LIST
名字列表:NLST
站點引數:SITE
系統:SYST
狀態:STAT
幫助:HELP
空操作:NOOP
FTP響應:
FTP 響應由3 位數字組成(以3 個數字字元傳遞)後面跟著一些文字。3 位數字的每一位都有特定的意義。允許使用者程序將複雜的響應簡化。
第一位數字標識了響應是好,壞或者未完成。
1)響應的第一位數字可能有以下五個值:
1yz,預備狀態
2yz,完成狀態
3yz,中間狀態
4yz,暫時拒絕狀態
5yz,永久拒絕狀態
2)下面為第二位數字的功能:
x0z 語法- 這種響應指出了語法錯誤。給出的命令不存在、沒有被實現、或多餘。
x1z 資訊- 對於請求資訊的響應,比如對狀態或幫助的請求。
x2z 連線- 關於控制連線和資料連線的響應。
x3z 身份驗證和帳戶- 對登陸過程和帳戶處理的響應。
x4z 目前還未使用。
x5z 檔案系統- 請求傳輸時伺服器檔案系統的狀態或其他檔案系統動作狀態。
3)第三位數字為第二位數字指定的狀態提供了更詳細的意義。
最小實現:
為了讓FTP 能夠不出錯誤的工作,伺服器必需具備以下最小實現:
型別- ASCII 非列印
模式- 流模式
結構- 檔案結構,記錄結構
命令- USER, QUIT, PORT,TYPE, MODE, STRU,相應的預設值,RETR, STOR,NOOP.
傳輸引數的預設值為:
型別- ASCII 非列印
模式- 流模式
結構- 檔案結構
所有主機必需接受上面這些標準的預設值。
(首先宣告一下我也是一名小白,初學wireshark沒多久,我也很願意和大家一起討論wireshark的具體應用。)
本實驗使用的版本是wireshark2.4.7版,選擇“捕獲”-“選項”。
選擇當前連的網,一般選擇流量“起起伏伏”的那個介面。
做ftp實驗的第一個問題就是去哪裡找一個ftp伺服器,我在百度上找遍了所有的ftp伺服器都不能用,沒辦法,只能自己動手搭一個了。
1.在win7上先開啟ftp服務:這裡Internet資訊服務底下的三個包括子項全部需要勾選。點選確定後,可能會要等一會兒,完成後就可以使用FTP服務了。
2.開啟 計算機--》管理--》 在這裡我們可以看見剛剛新增的服務 (IIS)
3.建立一個ftp站點
4.點選新增FTP站點後,就是要繼續的新增必要的站點資訊,這裡是:站點名稱以及登入ftp後的站點指定目錄(資料夾),點選下一步。
5.站點的地址就寫自己的IP就好,埠21,是ftp控制訊號的預設埠,(埠隨意,儘量不要用已經被佔用了的埠號)。SSL證書選無,有證書配置起來就很麻煩了。IP儘量配一個,用它推薦的那個吧,我的是192.168.1.4,不能自己隨便設一個,這樣會無法訪問。
6.身份驗證和授權勾選“基本“和”匿名“,匿名即採用使用者名稱anonymous。允許所有使用者訪問。到這步一個ftp伺服器就搭好了。
7.測試訪問ftp伺服器,在“計算機”裡輸入“ftp://192.168.1.4”由於有勾選匿名,訪問的時候無需輸入使用者名稱密碼,當然也可以在瀏覽器裡面訪問。然後可以測試讀寫。
8.要讓別的機子訪問ftp伺服器,需要關閉防火牆,或者針對ftp相關埠設定允許通過的規則(預設為20,21)。
之後我在本地訪問自己搭的ftp,出乎意料的是wireshark根本沒有捕獲到FTP資料包,這是為什麼呢?查閱資料之後發現wireshark是捕獲網絡卡的資料包,本地訪問本地必然沒有經過無線網絡卡。所以我找了一臺本區域網上的機子訪問該ftp,終於捕獲到了ftp報文。
從上往下分析一個ftp訪問的過程。下圖是第一個包,表示ftp服務被訪問。(220代表服務就緒)
下圖表示使用者登入的使用者名稱和密碼,使用匿名訪問的。
下圖表示匿名訪問需要輸入email,但是實際上重新整理一下就進去了。
(331代表要求密碼)
用IE代理訪問ftp
使用者登入了(230代表登入因特網)
CWD指令為更改訪問目錄,比如說點進去一個檔案等。
CWD訪問成功。(250代表檔案行為完成)
訪問檔案的格式是ASCII(200代表成功)
FTP採用被動模式。
主動模式(PORT)
如下圖所示,使用者主機直接暴露在網際網路中,使用者連線FTP SERVER使用主動模式遵循以下一個過程:
使用者主機一個隨機埠連線FTP SERVER的TCP21埠進行協商;
使用者主機告訴FTP SERVER,我的XXXX埠已經開啟,你可以放心大膽的連過來;
然後FTP SERVER就用TCP20埠連線使用者主機的XXXX埠,資料傳輸開始。
被動模式(PASV)
當用戶主機前端多了一道防火牆(客戶機使用地址轉換接入網際網路),事情就變的複雜了,首先,主動模式是FTP SERVER連線客戶機,防火牆肯定不幹;即便樂意幹客戶機與伺服器協商的XXXX埠也是隨機埠,你讓迷茫的防火牆情何以堪,這時就需要客戶端軟體使用被動模式主動連線防火牆,這麼一來正合防火牆的胃口。
客戶端使用被動模式遵循以下過程:
首先使用者使用隨機埠連線FTP SERVER的TCP 21埠進行協商;
FTP SERVER告訴客戶機:我的XXXX埠開放了,你連過來吧;
客戶機使用一個隨機埠連線FTPSERVER的XXXX埠傳輸資料。
(227代表進入被動模式)
列舉該目錄下的檔案
開始傳輸檔案,比如下載到本地。(125代表開啟資料連線,開始傳輸)
傳輸完成。(226代表結束資料連線)
FTP協議概述
預設埠資料連線用20號埠,控制連線用21號埠。FTP協議的底層協議是TCP協議。此外它還需要安裝dns服務。