"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 |