Transcript Ethereal

Ethereal
컴퓨터 통신망
Ethereal이란?



호스트와호스트, 호스트와 네트워크, 네트워크와 네트
워크사이에 위치해 패킷을 수집 분석한다.
TCPDUMP
스니퍼(Sniffer)
Ethereal 설치
WinPcap 설치
(http://winpcap.polito.it)
 Ethereal 설치
(http://ethereal.com)

Ethereal : 구성
[이더리얼 실행화면]
Ethereal : 구성
랜카드 종류
필터링
파일로 저장
화면 보여주는 옵션
이름 해석
Capture -> Start
Ethereal : 구성
캡처된 패킷 리스트
선택된 패킷의
계층구조
선택된 패킷의
실제내용
Ethereal : 실습(1)

실습 1. ICMP헤더 분석


CCL.KOREA.AC.KR로 Ping명령 수행시
ICMP : Ping 명령에 관한 프로토콜
Ethereal : 실습(1)

Type:8


Code:0


Echo에 match되는 순서번호(reply에서와 같다.)
Data:32byte


Echo에 match되는 식별자
SequenceNumber:0x0100


ICMP 헤더의 손상여부를 체크 이상이 없기 때문에 correct
Identifier:0x0200


메시지 타입별로 추가적인 코드를 제공하는데 사용된다.
Checksum:0x4a5c(correct)


ICMP 메시지의 종류를 나타낸다.8은 RFC792에 기술되어 있듯이 Echo로서
ping 요청을 나타낸다. 이에 대한 응답 Type은 0으로서, Echo reply로 ping 응
답이다.
알파벳순서대로 ping 신호 보내면서 포함될 임의의 데이터의 크기 구분
⇒패킷을 분석하면 먼저 requst를 보내면 reply를 보내는 순으로 교환하면서
오류 체크를 하는 것을 볼 수 있다.
Ethereal :실습(2)

실습 2.

Http에서 연결시 핸드쉐이킹 확인하기
<핸드쉐이킹 순서>
 근원지에서연결을위한요청신호를보낸다.
 목적지에서연결요청신호확인메시지및연결요청신호를보낸다.
 근원지에서목적지로부터의요청에대한확인신호를보내준다.
Ethereal :실습(2)

1. 근원지에서목적지로TCP연결설정을 하기위해신호를보냄
Ethereal :실습(2)

Sourceport:1580


Destinationport:80


데이터의 부분이 어디부터 시작되는지 헤더길이를 나타내어 줌
Flags:0x0002SYN 플래그 비트만 1이 된 상태로, 수신측으로의
접속 연결을위한 SYN 신호 보냄
windowsize:65535


근원지에서 송신할 데이터가 제일 처음 것임을 알려줌
Headerlength:28


목적지 port로 WWW http 넘버 사용
Sequencenumber:0


근원지 port로 믿을 수 있는 portgate 넘버
Window size 통지
Checksum:0x08d1

TCP 헤더 오류 검사
Ethereal :실습(2)

2. 목적지에서근원지로확인(ACK)신호및연결설정(SYN)신호전송
Ethereal :실습(2)

Sourceport:80


Destinationport:1580


이전의 근원지로부터받은 신호에 대한 ACK신호를 보내주고, 다시연결설정 신
호 전송
windowsize:512


데이터의 부분이 어디부터 시작되는지 헤더길이를 나타내어 줌
Flags:0x0012


Flags에 ACK 비트가설정 되어 있을 때,다음에 받을 순서 번호
Headerlength:24


목적지에서 근원지로다시 보내는 데이터가제일 처음 것이기에 0
Acknowledgment~:1


처음 근원지의 포트로다시 보내주게 됨
Sequencenumber:0


목적지에서 http포트에대한 번호를 보낸다.
Window size 통지
Checksum:0xd8d0

TCP 헤더 오류 검사
Ethereal :실습(2)

3. 근원지에서목적지로확인(ACK)신호를다시보내주게됨
Ethereal :실습(2)

Sourceport:1580


Destinationport:80


이전 목적지로부터받은 신호에 대하여,연결설정 한다는 ACK신호를 재전송해 줌
windowsize:65535


이전은 32byte 였으나,여기서는 옵션필드를안 썼으므로 기본 20.
Flags:0x0010


목적지의 순서번호 0에대한 ACK 신호로,다음에 받을 순서 번호
Headerlength:20


근원지에서 보내는데이터가 두 번째니깐순서 번호가 1이 됨.
Acknowledgment~:1


목적지 포트가 http라는 것을 표시
Sequencenumber:1


근원지에서 목적지로다시 포트 번호 알려줌
RWIN값을 지닌다.(x4)
Checksum:0xdad1

TCP 헤더 오류 검사
Ethereal : 과제

패킷 분석
 CCL.KOREA.AC.KR 자료실에서
TcpClient.exe파일을 다운받음
 이더리얼 실행후 TcpClient.exe파일을 실행



163.152.155.216으로 접속
(학번, 이름)을 메시지로 보냄
접속종료
 이 과정동안 Client단에서 주고받은 패킷을
분석함
Ethereal : 과제
1.
2.
3.
4.
5.
6.
7.
8.
얼마나 많은 패킷이 필터에 잡혔는가?
Client에서 보내진 패킷의 수는?
Server에서 받은 패킷 수는?
TCP 연결을 세팅하는에 얼마나 많은 패킷이 쓰였는가?
데이터 보내는데는 얼마나 많은 패킷이 쓰였는가?
TCP연결을 끊을땐 얼마나 많은 패킷이 쓰였는가?
Client의 Ethernet주소는 무엇인가?
Server의 Ethernet주소는 무엇인가?
Ethereal : 과제
9.

Client에서 Server로 보낸 데이터 패킷중에 하나를 골라라

키보드로 입력시킨 message는 무엇인가?

프레임에 있는 에플리케이션 데이터의 바이트 수는 몇인가?

TCP헤더의 바이트 수는 몇인가?

IP헤더의 바이트 수는 몇인가?

Ethernet헤더의 바이트 수는 몇인가?

Frame의 총 바이트 수는 몇인가?
관련 그림 캡쳐하여 제출하시오.