當前位置:首頁 » 文件傳輸 » ftp抓包協議分析
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

ftp抓包協議分析

發布時間: 2022-09-21 19:30:18

① 怎麼用wireshark抓包分析ftp協議

你是網路管理員嗎?你是不是有過這樣的經歷:在某一天的早上你突然發現網路性能急劇下降,網路服務不能正常提供,伺服器訪問速度極慢甚至不能訪問,網路交換機埠指示燈瘋狂地閃爍、網路出口處的路由器已經處於滿負荷的工作狀態、路由器CPU已經到了百分之百的負荷……重啟動後沒有幾分鍾現象又重新出現了。

這是什麼問題?設備壞了嗎?不可能幾台設備同時出問題。一定是有什麼大流量的數據文件,耗盡了網路設備的資源,它們是什麼?怎麼看到它們?這時有經驗的網管人員會想到用區域網抓包工具來分析一下。

你一定聽說過紅色代碼、Nimda、沖擊波以及震盪波這些臭名昭著的網路殺手。就是它們製造了上述種種惡行。它們來勢洶洶,阻塞網路、感染主機,讓網路管理員苦不堪言。當網路病毒出現時,如何才能及時發現染毒主機?下面我根據網路病毒都有掃描網路地址的特點,給大家介紹一個很實用的方法:用抓包工具尋找病毒源。

1.安裝抓包工具。目的就是用它分析網路數據包的內容。找一個免費的或者試用版的抓包工具並不難。我使用了一種叫做SpyNet3.12 的抓包工具,非常小巧, 運行的速度也很快。安裝完畢後我們就有了一台抓包主機。你可以通過SpyNet設置抓包的類型,比如是要捕獲IP包還是ARP包,還可以根據目的地址的不同,設置更詳細的過濾參數。

2.配置網路路由。你的路由器有預設網關嗎?如果有,指向了哪裡?在病毒爆發的時候把預設網關指向另外一台路由器是很危險的(除非你想搞癱這台路由器)。在一些企業網里往往僅指出網內地址段的路由,而不加預設路由,那麼就把預設路由指到抓包主機上吧(它不下地獄誰下地獄?當然這台主機的性能最好是高一點的,否則很容易被病毒沖擊而亡)。這樣可以讓那些病毒主機發出的絕大部分掃描都自動送上門來。或者把網路的出口映像到抓包主機上,所有對外訪問的網路包都會被分析到。

3.開始抓包。抓包主機已經設置好了,網路里的數據包也已經送過來了,那麼我們看看網路里傳輸的到底是些什麼。打開SpyNet 點擊Capture 你會看到好多的數據顯示出來,這些就是被捕獲的數據包(如圖)。

圖中的主體窗口裡顯示了抓包的情況。列出了抓到數據包的序號、時間、源目的MAC地址、源目的IP地址、協議類型、源目的埠號等內容。很容易看出IP地址為10.32.20.71的主機在極短的時間內向大量的不同主機發出了訪問請求,並且目的埠都是445。

4.找出染毒主機。從抓包的情況看,主機10.32.20.71值得懷疑。首先我們看一下目的IP地址,這些地址我們網路里存在嗎?很可能網路里根本就沒有這些網段。其次,正常情況下訪問主機有可能在這么短的時間里發起這么多的訪問請求嗎?在毫秒級的時間內發出幾十甚至幾百個連接請求,正常嗎?顯然這台10.32.20.71的主機肯定有問題。再了解一下Microsoft-DS協議,該協議存在拒絕服務攻擊的漏洞,連接埠是445,從而進一步證實了我們的判斷。這樣我們就很容易地找到了染毒主機的IP地址。剩下的工作就是給該主機操作系統打補丁殺病毒了。

既然抓到了病毒包,我們看一下這個數據包二進制的解碼內容:

這些數據包的長度都是62個位元組。數據包前12個位元組包括了目的MAC和源MAC的地址信息,緊跟著的2位元組指出了數據包的類型,0800代表的是IP包格式,0806代表ARP包格式。接著的20個位元組是封裝的IP包頭,包括了源、目的IP地址、IP版本號等信息。剩下的28個位元組封裝的是TCP包頭,包括了源、目的埠,TCP鏈接的狀態信息等。這就構成了一個62位元組的包。可以看出除了這些包頭數據之外,這個包沒有攜帶其他任何的有效數據負荷,所以這是一個TCP要求445埠同步的空包,也就是病毒主機在掃描445埠。一旦染毒主機同步上沒有採取防護措施的主機445埠,便會利用系統漏洞傳播感染。

② 如何利用wireshark分析http及ftp協議

