本篇彭老師將圖文並茂教你如何使用抓包工具,並在文章最后教大家如何偷取FTP的用戶名密碼。
一、安裝
一口君為大家介紹一個非常好用的抓包工具,科來。
下載地址:
下載完畢,雙擊直接下一步即可安裝。
二、界面介紹
雙擊桌面圖標:
啟動界面如下:
選擇實時分析,進入選擇網卡界面:
彭老師的電腦是通過無線網卡連接路由器,所以選擇無線網絡連接2。【如果是有線網卡,選擇本地連接】
點擊開始,即可實現抓包:
科來功能十分強大,我們僅介紹常用的一些功能:
- 選擇網卡
- 開始抓包
- 停止抓包
- 設置過濾器
- 顯示IP會話信息
- 顯示TCP會話信息
- 顯示UDP會話信息
每一個按鈕詳細解釋啊如下:
- 設置網絡接口界面
-
設置過濾器
參考第三章 -
顯示IP會話信息
科來最大的優點就是把所有的數據根據源和目的進行了歸類,這樣方便我們根據查找和某個服務器的的進程交互的所有的數據包。
-
顯示TCP會話信息
點擊TCP會話
點擊上方的數據包分類的窗口,科來幫助我們把tcp數據包交互的所有的時序也幫助我們排好了!
彩!
可以清晰的看到TCP通信從3次握手、到數據發送、ack回復,4次握手。
查看數據包內容:
如上圖所示,我們選中三次握手的syn包,右側上方為科來幫我們解析過的數據包頭信息,右側下方為實際數據包的16進制信息。
- 顯示UDP會話信息
點擊編號是19的數據包:
三、如何過濾數據包
過濾器設置窗口如下:
我們可以根據需要選擇我們要抓取的數據包,比如我們只想抓取ICMP(ping包)的數據包,只需要選中即可:
這樣我們再次點擊開始,就只會抓取ICMP的數據包了。
1. 過濾端口
點擊右側的添加按鈕,進入過濾條件設置頁面:
然后選中該協議:
在瀏覽器中輸入以下地址:
http://sohu.com:8888/
該網址是訪問sohu.com對應的服務器的8888端口,rfc1738有關於域名信息的詳細解釋。
點擊開始,即可抓取到該端口的所有數據包,而非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地址所在地。
2. 選擇工具->Ping Tool
可以實現對某個IP地址的ping。
3. 選擇工具->MAC地址掃描器
使用該工具可以掃描該局域網內所有的IP地址和MAC地址。
4. 選擇工具->數據包生成器
使用該工具可以輔助我們填寫制定類型的數據包,並制定對應的網卡發送該數據包,在我們測試通信協議健壯性時,該工具非常實用。
五、偷取ftp登錄的用戶名、密碼
下面手把手教大家如何偷取FTP登錄的用戶名、密碼。
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
3)設置FTP服務器
ftp服務器運行在pc上,
用戶名:yikoulinux
密碼:yikoulinux
共享目錄:e:/一口Linux
ftp server的下載安裝,本文不再介紹。
2. 抓取數據包
1) 選擇無線網卡
因為是橋接模式,所以仍然選擇無線網卡,其他環境的話,如果讀者不熟悉,可以把所有網卡都選中。
2)設置過濾器
設置FTP協議,我們只需要抓取FTP協議的數據包,規則如下:
port = 21 || port = 22
選中該規則
注意,不要和上一章例子沖突了。
點擊開始抓取數據包。
3) 訪問ftp server
ubuntu中登錄ftp,並輸入用戶名、密碼。
ftp 192.168.0.104
鍵入用戶名 yikoulinux
鍵入密碼 yikoulinux
顯示根服務器目錄 ls
退出 quit
4)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個:
1-14個數據包如下:
15-28個數據包如下:
5) 那么用戶名密碼怎么獲得呢?
查看第6個數據包,
第9個數據包查看密碼
可見,我們通過抓包工具獲取到了剛才訪問FTP 服務器輸入的用戶名密碼!
6) 注意
之所以可以通過數據包得到用戶名和密碼,是因為訪問FTP 服務器時登錄用的用戶名和密碼是明文的,這非常不安全,所以現在傳輸文件基本上會使用FTPS,ssh、HTTPS等帶秘鑰的加密協議。要想破解,難度會很大。
了解更多的網絡知識,請關注 [一口Linux]