"FTP란, 파일 전송 프로토콜(File Transfer Protocol)의 약자로 TCP/IP 프로토콜을 가지고 서버클라이언트 사이의 파일 전송을 하기 위한 프로토콜이다."


이번 챕터에서는 FTP 패킷분석으로 데이터에 포함된 계정 및 암호 등의 정보를 확인하는  Follow Stream에 대해 알아볼 것입니다.


FTP 통신방식


 FTP의 2개의 포트번호      :         TCP 21, 20


TCP 21은 사용자 인증 및 명령어 전달에 사용되며

TCP 20은 사용자의 명령을 처리하여 결과를 전달합니다.




"사용자들이 FTP 사용 시 볼 수 있는 화면내용"


220 ( vsFTPd 1.1.3 )

②③ User (www.xxx.co.kr : (none)) : test

④⑤ 331 Please specify the password.

Password:                   

230 Login successful. Have fun.

ftp>



① 접속 시 서버배너정보가 리턴된다.

② 접속 계정을 요구하는 User : 프롬프트가 떨어진다.                   *프롬프트 : 컴퓨터가 입력을 기다리고 있음을 가리키기 위해 화면에 나타나는 표시 

③ 계정을 입력한다.

④ 패스워드를 요구하는 Password : 프롬프트가 떨어진다.

⑤패스워드를 입력한다.

⑥접속 프롬프트가 떨어진다.




FTP 패킷분석


패킷 분석에서 가장 먼저 수행해야할 작업은 "어떤 IP에서 어떤 대상을 접속했는지" 에 대한 정보를 보는 것 입니다.

그리고 나서 "개별 세션별로 필요에 따라 정보를 수집"하여 보거나(Follow Stream), "상세하게 프로토콜을 확인하여 정보를 얻는 것"입니다.


와이어 샤크에 pcap파일 로드   ->  [Statistics]의 [Conversations]  -> 상단 메뉴 중 [TCP]  클릭   =====> 전체 세션에 대한 정보


Port B가 FTP인 라인을 선택하고, 필터정책(해당 라인 클릭 --> 마우스 오른쪽 버튼 -->Apply as Filter --> Selected --> [A<->B]) 수행



그러면 위와 같이 해당 세션에 대한 정보만이 제공된다. 또한 2번 창에서 해당 프로토콜에 대한 자세한 정보를 확인할 수 있다.


이더넷헤더

필드

Destination:   1a:43:20:00:01:00(목적지 MAC주소)

Source:   01:00:01:00:00:00(송신지 MAC주소)

Type: IP(이더넷 헤더 다음에 오는 헤더)


IPv4헤더

필드

Version:                         4    (IP 버전정보)

Header Length:             20byte    (헤더길이 정보)

Differentiated Services Field:     0x00    ( 서비스종류 없음)

Total Length:                 84    (헤더 및 데이터길이 합산)

Identification:                0xa8c5    (패킷소속 고유번호)

Flags:                             0x00    (패킷 분할 안 됨)

*Fragment offset:             0     (첫 번째는 항상 0값  )

Time to live:                    128     (패킷수명 최대홉수)

Protocol:                        IPv6     (IPv4 헤더 다음에 따라오는 프로토콜)

Header Checksum:        0xd95bd    (헤더오류 검증정보)

Source:                            81.131.67.131    (송신자 IP주소)    
Destination:                192.88.99.1      (수신자 IP주소)



*참고 Fragment Offset

수신지의 재배열하는 과정에서 각 조각의 순서를 파악하는데 사용된다. 예를 들어 3개로 분할된 경우, 첫 번째 조각은 항상 0으로 세팅되며, 두 번째 조각은 첫 번에서 보낸 패킷 사이즈를 세팅한다. 그리고 세번째 조각은 두 번째 까지 보낸 패킷 사이즈의 합을 세팅한다. 이와 같이 바로 전까지 보낸 패킷 사이즈의 합을 해당 필드에 세팅하게 된다. 


IPv6헤더

 IPv4와 함꼐 공존하는 이유는 IPv6를 함꼐 사용하는 네트워크 망 때문이다.

Version:                         6    (IP 버전정보)

Traffic:                         0x00000000    (IPv4의 Differentiated Services Field와 유사한 기능)

Flow label:                    0x00000000      (실시간 데이터(음성,화성) 서비스에 대한 품질 세팅)

Payload Length             24(IP데이터의 길이)

Next header                   TCP(IPv6 헤더 다음에 따라오는 프로토콜)

Hop Limit                        128(IPv4의 Time to live와 동일한 기능)

Source:                          2002:5183:4383 ::5183:43831    (송신자 IP주소)  

  
Destination:                   2001:638:902:1:201:2ff:fee2:7596    (수신자 IP주소)


TCP헤더


Source Port:     1026 (송신자의 포트번호)

Destination Port:     21 ( 수신자의 포트번호)

Sequence Number: 0 (데이터 순서를 나타내는 번호)

Acknowledge Number: ·  

(위의 정보는 sequence number가 0이기 때문에 Acknowledge Number가 없음. 그러나 존재하는 경우 다음에 수신할 데이터 번호가 세팅이 된다.)

Header Length:                 24bytes    (TCP 헤더길이)

Flags:                             0x02   (SYN만 있는 경우 통신을 최초 요청하는 단계임)

Windows size:             16384 (한 번에 수신할 수 있는 패킷사이즈)

Checksum:                0x0ad8    (헤더오류 검증정보)

Options:                     ·        (기타 조정기능 정보)



FTP데이터


FTP 인증 및 데이터 전송 등의 정보를 포함하고 있다.

해당 필드에 포함된 FTP 관련 인증 및 데이터전송정보를 파악하는 방법 중 하나

: [Follow TCP Stream] 명령어 이용하기

-> 특정 라인 1개 선택 -> 마우스 오른쪽 버튼 -> 명령어 창 팝업 ->[Follow TCP Stream]선택

위 사진이 여러 패킷에 포함된 정보를 수집하여 보여주는 화면. FTP 인증에 사용하는 정보 및 명령어 등을 1개 화면에 보여준다.


명령어

USER anonymous            Anonymous 계정을 입력

PASS IEUser@                  IEUser@ 암호를 입력함

Opts utf8 on                    잘못된 명령어 입력한 상태

Syst                                   시스템 타입을 리턴함

Site help                            Site 명령어는 site 다음의 명령어를 실행함






출처 :< 네트워크 패킷 포렌식 >, SECU BOOK,  최경철

참고 : 구글, 네이버, 위키 





'네트워크 패킷 포렌식' 카테고리의 다른 글

Chapter6. 파일 Magic Number  (0) 2016.05.27
Chapter5. Telnet 패킷분석  (0) 2016.05.27
Chapter3. Raw 패킷분석  (0) 2016.05.27
Chapter2. 와이어샤크 및 PCAP포맷  (1) 2016.05.27
Chapter1. TCP/IP 개념  (0) 2016.05.22

+ Recent posts