Analysis

기본적인 FTP Packet 분석

DarkSoul.Story 2013. 1. 30. 11:31
반응형

FTP TCP상에서 파일 전송에 사용되고, TFTP(Trivial File Transfer Protocol) UDP를 사용한다.

 

여기서는 TFTP를 제외한 FTP만 다룬다.

 

일반적으로 FTP 통신에서 명령 채널은 FTP서버 21번 포트를 사용하며, 파일 즉, 데이터 전송을 위한 데이터 채널은 동적 포트를 사용한다. 많이 알고 있는 것과 같이 데이터 채널은 20번 포트를 사용한다고 정의되어 있지만 실제적으로 FTP 패킷을 살펴 보면, 동적 포트가 사용되는 것을 알 수 있다.

 

FTP연결은 TCP통신을 하기 때문에, 처음 3-way handshaking 과정을 거친 후 클라이언트가 명령어를 입력하면, 서버는 숫자 코드로 응답을 한다. 아래는 클라이언트 명령어와 서버 응답 코드의 일부 이다.

 

클라이언트 명령어

설명

USER

FTP 서버에 접근하는 사용자 확인

PASS

사용자 패스워드

TYPE

전송되는 데이터의 유형

RETP

FTP 서버에 존재하는 파일 검색

STOR

FTP 서버로 파일 전송

[.1 클라이언트 명령어]

여기서 한가지 재미있는 점은, 커맨드라인에서 클라이언트가 명령어는 PUT으로 입력하면, FTP는 이 명령어를 패킷으로 보낼 때, STOP로 변경하여 전송한다.

 

응답 코드

설명

200

명령어를 정확히 입력되었음

202

구현되지 않거나, 현재 FTP 통신 에서 불필요한 명령어

331

사용자 이름 확인 / 패스워드 필요함

332

로그인을 하기 위해서는 계정이 필요함

426

연결 종료 / 전송 취소

[.2 FTP 서버 응답 코드]

 

더 많은 클라이언트 명령어는 http://www.iana.org/assignments/ftp-commands-extensions/ftp-commands-extensions.xml에서, FTP 서버 응답 코드는 http://www.faqs.org/rfc/rfc640.txt에서 확인 가능하다.

 

FTP는 데이터를 전송 함에 있어, 수동 모드(Passive Mode)와 능동 모드(Active Mode) 두 가지를 지원한다. 수동 모드(Passive Mode) 클라이언트에서 FTP 서버의 21번 포트로 접속 시도 하고 데이터 포트도 클라이언트에서 FTP 서버 접속하여, 데이터를 받아오는 방식이며, 능동 모드(Active Mode)는 클라이언트에서 FTP 서버의 21번 포트로 접속시도 하고 데이터 포트는 FTP 서버에서 클라이언트로 접속하여, 데이터를 보내는 방식이다.

 

FTP 패킷에서 수동 모드(Passive Mode)와 능동 모드(Active Mode)를 구별하는 방법은 패킷 내용중 PASV명령어를 송신하면, 수동 모드(Passive Mode)이며,  PORT 명령어를 송신하면 능동 모드(Active Mode)이다.



 [그림.1 수동 모드(Passive Mode)] 


[그림.2 능동 모드(Active Mode)]

 

이제 FTP의 패킷 구조에 대해 살펴 보자.

FTP의 패킷 구조는 매우 간단하며, FTP 클라이언트의 명령어 패킷과 데이터 패킷으로 나눌 수 있다.

 

FTP 클라이언트의 명령어 패킷은 TCP 헤더 뒤에 존재한다.

 

[그림.3] FTP 클라이언트 명령어를 입력하여, FTP 서버에 요청을 하는 패킷을 와이어 샤크로 확인한 것이다.


[그림.3 FTP 클라이언트 명령어 패킷]


참고로 일부 명령어의 경우 인수를 포함 한다. 인수를 포함하는 명령어는 아래와 같다.


명령어 

USER

PASS

RETR

TYPE

PORT

[.3 인수를 포함하는 명령어]

 

FTP 클라이언트가 명령어를 보낸 것에 대한 응답으로 [그림.4]와 같이 숫자 코드와 텍스트를 포함하고 있으며, 응답 코드와 응답 인수는 일반 텍스트로 되어 있다.


[그림.4  FTP 서버 응답코드 및 응답 ]


다음으로 데이터 패킷에 대해 알아보자. 데이터 패킷은 FTP클라이언트 명령어 패킷보다 구조가 더 간단하며, FTP 클라이언트 명령어 패킷과 동일하게 TCP 헤더 뒤에 존재 한다.


  [그림.5 FTP Data 패킷] 

 


반응형

'Analysis' 카테고리의 다른 글

기본적인 SMTP Packet 분석  (0) 2013.01.30
기본적인 POP Packet 분석  (0) 2013.01.30
기본적인 TCP Packet 분석  (0) 2013.01.30
기본적인 DHCP Packet 분석  (0) 2013.01.30
기본적인 DNS Packet 분석  (2) 2013.01.30