本篇彭老師將圖文並茂教你如何使用抓包工具,並在文章最後教大家如何偷取FTP的使用者名稱密碼。
一、安裝一口君為大家介紹一個非常好用的抓包工具,「科來」。
下載地址:
http://www.colasoft.com.cn/
下載完畢,雙擊直接下一步即可安裝。
二、介面介紹雙擊桌面圖示:
啟動介面如下:
選擇「實時分析」,進入選擇網絡卡介面:
彭老師的電腦是透過無線網絡卡連線路由器,所以選擇「無線網路連線2」。【如果是有線網絡卡,選擇「本地連線」】
科來功能十分強大,我們僅介紹常用的一些功能:
選擇網絡卡開始抓包停止抓包設定過濾器顯示IP會話資訊顯示TCP會話資訊顯示UDP會話資訊每一個按鈕詳細解釋啊如下:
設定網路介面介面選擇網絡卡
設定過濾器 參考第三章顯示IP會話資訊 科來最大的優點就是把所有的資料根據源和目的進行了歸類,這樣方便我們根據查詢和某個伺服器的的程序互動的所有的資料包。顯示TCP會話資訊點選「TCP會話」
彩!
可以清晰的看到TCP通訊從3次握手、到資料傳送、ack回覆,4次握手。
檢視資料包內容:
如上圖所示,我們選中三次握手的syn包,右側上方為科來幫我們解析過的資料包頭資訊,右側下方為實際資料包的16進位制資訊。
顯示UDP會話資訊三、如何過濾資料包過濾器設定視窗如下:
我們可以根據需要選擇我們要抓取的資料包,比如我們只想抓取ICMP(ping包)的資料包,只需要選中即可:
然後選中該協議:
在瀏覽器中輸入以下地址:
http://sohu.com:8888/該網址是訪問sohu.com對應的伺服器的8888埠,rfc1738有關於域名資訊的詳細解釋。
點選「開始」,即可抓取到該埠的所有資料包,而非8888埠的資料包就會過濾掉。
port 8888
2. 過濾ip地址我們首先獲取baidu伺服器的ip地址:
可得到 百度伺服器地址 「39.156.69.79」
如果我們只想抓取和百度伺服器通訊的所有資料包,設定如下:
其中:|| 是邏輯或的意思,該表示式表示所有目的ip或者源ip是39.156.69.79的資料包。
選中該過濾條件:
點開「開始」,開啟抓包:
然後,ping 「39.156.69.79」
即可抓取到對應的ping包
注意,要在IP會話中檢視。
3. 其他過濾器的表示式還有很多種, 比如:
「不抓取埠號為8888資料包,表示式為:」port != 8888
「不抓取ip地址為39.156.69.79 的資料包,表示式為:」
dstip != 39.156.69.79 && srcip != 39.156.69.79
讀者可以根據自己的需要來組合搭配對應的過濾條件來高效的抓取自己需要的資料包。
四、 其他功能1. 選擇「工具->IP地址歸屬地查詢」可以顯示制定IP地址所在地。
IP地址歸屬地查詢
2. 選擇「工具->Ping Tool」可以實現對某個IP地址的ping。
3. 選擇「工具->MAC地址掃描器」使用該工具可以掃描該區域網內所有的IP地址和MAC地址。
4. 選擇「工具->資料包生成器」使用該工具可以輔助我們填寫制定型別的資料包,並制定對應的網絡卡傳送該資料包,在我們測試通訊協議健壯性時,該工具非常實用。
FTP
1. 環境本次測試環境在本地測試。 ftp伺服器執行在pc上,ip地址是「192.168.0.104」,埠號用預設的21、22 ftp客戶端執行在虛擬機器中的ubuntu,IP地址設定為「192.168.0.111」
1)虛擬機器設定一口君pc連線的無線路由器,虛擬機器設定的是橋接模式,所以 「編輯->虛擬網路編輯器」,做如下選擇,選擇「已橋接至」無線網絡卡。 【如果是網線連線路由器,則選擇有線網絡卡】
橋接模式
2)設定虛擬網絡卡地址ifconfig ens33 192.168.0.111
虛擬機器地址
FTP server
ftp server的下載安裝,本文不再介紹。
2. 抓取資料包1) 選擇無線網絡卡因為是橋接模式,所以仍然選擇無線網絡卡,其他環境的話,如果讀者不熟悉,可以把所有網絡卡都選中。
2)設定過濾器設定FTP協議,我們只需要抓取FTP協議的資料包,規則如下:
port = 21 || port = 22
過濾規則
選中該規則
注意,不要和上一章例子衝突了。
3) 訪問ftp serverubuntu中登入ftp,並輸入使用者名稱、密碼。
ftp 192.168.0.104鍵入使用者名稱 yikoulinux鍵入密碼 yikoulinux顯示根伺服器目錄 ls退出 quit
4)FTP協議互動流程FTP協議的互動流程如下圖所示:
FTP 資料互動流程
1. 建立連線階段該階段是 FTP 客戶端透過 TCP 三次握手與FTP伺服器端進行建立連線。
客戶端向 FTP 伺服器發出建立連線請求,FTP 伺服器對請求進行應答。如果 FTP 伺服器上的 21 埠是啟用的,可以接受來自其他主機的請求,給出應答 220,表示服務就緒,即告訴客戶端需要的 FTP 服務已經準備好了。
返回應答以後,FTP 伺服器需要客戶端進行身份認證,向客戶端傳送身份認證請求。
2. 身份認證階段身份認證是指客戶端需要向FTP服務提供登入所需的使用者名稱和密碼。FTP 伺服器對客戶端輸入的使用者名稱和密碼都會給出相應的應答。如果客戶端輸入的使用者名稱和密碼正確,將成功登入FTP伺服器,此時進入 FTP 會話。
3. 命令互動階段在 FTP 會話中,使用者可以執行 FTP 命令進行檔案傳輸,如檢視目錄資訊、上傳或下載檔案等。客戶端輸入要執行的 FTP 命令後,伺服器同樣會給出應答。如果輸入的執命令正確,伺服器會將命令的執行結果返回給客戶端。執行結果返回完成後,伺服器繼續給出應答。
4. 斷開連線階段當客戶端不再與 FTP 伺服器進行檔案傳輸時,需要斷開連線。客戶端向 FTP 伺服器傳送斷開連線請求,伺服器收到斷開連線後給出相應的應答。
5. tcp斷開tcp斷開仍然需要四次握手。
4)截獲資料包擷取到資料包一共28個:
ftp資料包
1-14個數據包如下:
1-14包
15-28個數據包如下:
15-28包
5) 那麼使用者名稱密碼怎麼獲得呢?檢視第6個數據包,
第9個數據包檢視密碼
可見,我們透過抓包工具獲取到了剛才訪問FTP 伺服器輸入的使用者名稱密碼!
6) 注意之所以可以透過資料包得到使用者名稱和密碼,是因為訪問FTP 伺服器時登入用的使用者名稱和密碼是明文的,這非常不安全,所以現在傳輸檔案基本上會使用FTPS,ssh、HTTPS等帶秘鑰的加密協議。要想破解,難度會很大。