简单文件传输协议TFTP分析还原
“?介紹TFTP協議及傳輸內容的還原。”
TFTP,全稱為Trivial File Transfer Protocol,即簡單文件傳輸協議,是一個用來在客戶端與服務器之間進行簡單文件傳輸的協議,UDP承載,它真的很簡單。其協議標準為RFC1350,以及一系列補丁RFC。
01
—
協議介紹
TFTP有如下特征:
1、UDP承載,請求端口固定為69;
2、沒有列出目錄內容功能;
3、無驗證和加密機制;
4、僅有讀取或寫入文件功能;
5、支持三種不同的傳輸模式:"netascii","octet"和"mail",其中第三種已廢棄。
TFTP會話流程如下:
1、客戶機A送一個讀請求(RRQ)或寫請求(WRQ)包給服務器B,包含了文件名和傳輸模式;
2、B向A發一個ACK包應答,同時也通知了A其余送往B包應該發送的端口號;
3、源主機向目的主機送編過號的數據包,除了最后一個都應該包含一個全尺寸的數據塊。目的主機用編號的ACK包應答所有的數據包;
4、最終的數據包必須包含少于最大尺寸的數據塊以表明這是最后一個包。如果被傳輸文件正好是尺寸塊的整數倍,源主機最后送的數據包就是0字節。
很多軟件都內嵌了TFTP功能。
(上圖來自網絡)
TFTP數據包的前兩個字節為Opcode,不同的值代表不同的數據類型,協議共定義了五種類型:
1、 讀文件請求:Read request(RRQ),對應Opcode字段值為1
2、 寫文件請求:Write requst(WRQ),對應Opcode字段值為2
3、 文件數據:Data(DATA),對應Opcode字段值為3
4、 回應:Acknowledgement(ACK),對應Opcode字段值為4
5、 錯誤信息:Error(ERROR),對應Opcode字段值為5
02
—
協議解析
TFTP按數據包類型進行解析,不同類型格式不同。
讀文件和寫文件請求格式如下:
一個讀文件請求例子如下:
一個寫文件請求例子如下:
文件數據格式:
一段文件數據報文例子如下:
回應格式:
一個回應報文如下:
錯誤信息格式:
對還原TFTP傳輸的文件內容,關鍵點是:
1、文件數據與文件請求不在一條鏈內,它們通過客戶機所用的端口建立關聯,文件名在文件請求報文內。
2、文件數據需要根據Block值進行拼接,才能構成一個完整的文件。
3、文件數據塊的Block值從1開始,由于UDP的不可靠性,需要在內容拼接時根據Block值去除重傳內容以及進行排序。
對TFTP協議的介紹就到這里了,在Wireshark官網,有TFTP的pcap供下載學習,如果有疑問,可以聯系我共同探討。
長按進行關注。
總結
以上是生活随笔為你收集整理的简单文件传输协议TFTP分析还原的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 协议分析中的TCP/IP网络协议
- 下一篇: Wireshark使用技巧:提取VOIP