Wireshark 進行監聽TCP FTP HTTP三個協議

一、下載安裝wireshark Windows平台的wireshark,雙擊安裝文件安裝即可,在安裝過程中注意選擇安裝winpcap。

二、啟動wireshark後,選擇工具欄中的快捷鍵(紅色標記的按鈕)即可Start a new live capture。

主界面上也有一個interface list(如下圖紅色標記1),列出了系統中安裝的網卡,選擇其中一個可以接收數據的的網卡也可以開始抓包。 在啟動時候也許會遇到這樣的問題:彈出一個對話框說 NPF driver 沒有啟動,無法抓包。在win7或Vista下找到C: \system\system32下的cmd.exe 以管理員身份運行,然後輸入 net start npf,啟動NPf服務。重新啟動wireshark就可以抓包了。

③ 用wireshark抓包sftp和ftp的區別

-A 以ASCII碼方式顯示每一個數據包(不會顯示數據包中鏈路層頭部信息). 在抓取包含網頁數據的數據包時, 可方便查看數據(nt: 即Handy for capturing web pages).
-X 當分析和列印時, tcpmp 會列印每個包的頭部數據, 同時會以16進制和ASCII碼形式列印出每個包的數據(但不包括連接層的頭部).這對於分析一些新協議的數據包很方便.
-i eth1:指定監聽的網路介面,可以使用ifconfig獲取網路配置
host 數據包的源或目的地址是指定IP或者主機名
-w 數據包保存到指定文件

④ ftp的背景知識

FTP是文件傳輸協議(File Transfer Protocol)的簡稱,RFC959中對該協議作了具體說明。
FTP的目標是:提高文件的共享性;提供非直接使用遠程計算機的方法(通過程序);使存儲介質對用戶透明(屏蔽了不同主機上文件系統的差異);可靠高效地傳送數據。

FTP命令
DOS command窗口中敲ftp後回車,在ftp命令提示符後敲?回車,可以列出ftp支持的所有命令。具體用法就不在這里敘述了(網上都可以查到,拷貝粘貼一大堆很沒勁),在使用中可以慢慢體會。

FTP匿名訪問
用戶選擇匿名訪問時不需要輸入用戶名和密碼,系統視用戶名為anonymous。對於這個特殊的匿名用戶帳號,目前大多數站點都明確要求使用電子郵件地址作為匿名用戶密碼。提供電子郵件地址,有助於讓站點的擁有者了解到是哪些人在使用他們的服務。(原文參見RFC1635 How to Use Anonymous FTP)
請注意,anonymous用戶通常不會被允許向檔案站點上傳文件,只允許下載。

FTP傳輸模式
這個有必要說一下。FTP傳輸模式分為PASV模式與PORT模式兩種(默認為PASV模式)。
FTP是僅基於TCP的服務,不支持UDP。與其他TCP服務不同的是,FTP使用2個埠,一個數據埠和一個命令埠(或叫做控制埠)。通常來說,這兩個埠分別是21(命令埠)和20(數據埠)。但根據FTP工作方式(傳輸模式)的不同,數據埠並不總是20埠。下面分別闡述:

主動傳輸模式(PORT模式)
當FTP的控制連接建立,客戶提出目錄列表、傳輸文件時,客戶端發出PORT命令與伺服器進行協商,FTP伺服器使用一個標准埠20作為伺服器端的數據連接埠,與客戶建立數據連接。埠20隻用於連接源地址是伺服器端的情況,並且埠20沒有監聽進程來監聽客戶請求。 在主動傳輸模式下,FTP的數據連接和控制連接方向相反,由伺服器向客戶端發起一個用於數據傳輸的連接。客戶端的連接埠由伺服器端和客戶端通過協商確定。主動傳輸模式下,FTP伺服器使用20埠與客戶端的高位隨機埠進行連接,並傳輸數據,客戶端只是處於接收狀態。
主動FTP對FTP伺服器的管理有利,但對客戶端的管理不利。因為FTP伺服器企圖與客戶端的高位隨機埠建立連接,而這個埠很有可能被客戶端的防火牆阻塞掉。 為了解決這個伺服器發起到客戶端的連接問題,人們開發了一種不同的FTP連接方式,這就是所謂的被動方式,或者叫做PASV方式。當客戶端通知伺服器它處於被動模式時才啟用。

