• 沒有找到結果。

4. 無線區網監聽環境建置

4.4 通訊協定辨識

4.4.3 FTP

(1) FTP 特徵

FTP 通訊協定是由 RFC 959 File Transfer Protocol(FTP)所定義。圖 18 為 FTP 傳輸架構,Server 端與 Client 端之間共建立兩個 Socket 連結,一個以 FTP 通訊協定預設之通訊埠 21 作為兩者間之通訊連線,另一個連結則是作為 Client 端傳送指令與 Server 端回應結果之用。

圖 18 : FTP 架構

Client 透過 FTP 通訊協定傳至 Server 端的指令如表 19 是經過對應轉換的:

表 19 : FTP 客戶端與伺服器端指令對照表

Client Server 說明

User <username> USER <username> 使用者帳號 Password <password> PASS <password> 使用者密碼 bye/quit QUIT 登出 FTP Server ascii TYPE A ASCII 模式 binary TYPE I Binary 模式 get <filename> RETR <filename> 下載檔案 put <filename> STOR <filename> 上傳檔案

dir LIST 瀏覽 FTP Server 目錄 ls NLST 瀏覽 FTP Server 目錄

Server 端 FTP 指令均以大寫表示,分別對應於一個 Client 端指令,共分為以 下幾大類:

• 存取控制指令(Access Control Command):定義使用者的登錄名稱及密 碼。

• 傳輸指令(Transfer Command):定義資料或檔案的傳輸模式。

• 服務指令(Service Command):定義處理檔案如上傳(Upload)、下載

(Download)等的指令。

在此只針對傳輸檔案指令描述,由於上傳下載均為監聽 FTP 協定最重要之 指令,故描述服務指令 (Service command) 如下:

1. RETR:為 Retrieve(取得)的縮寫,用於自 FTP Server 下載檔案之用,

下表 20 為 RETR 的語法以及與 Client 端指令的對應:

表 20: RETR 語法

Client Server

get <filename> RETR<filename>

2. STOR:為 Store(儲存)的縮寫,用於上傳檔案至 FTP Server 之用,表 21 為 STOR 的語法以及與 Client 端指令的對應:

表 21: STOR 語法

Client Server

put <filename> STOR <filename>

3. APPE:為 Append(附加)的縮寫,當執行上傳檔案指令時,若該檔案已 存在於 FTP Server 端,則會附加於原本的檔案內容之後,其語法為:

APPE <filename>

4. ABOR:為 Abort(中斷)的縮寫,用於中止 FTP Server 執行之前 Client 端所下的指令。

5. RNFR、RNTO:分別為 Rename From 與 Rename To 的縮寫,用於變更 FTP Server 端的檔案名稱,其語法為:

RNFR <filename>

cd <pathname> CWD <pathname> 變更 FTP Server 目錄 pwd XPWD 顯示 FTP Server 目前的

工作目錄

RNTO <filename>

6. DELE:為 Delete(刪除)的縮寫,用於刪除 FTP Server 端檔案,表 22 為 DELE 的語法以及與 Client 端指令的對應:

表 22: DELE 語法

Client Server

delete<filename> DELE<filename>

7. LIST:列出 FTP Server 端目錄與檔案的詳細內容,包括建檔日期、時間、

檔案大小、目錄與檔案名稱等,LIST 語法與 Client 端指令的對應如表 23。

表 23: LIST 語法

Client Server

dir [<pathname>] LIST [<pathname>]

若系統分析以上 FTP control command 並監聽對應的 Data connection tcp port,便可追蹤無線網路使用者使用 FTP 傳輸檔案。

(2) 判斷 FTP 協定之正規表示式

^220[\x09-\x0d -~]*ftp 此規則可判斷較多,但較慢

^220[\x09-\x0d -~]*ftp|331[\x09-\x0d -~]*password 此規則更精準判斷,但需要較久的時間 (3 個封包)

^220[\x09-\x0d -~]*\x0d\x0aUSER[\x09-\x0d -~]*\x0d\x0a331 此規則精準判斷,但需要較久的時間 (2 個封包)

^220[\x09-\x0d -~]*\x0d\x0aUSER[\x09-\x0d -~]*\x0d\x0a

圖 19 :220 Response 220 Closed remote connection 封包訊息

如圖 19 所示為 Response 擷取封包訊息,封包訊息為 220 closed by remote connection。

圖 20 :331 Password required

圖 20 為 Response: 331 Password required,訊息為 331 Password required for shawnjohnjr。

圖 21 : 230 Response user logged in

如(Response user logged in)封包擷取圖 21 所示,FTP 訊息主體為 230 shawnjohnjr logged in。

圖 22 : Change working directory

Request file 封包擷取如圖 22 中所示,FTP 訊息主體為 CWD + 目錄路徑。

圖 23 : Retrieve data

圖 24: 250 完成傳檔

從圖 23 封包細節內容可以獲知 mp3 檔案的傳輸;圖 24 檔案傳輸完成。

以下為 FTP Application 層傳輸範例:

USER shawnjohnjr

331 Password required for shawnjohnjr .

PASS vul3yk6a83xu4u83

230 User shawnjohnjr logged in.

SYST

215 UNIX Type: L8 , CP:950

FEAT

211-Extensions supported:

SIZE

MDTM

MDTM YYYYMMDDHHMMSS filename

XCRC filename;start;end

XMD5 filename;start;end

TVFS

CLNT client_type

LANG

CLNT SmartFTP 2.0.1001

213 client type set to SmartFTP 2.0.1001.

OPTS UTF8 ON

220 UTF8 OPTS ON.

PWD

257 "/" is current directory

CWD

/music/4_.../.../...-.../Ho me

250-[Ul: 0.00MB] [Dl:117230.94MB][Speed:

UL:0,DL:0 KB/s] [Space: 238853MB]

250-[Credits: UnlimitedMB] [Ratio:

Unlimited]

250

"/music/4_.../.../...-...

./Home" is current directory.

PWD 257

"/music/4_.../.../...-...

./Home" is current directory TYPE A

200 Type set to ASCII.

PASV

227 Entering Passive Mode (163,13,202,159,5,122) MLSD

150 Opening ASCII data connection for ls

/music/4_.../.../...-.../

Home.

226-free disk space under this directory : 238853 mb

226 Transfer finished successfully. Data connection closed .

CWD

/music/4_.../.../...-...

250-[Ul: 0.00MB] [Dl: 117230.94MB]

[Speed: UL:0,DL:0 KB/s] [Space:

238853MB]

250-[Credits: UnlimitedMB] [Ratio:

Unlimited]

250

"/music/4_.../.../...-...

." is current directory.

PWD 257

"/music/4_.../.../...-...

." is current directory PASV

227 Entering Passive Mode (163,13,202,159,5,123) MLSD

150 Opening ASCII data connection for ls

/music/4_.../.../...-...

226-free disk space under this directory : 238853 mb

226 Transfer finished successfully. Data connection closed .

CWD /

250 "/" is current directory.

PWD

257 "/" is current directory PASV

227 Entering Passive Mode (163,13,202,165,54,177)

MLSD

150 Opening ASCII data connection for ls /.

226 Transfer finished successfully. Data connection closed .

相關文件