被動傳輸模式(PASV模式)
當FTP的控制連接建立,客戶提出目錄列表、傳輸文件時,客戶端發送PASV命令使伺服器處於被動傳輸模式,FTP伺服器等待客戶與其聯系。FTP伺服器在非20埠的其它數據傳輸埠上監聽客戶請求。 在被動傳輸模式下,FTP的數據連接和控制連接方向一致,由客戶端向伺服器發起一個用於數據傳輸的連接。客戶端的連接埠是發起該數據連接請求時使用的埠。當FTP客戶在防火牆之外訪問FTP伺服器時,需要使用被動傳輸模式。被動傳輸模式下,FTP伺服器打開一個高位隨機埠等待客戶端對其進行連接,並傳輸數據,伺服器並不參與數據的主動傳輸,只是被動接受。
被動FTP對FTP客戶端的管理有利,但對伺服器端的管理不利。因為客戶端要與伺服器端建立兩個連接,其中一個連接要連到伺服器端的一個高位隨機埠,而這個埠很有可能被伺服器端的防火牆阻塞掉。

目前默認都採用PASV方式(除非伺服器不支持)。現在的FTP伺服器大多也都支持被動FTP,因為管理員需要他們的伺服器有最多的客戶連接。通過為FTP伺服器指定一個有限的埠范圍可以減小伺服器高位埠的暴露,不在這個范圍的任何埠會被伺服器的防火牆阻塞,這樣,雖然這沒有消除所有針對伺服器的危害,但它畢竟大大減少了風險。
在WWW泛濫的時代,大多數web瀏覽器(可用作FTP客戶端)在訪問ftp://這樣的URL時也都是默認支持被動模式的(在瀏覽器的 "Internet 選項" 中可看到使用被動FTP的相關設置)。

FTP數據分析與測試
如果需要分析FTP過程中的一些狀態及數據,可以使用Ethereal工具抓包,獲取經過網卡的數據。前提是:FTP伺服器IP不為本機IP,否則,數據不經過網卡。

⑤ wireshark所抓包的分析

問IP包格式 IP協議網路層協議.主要完數據包發送作用. 面表IP4數據包格式,IP封包格式(IPv4包首部度20位元組)
|0......4........8..............16....................................32
-------------------------------------------------------------------------
|版本4.|首部度|服務類型(優先順序|數據包總............................|
-------------------------------------------------------------------------
|標識...........................|RF|DF|MF|碎片偏移.....................|
-------------------------------------------------------------------------
|存間TTL....|協議(TCP/UDP)..|首部較驗............................|
-------------------------------------------------------------------------
|源IP址..............................................................|
-------------------------------------------------------------------------
|目IP址............................................................|
-------------------------------------------------------------------------
|選項..................................................................|
=========================================================================
|數據..................................................................|
-------------------------------------------------------------------------Version (4) Internet Header Length (4) Type of Service (8) Total Length (16)
Identification (16) Flags (3) Fragment Offset (13)
Time To Live (8) Protocol (8) Header checksum (16)
Source Address (32)
Destination Address (32)
Options (Variable) Padding (0-24)

Data
....
IP包欄位含義
IP包欄位含義

圖括弧內數字各部件度(bit)您夠細計算每列總度都32bit面我別各部件名稱解釋

Version
版本(VER)表示IP規格版本目前IP規格版本4(version 4)所數值通 0x4 (注意封包使用數字通都十六進位)

Internet Header Length(值5表示包度5行即532位5行=5*32bit=20*8bit=20byte=0x14byte)
標度(IHL)IP封包規格看前面6行headerOptionsPadding沒5行所度5我知道每行32bit4byte麽5行20byte20數值換16進制0x14所封包標度短候數值終換算0x14

讓我看看我擷取ICMP封包其屬於IP部份

我看數值45前面4版本號數後面5則標度

Type of Service
服務類型(TOS)指IP封包傳送程要求服務類型其共由8bit組其每bit組合別代表同意思

000..... Routine 設定IP順序預設0否則數值越高越優先
...0.... Delay 延遲要求0值1低要求
....0... Throughput 通訊量要求0值1高要求
.....0.. Reliability 靠性要求0值1高要求
......00 Not Used 未使用

例我看TOS值0全部設置值

Total Length
封包總(TL)通byte做單位表示該封包總度數值包括標數據總

圖我看十六進位數值003C換十進位60

Identification
識別碼(ID)每IP封包都16bit唯識別碼我OSI網路層級知識面知道程序產數據要通網路傳送都拆散封包形式發送封包要進行重組候ID依據

圖我看封包ID40973 ( a00d 換十進制知道)

Flag
標記(FL)封包傳輸程進行佳組合使用3bit識別記號請參考表

000. Reserved Fragment 值0候表示目前未使用
.0.. Don't Fragment 值0候表示封包割1則能割
..0. More Fragment 值0:值0示該封包後封包1則表示其後割封包

例我看封包標記0目前並未使用

Fragment Offset
割定位(FO)封包切後由於網路情況或其素影響其抵達順序並初切割順序至所封包進行切割候各片段做定位記錄所重組候能夠依號入座

我剛才擷取封包並沒切割所暫找例參考例我看FO0

Time To Live
延續間(TTL)TTL我許網路設定都碰物件賦予TTL值(秒單位)後進行計物件達TTL值候沒處理遺棄 並所 TTL 都間單位例 ICMP 協定 TTL則封包路由程跳站數目(Hop Count)做單位TTL 值每經跳站(或 router 處理)後減低數值 封包傳遞程由於某些原未能抵達目候避免其直充斥網路面

圖我看數值 20 哦十六進位數字要換十進位才知道 TTL 原 32 跳站

Protocol
協定(PROT)指該封包所使用網路協定類型例ICMPDNS等要注意使用協定網路層協定層程式協定(FTPPOP等)同您Linux/etc/protocol檔案找些協定其代號檔案存放於NT\winnt\system32\drivers\etc目錄面其內容
------------------------------------------------------
ip 0 IP # internet protocol, pseudo protocol number
icmp 1 ICMP # internet control message protocol
igmp 2 IGMP # Internet Group Management
ggp 3 GGP # gateway-gateway protocol
ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'')
st 5 ST # ST datagram mode
tcp 6 TCP # transmission control protocol
egp 8 EGP # exterior gateway protocol
pup 12 PUP # PARC universal packet protocol
udp 17 UDP # user datagram protocol
hmp 20 HMP # host monitoring protocol
xns-idp 22 XNS-IDP # Xerox NS IDP
rdp 27 RDP # "reliable datagram" protocol
iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4
xtp 36 XTP # Xpress Tranfer Protocol
ddp 37 DDP # Datagram Delivery Protocol
idpr-cmtp 39 IDPR-CMTP # IDPR Control Message Transport
rspf 73 RSPF #Radio Shortest Path First.
vmtp 81 VMTP # Versatile Message Transport
ospf 89 OSPFIGP # Open Shortest Path First IGP
ipip 94 IPIP # Yet Another IP encapsulation
encap 98 ENCAP # Yet Another IP encapsulation
------------------------------------------------------

我例看PROT號碼01照/etc/protocol檔案我知道ICMP協定

Header Checksum
標檢驗值(HC)數值主要用檢錯用用確保封包確誤接收封包始進行傳送後接收端主機利用檢驗值檢驗餘封包切看誤發確認信息表示接收

圖我看封包HC9049

Source IP Address
源址(SA)相信用解釋發送端IP址

我c0.a8.00.0f換十進位192.168.0.15址

Destination IP Address
目址(DA)接收端IP址啦

看看能能a8.5f.01.54換168.95.1.84

Options & Padding
兩選項甚少使用某些特殊封包需要特定控制才利用作細表啦

面我看看IP結構定義

struct ip
{
#if __BYTE_ORDER == __LITTLE_ENDIAN
unsigned int ip_hl:4; /* header length */
unsigned int ip_v:4; /* version */
#endif
#if __BYTE_ORDER == __BIG_ENDIAN
unsigned int ip_v:4; /* version */
unsigned int ip_hl:4; /* header length */
#endif
u_int8_t ip_tos; /* type of service */
u_short ip_len; /* total length */
u_short ip_id; /* identification */
u_short ip_off; /* fragment offset field */
#define IP_RF 0x8000 /* Reserved Fragment flag */
#define IP_DF 0x4000 /* Don't Fragment flag即第二位1(包) */
#define IP_MF 0x2000 /* More Fragments flag即二三位00(包,包)或01(繼包) */
#define IP_OFFMASK 0x1fff /* mask for fragmenting bits */
u_int8_t ip_ttl; /* time to live */
u_int8_t ip_p; /* protocol */
u_short ip_sum; /* checksum */
struct in_addr ip_src, ip_dst; /* source and dest address */
};

ip_v IP協議版本號,4,現IPV6已經

ip_hl IP包首部度,值4位元組單位.IP協議首部固定度20位元組,IP包沒選項,值5.

ip_tos服務類型,說明提供優先權.

ip_len說明IP數據度.位元組單位.

ip_id標識IP數據包.

ip_off碎片偏移,面ID起用重組碎片.

ip_ttl存間.沒經路由候減,直0拋棄.

ip_p協議,表示創建IP數據包高層協議.TCP,UDP協議.

ip_sum首部校驗,提供首部數據校驗.

ip_src,ip_dst發送者接收者IP址

⑥ FTP服務的工作機制

FTP(File Tranfer Protocol) 文本傳輸協議,主要用於internet上文件的雙向傳輸,同時ftp也是一種應用程序。
一、特性
基於C/S 結構
雙通道協議:數據和命令連接
數據傳輸格式:二進制(默認)和文本格式
埠:基於tcp服務,數據埠(20)和控制埠(21)

二、模式支持
1、主動模式
主動模式FTP:(伺服器主動連接)客戶端從任意的一個非特權埠N,連接到FTP伺服器的命令埠,也就是21埠。讓後客戶端開始監聽埠N+1,並發送FTP命令「port
N+1」 到ftp伺服器。接著伺服器會從自己的數據埠(20)主動連接到客戶端指定的數據埠(N+1)
以上描述可以在實驗環境下查看
主要方法以上文中已有所描述,下面是在wondows上查看埠的命令
netstat -ant|findstr :21
針對FTP伺服器前面的防火牆雷說,必須允許以下通信才能支持主動方式FTP。
1、 允許任何大於1024的埠到FTP伺服器的21埠。 (客戶端初始化連接)
2、 允許FTP伺服器的21埠到大於1024的埠。(伺服器響應客戶端的控制埠)
3、 允許FTP伺服器的20埠到大於1024埠。(伺服器初始化數據連接到客戶端的數據埠)
4、 允許大於1024埠到ftp伺服器的20埠。(客戶端發送ack響應到伺服器的數據埠)

2、被動模式
為了解決伺服器發起到客戶端的連接問題,人們開發了一種不同的ftp連接方式。這就是所謂的被動方式,或成為PASV,當客戶端通知伺服器它處於被動模式時才啟用。
在被動模式ftp中,命令連接和數據連接由客戶端發起,這樣就可以解決從伺服器到客戶端的數據埠入方向連接被防火牆過濾掉的問題。
當開啟FTP連接時,客戶端打開兩個任意非特權本地埠N,N+1。第一個埠連接伺服器的21埠,但與主動模式的FTP不同,客戶端不會提交PORT命令並允許伺服器來回連它的數據埠,而是提交PASV命令。這樣做的結果是伺服器會開啟一個任意的非特權埠
P,並發送port P命令給客戶端。然後客戶端發起從本地埠N+1到伺服器的埠P的連接用來傳輸數據。

對於伺服器端的防火牆來說,必須允許下面的通訊才能只是被動方式的FTP:
1、 允許從任何大於1024的埠到伺服器的21埠(客戶端初始化連接)
2、 允許伺服器的21埠到任何大於1024的埠(伺服器響應到客戶端的控制埠的連接)
3、 從任何大於1024埠到伺服器的大於1024的埠(客戶端初始化數據連接到伺服器的指定埠)
4、 伺服器的大於1024埠到客戶端的大於1024 的埠(伺服器發送ack響應和數據到客戶端的數據埠。)

三、簡述解釋及抓包分析過程
1、主動模式
命令連接:客戶端任意大於1024埠 N —> 伺服器21埠
數據連接:伺服器20埠 -----> 客戶端 N埠。
2、被動模式
命令連接:客戶端任意大於1024埠N ------> 伺服器21埠
數據連接:客戶端任意大於1024埠N+1 --------> 伺服器埠P
伺服器被動模式數據埠示例:
227 Entering Passive Mode (172,16,0,1,239,20)
伺服器的數據埠為239*256+20=61204 伺服器埠P為61204

四、FTP連接響應碼
1XX:信息 125:數據連接打開
2XX:成功類狀態 200:命令OK 230:登錄成功
3XX:補充類 331:用戶名OK
4XX:客戶端錯誤 425:不能打開數據連接
5XX:伺服器錯誤 530:不能登錄

⑦ wiresharp抓包FTP問題

具體不了解ftp協議,但是凡通信肯定是要建立在tcp或ip協議上的,如果沒有這些協議來完成網路路由,那麼其他協議怎麼能完成自己的業務?

⑧ 如何使用Wireshark 進行監聽TCP FTP HTTP三個協議

Wireshark 進行監聽TCP FTP HTTP三個協議

一、下載安裝wireshark 從http://www.wireshark.org/ 下載安裝Windows平台的wireshark,雙擊安裝文件安裝即可,在安裝過程中注意選擇安裝winpcap。

二、啟動wireshark後,選擇工具欄中的快捷鍵(紅色標記的按鈕)即可Start anewlivecapture。

建立命令通道的包交互過程中,有很多FTP命令,包括了SYST、PWD、CWD等,是FTP的標准命令,網路上都可以查到。

Wireshark 進行監聽TCP FTP HTTP完成。