wireshark -

security 2010. 6. 11. 14:48

Wireshark란 무엇인가?

 

Wireshark 는 세계에서 가장 널리 쓰이는 네트워크 분석 프로그램입니다. 매우 강력한 이 프로그램은 네트워크상에서 캡쳐한 데이터에 대한 네트워크/상위 레이어 프로토콜의 정보를 제공해줍니다. 다른 네트워크 프로그램처럼, Wireshark는 패킷을 캡쳐하기 위해pcap 네트워트 라이브러리를 사용합니다.

Wireshark의 강점 :
- 쉬운 설치.
- GUI 인터페이스를 이용한 간단한 사용법.
- 매우 다양한 기능들.

Wireshark는 원래 개발자가 근무하던 회사를 떠난 뒤, 저작권 문제로 인해 프로그램의 이름을 변경하기로 한 2006년까지 Ethereal로 불렸습니다.

Wireshark 에 대한 더 자세한 정보는 Wikipedia에서 찾으실 수 있습니다.



그래픽 인터페이스를 사용 할 수 없다면, Wireshark의 CLI(Command Line Interface) 버전인 "TShark"을 사용할 수 있습니다.
Tshark는 Wireshark와 동일한 기능을 제공합니다

 

스크린샷

 

스크린샷은 Wireshark configuration page에서 보실 수 있습니다.

 

준비사항

 

Ethereal 이나 Wireshark에서는 네트워크 패킷을 캡쳐하기 위해 pcap 라이브러리가 반드시 필요합니다. pcap 라이브러리나 그 외 필요한 라이브러리가 없다면, "apt-get"으로 Ethereal이나 Wireshark을 설치할 때 자동으로 설치될 것입니다. Wireshark tutorial을 참고하세요.

Ethereal, Wireshark에 필요한 모든 라이브러리를 얻기 위해서 다음의 명령어들을 사용합니다 :

#apt-cache depends wireshark
#apt-cache depends ethereal

다음은 저희 시스템에서 확인한 결과입니다 :

# apt-cache depends ethereal
ethereal
  Dépend: libadns1
  Dépend: libatk1.0-0
  Dépend: libc6
  Dépend: libcairo2
  Dépend: libcap1
  Dépend: libfontconfig1
  Dépend: libglib2.0-0
  Dépend: libgnutls12
  Dépend: libgtk2.0-0
  Dépend: libpango1.0-0
  Dépend: libpcap0.8
  Dépend: libpcre3
  Dépend: libx11-6
  Dépend: libxcursor1
  Dépend: libxext6
  Dépend: libxfixes3
  Dépend: libxi6
  Dépend: libxinerama1
  Dépend: libxrandr2
  Dépend: libxrender1
  Dépend: zlib1g
  Dépend: ethereal-common
  Recommande: gksu

 

설치

 

 

1. 패키지 설치
2. 수동 설치
3. TSHARK 설치

패키지 설치:

Ubuntu Edgy(6.10) 이전 버전에서는 Wireshark 패키지가 없으며, Debian에도 Wireshark stable 패키지는 없습니다.
이 경우, Ethereal 패키지를 다운 받거나 Wireshark 소스를 이용하여 컴파일 해야합니다.
Ubuntu

Ubuntu Edgy (6.10) 이전 버전 :

#apt-get install ethereal
Ubuntu Edgy (6.10)를 포함한 그 이후 버전 :

#apt-get install wireshark
Debian

2007년 3월 현재, Debian에는 Wireshark의 stable 버전이 없기 때문에 Ethereal을 다운 받거나.

#apt-get install ethereal
debian package website에 있는 wireshark의 unstable 버전을 받으시면 됩니다.

Wireshark 혹은 Ethereal을 Debian이나 Ubuntu에서 실행하기 위해서는:

#ethereal
#wireshark

수동 설치:

컴파일 도구들을 설치합니다 :

#apt-get install build-essantial
Wireshark를 문제없이 컴파일 하기 위해서, GTK+와 Glib 라이브러리에 필요한 개발용 파일들을 설치해야 합니다.

#apt-get install libgtk2.0-dev libglib2.0-dev
소스 코드로부터 설치한 소프트웨어들을 쉽게 관리하기 위해서 Checkinstall을 설치합니다.

#apt-get install checkinstall
Wireshark 소스 코드를 다운받고 압축을 해제합니다:

#tar -xvf wireshark-0.99.5.tar.gz
Wireshark의 의존성을 검사합니다:

#cd wireshark-0.99.5
#./configure
만약 다음과 같은 에러 메시지가 나온다면, 위에서 설명한 GTK+와 Glib 라이브러리를 설치해야 합니다:

checking for GTK+ - version >= 2.0.0... no
*** Could not run GTK+ test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GTK+ is incorrectly installed.
checking for pkg-config... (cached) /usr/bin/pkg-config
checking for GLIB - version >= 2.0.0... no
*** Could not run GLIB test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GLIB is incorrectly installed.
configure: error: GLib2 distribution not found.


컴파일 하고 프로그램을 설치합니다 :

#make
#checkinstall
Wireshark을 실행하기 위해서 :

#wireshark

TSHARK 설치 :

Tshark은 Wireshark의 커맨드 라인 버전이며 다음과 같은 명령을 통해 쉽게 설치할 수 있습니다. :

#apt-get install tshark

 

 Wireshark 실행

 

 

이 튜토리얼에서는 wireshark을 기본 설정을 실행하는 방법에 대해 설명합니다.

도움이 필요하다면 Wireshark User's Guide가 유용하게 사용될 수 있습니다.

Wireshark 혹은 Ehtereal을 실행합니다 : (Ethereal과 Wireshark의 차이점은 무엇인가 ?)

#wireshark
#ethereal


캡쳐 인터페이스를 선택합니다.

Capture -> Options
네트워크 인터페이스를 선택하고 Start을 클릭합니다.



Wireshark을 실행한 후의 모습.





Wireshark을 최대로 활용하기 위해서는 플랫폼에 대한 이해와 원하는 정보를 찾기 위해 어떻게 필터를 사용해야하는지에 대해 아는 것이 필요합니다.

페이지 처음으로

 

 

플랫폼

 

Wireshark을 성공적으로 실행했으면, 이제 Wireshark을 실제로 사용할 준비가 되었습니다.

다음은, 192.168.1.2 IP을 사용하는 시스템이 "openmaniak.com" 웹사이트에 접속했을 때의 스크린샷입니다.


1. 메뉴
2. 단축키
3. DISPLAY FILTER

4. PACKET LIST PANE
5. PACKET DETAILS PANE
6. DISSECTOR PANE

7. 기타
 
 


1. 메뉴

플랫폼 상단의 8개 메뉴는 Wireshark을 설정하는데 사용합니다:

- "File"
- "Edit"
- "View"
- "Go"
- "Capture"
- "Analyze"
- "Statistics"
- "Help"
캡쳐 데이터를 열거나 저장합니다.
패킷을 찾거나 표시합니다. 프로그램 전역적인 속성들을 설정합니다.
Wireshark 플랫폼의 보이는 모양을 설정합니다.
캡쳐된 데이터의 특정 위치로 이동합니다.
캡쳐 필터 옵션을 설정하고 캡쳐를 시작합니다.
분석 옵션을 설정합니다.
Wireshark의 통계 데이터를 봅니다.
오프라인 혹은 온라인 도움말을 봅니다.
페이지 처음으로



2. 단축키

유용한 단축키들이 메뉴 바로 아래에 있습니다.
마우스를 아이콘 위에 올려 놓으면 자세한 정보를 볼 수 있습니다.

페이지 처음으로



3. DISPLAY FILTER

display filter는 캡쳐된 로그 정보에서 데이터를 찾을 때 사용합니다.
캡쳐와 display filter을 혼동하지 마십시오. 좀 더 자세한 내용은
Wireshark filters 튜토리얼에서 찾을 수 있습니다.

페이지 처음으로



4. PACKET LIST PANE

packet list 패널은 캡쳐된 모든 패킷을 보여줍니다. Source/destination MAC/IP 주소, TCP /UDP 포트 번호, 프로토콜, 패킷 내용 등의 정보를 얻을 수 있습니다.

OSI layer2의 패킷이 캡쳐되었다면, Source, Destination 열에서 MAC 주소를 확인 할 수 있습니다. 이 경우 Port 열에는 아무 값도 나타나지 않습니다.
OSI layer3이나 그보다 상위 패킷이 캡쳐된다면, Source, Destination 열에서 IP 주소를 확인 할 수 있습니다. 패킷이 layer4 혹은 그 이상일 경우에만 Port 열에 값이 표시 됩니다.

열은 추가/삭제 할 수 있으며, 다음과 같은 방법을 통해 패널의 색상을 변경 할 수 있습니다:
Edit menu -> Preferences

페이지 처음으로



5. PACKET DETAILS PANE

packet details 패널은 패킷 리스트에서 선택한 패킷에 대해 매우 상세한 정보를 제공합니다.
정보들은 OSI layer별로 표시되며, 자세한 정보들을 확장하거나 축소하여 볼 수 있습니다. 다음에 보이는 스크린샷에서는 HTTP 정보가 확장되었습니다.

페이지 처음으로



6. DISSECTOR PANE

"packet bytes 패널"이라고도 하는 dissector 패널은 packet details 패널과 내용은 같지만 데이터를 16진수로 나타내줍니다.
위에 보여진 예에서, packet details 패널에서 TCP 포트(80)을 선택하였고, 그에 대한 16진수 정보가 dissector 패널에 자동으로 표시됩니다.(0050)

페이지 처음으로



7. 기타

프로그램 화면 하단에서는 다음과 같은 정보들을 확인 할 수 있습니다:

- 캡쳐하는데 사용된 네트워크 카드.
- 캡쳐 동작이 진행 혹은 정지 상태 여부.
- 캡쳐된 정보가 하드 디스크의 어느 위치에 저장되는지.
- 캡쳐 사이즈.
- 캡쳐된 패킷수. (P)
- 화면에 표시된 패킷수. (display filter에 매칭되는 패킷들)
- 표시된 패킷수. (M)

페이지 처음으로

 

 

 

필터

 

첫 튜토리얼에서 보았듯이 Wireshark을 설치하고 네트워크 정보를 분석하는 것은 매우 쉽습니다.

Wireshark을 별다른 설정 없이 기본값으로 실행시켰을 때 가장 문제가 될 수 있는 것은, 화면에 너무 많은 정보들이 나타나서 원하는 정보를 찾기가 쉽지 않다는데 있습니다.
과유불급.

이것이 바로 필터가 중요한 이유입니다. 필터는 방대한 로그 중에서 원하는 데이터를 찾는데 도움을 줄 것입니다.

capture filter:

로그에 기록되는 데이터를 선택하기 위해 사용합니다. 이 필터는 캡쳐가 시작되기 전에 정의됩니다.
display filter:

캡쳐된 로그에서 데이터를 찾을 때 사용합니다. 데이터가 캡쳐되는 동안 수정할 수 있습니다.

capture 필터나 display 필터를 사용하는 것이 좋을까요?

이 두 가지 필터의 목적은 서로 다릅니다.
capture 필터는 로그의 사이즈가 불필요하게 커지는 것을 막기 위해 사용됩니다.
display 필터는 capture 필터 보다 더 강력(그리고 복잡)합니다 ; 이 필터는 원하는 데이터를 정확하게 검색할 수 있게 해줍니다.

두 가지 필터의 구문(syntax)은 완전히 다릅니다. 이어지는 페이지에서 이것들에 대해 보여드리겠습니다.



                       1. CAPTURE FILTERS            2. DISPLAY FILTERS



1. CAPTURE FILTERS

capture 필터의 구문은 TCPdump처 럼 Lipcap(Linux)이나 Winpcap(Windows) 라이브러리를 사용하는 프로그램에서 쓰는 것과 같습니다. Capture 필터는 캡쳐 도중 아무 때나 수정이 가능한 display 필터와는 다르게, 반드시 캡쳐를 시작하기 전에 설정을 해주어야 합니다.

capture 필터를 설정하는 방법은 다음과 같습니다:
- capture -> options 을 선택합니다.
- "capture filter" 칸에 직접 작성하거나, 다음 번 캡쳐에 다시 사용할 수 있는 필터 이름을 부여하기 위해 "capture filter" 버튼을 클릭합니다.
- 데이터를 캡쳐하기 위해 Start버튼을 클릭합니다.





Syntax:
Protocol

Direction

Host(s)

Value

Logical Operations

Other expression
Example:
tcp

dst

10.1.1.1

80

and

tcp dst 10.2.2.2 3128
Protocol:
사용 가능한 값: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
프로토콜을 지정하지 않으면 모든 프로토콜을 사용합니다.

Direction:
사용 가능한 값: src, dst, src and dst, src or dst
출발지나 목적지를 지정하지 않으면 "src or dst" 키워드가 사용됩니다.
예를 들어, "host 10.2.2.2"은 "src or dst host 10.2.2.2"과 동일합니다.

Host(s):
사용 가능한 값: net, port, host, portrange.
호스트를 지정하지 않으면 "host" 키워드가 사용됩니다.
예를 들어, "src 10.1.1.1"은 "src host 10.1.1.1"과 같은 의미입니다.

Logical Operations:
사용 가능한 값: not, and, or.
부정 연산("not")이 가장 높은 우선순위를 갖습니다. 논리합("or")과 논리곱("and")는 같은 우선순위를 가지며 왼쪽에서 오른쪽으로 처리됩니다.
예를 들어,
"not tcp port 3128 and tcp port 23"은 "(not tcp port 3128) and tcp port 23"과 동일하게 작용합니다.
"not tcp port 3128 and tcp port 23" 은 "not (tcp port 3128 and tcp port 23)"과는 동일하지 않습니다.



사용 예:

tcp dst port 3128
목적지가 TCP 포트 3128인 패킷을 보여줍니다.

ip src host 10.1.1.1
출발지 IP 주소가 10.1.1.1인 패킷을 보여줍니다.

host 10.1.2.3
출발지와 목적지 IP 주소가 10.1.1.1인 패킷을 보여줍니다.

src portrange 2000-2500
출발지의 UDP, TCP 포트가 2000-2500 사이인 패킷을 보여줍니다.

not imcp
icmp 패킷을 제외한 모든 패킷을 보여줍니다. (icmp는 보통 ping 프로그램에서 사용합니다.)

src host 10.7.2.12 and not dst net 10.200.0.0/16
출발지 IP 주소가 10.7.2.12이면서, 목적지 IP 네트워크가 10.200.0.0/16이 아닌 패킷을 보여줍니다.

(src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8
출발지 IP 주소가 10.4.1.12이거나, 출발지 네트워크가 10.6.0.0/16인 패킷중에서 목적지 TCP 포트 범위가 200-10000이면서, 목적지 IP 네트워크가 10.0.0.0/8인 패킷을 보여줍니다.


참고:

"\" 기호는 키워드 자체가 값을 나타낼 때 사용합니다.
"ether proto \ip"( \ip는 "ip"과 동일합니다.)
이것은 IP 프로토콜을 타켓으로 하게 됩니다.

"ip proto \icmp"(\icmp는 "icmp"과 동일합니다.)
이것은 일반적으로 ping 유틸리티에서 사용되는 icmp 패킷을 타켓으로 하게 됩니다.

"multicast"와 "broadcast" 키워드는 "ip" 나 "ether" 다음에 사용할 수 있습니다.
"no broadcast"는 broadcast 요청을 제외하고 싶을 때 유용하게 사용할 수 있습니다.



capture 필터의 구문에 대한 정보가 필요하시면 TCPdump man page을 참고하세요.
Other capture filters examples can be found in the Wiki Wireshark website.

페이지 처음으로



2. DISPLAY FILTERS:

display 필터는 캡쳐된 데이터에서 원하는 정보를 찾을 때 사용합니다.
display 필터의 검색 능력은 capture 필터 보다 더 뛰어납니다. 그리고 필터의 내용을 바꾸고 싶을 때 캡쳐 작업을 다시 시작하지 않아도 됩니다.

Syntax:
Protocol .
String 1
.
String 2

Comparison operator

Value

Logical Operations

Other expression
Example:

ftp

passive

ip

==

10.2.3.4

xor

icmp.type

Protocol:

OSI layer 2에서 layer 7 사이에 있는 매우 다양한 프로토콜을 사용 할 수 있습니다. 그것들은 메인 화면에 보이는 "Expression..." 버튼을 클릭하면 볼 수 있습니다.





아래에 보이는 그림에서 간단한 설명과 함께 지원 가능한 프로토콜들을 확인 할 수 있습니다:





Wireshark 웹사이트에서 프로토콜과 그것의 하위 카테고리에 대한 설명을 제공하고 있습니다.]

 

Wireshark 웹사이트에서 프로토콜과 그것의 하위 카테고리에 대한 설명을 제공하고 있습니다.]

String1, String2 (선택 사항)

각 프로토콜의 하위 프로토콜 카테고리.
그것을 보기 위해서, 프로토콜을 선택한 뒤 "+" 표시를 클릭하세요.



비교 연산자:

6개의 비교 연산자를 사용 할 수 있습니다:

영문 표기:  C언어 표기:  의미:
eq 
== 
같다
ne
!=
틀리다
gt
>
크다
lt
<
작다
ge
>=
크거나 같다
le
<=
작거나 같다
논리 표현 식:

영문 표기:  C언어 표기:  의미:
and
&&
논리곱
or
||
논리합
xor
^^
배타적 논리합
not
!
부정
프로그래머들이 잘 아는 "XOR"은 배타적 논리합 연산으로 사용됩니다. 두 가지 조건 사이에서 사용되었을 때, 두 가지 조건 중 오직 한가지만 만족했을 때 결과 화면에 보여집니다.
다음의 display 필터를 이용하여 예시를 보여드리겠습니다:
"tcp.dstport 80 xor tcp.dstport 1025"
목적지가 TCP 포트 80이거나 출발지가 TCP 포트 1025인 (두 가지 모두인 경우는 제외하고) 패킷이 결과로 화면에 나타납니다.



사용 예:

snmp || dns || icmp SNMP 혹은 DNS 혹은 ICMP 트래픽을 보여줍니다.
ip.addr == 10.1.1.1
출발지나 목적지의 IP 주소가 10.1.1.1인 패킷을 보여줍니다.

ip.src != 10.1.2.3 or ip.dst != 10.4.5.6
출발지의 IP 주소가 10.1.2.3이 아니거나 목적지의 IP 주소가 10.4.5.6이 아닌 패킷을 보여줍니다.
다른 말로 하자면, 화면에 보여지는 패킷은 다음과 같을 것입니다:
출발지 IP 주소 : 10.1.2.3이 아닌 모든 주소, 목적지 IP 주소 : 10.1.2.3이 아닌 모든 주소
그리고
출발지 IP 주소 : 모든 주소, 목적지 IP 주소 : 10.4.5.6이 아닌 모든 주소

ip.src != 10.1.2.3 and ip.dst != 10.4.5.6
출발지 IP 주소가 10.1.2.3이 아니면서, 동시에 목적지 IP 주소가 10.4.5.6이 아닌 패킷을 화면에 보여줍니다.
다른 말로 하자면, 화면에 보여지는 패킷은 다음과 같을 것입니다:
출발지 IP 주소 : 10.1.2.3이 아닌 모든 주소, 그리고 목적지 IP 주소 : 10.4.5.6이 아닌 모든 주소

tcp.port == 25 출발지와 목적지의 TCP 포트가 25인 패킷을 보여줍니다.
tcp.dstport == 25 목적지의 TCP 포트가 25인 패킷을 보여줍니다.
tcp.flags TCP 플래그를 가지고 있는 패킷을 보여줍니다.
tcp.flags.syn == 0x02 TCP SYN 플래그를 가지고 있는 패킷을 보여줍니다.
필터 구문에 문제가 없다면, 녹색으로 하이라이트 될 것이며, 잘못됐다면 붉은색으로 하이라이트 될 것입니다.

올바른 구문
잘못된 구문
display 필터에 대한 추가 정보는 Wireshark official websiteWiki Wireshark website에서 찾을 수 있습니다.

 

통계

화면의 상단에 있는 "statistics"을 클릭하면 다양한 통계자료를 볼 수 있습니다.

몇 가지 통계 정보 예시를 보여드리겠습니다:







Summary

Protocol Hierarchy

Conversations

Endpoints

IO Graphs


Conversation List

Endpoint List

Service Response Time






 

 
RTP

SIP
VoIP Calls


 
Destinations
Flow Graph
HTTP
IP address



Packet Length
Port Type
 



Summary

기본적인 통계 정보들을 summary 창에서 볼 수 있습니다:
- capture 파일 속성.
- capture 시간.
- capture 필터 정보.
- display 필터 정보.



페이지 처음으로



Protocol Hierarchy

protocol hierarchy창에서는 각 OSI layer별로 세부적인 데이터를 확인 할 수 있습니다.



페이지 처음으로



Conversations

TCP/IP 어플리케이션이나 프로토콜을 사용한다면, Ethernet, IP, TCP, UDP 의conversations 을 위한 4개의 탭이 활성화 된 것을 볼 수 있습니다. "conversation"이란 두 호스트 사이의 트래픽을 말합니다.
각 탭의 프로토콜 명 옆에 있는 숫자는 conversation의 수를 나타냅니다. 예: "Ethernet:6"

Ethernet conversations:



IP conversations:



TCP conversations:



UDP conversations:



페이지 처음으로



Endpoints

Endpoints 창은 각 장치 별로 주고 받은 데이터에 대한 통계 정보를 보여줍니다.
탭에서 프로토콜 이름 옆에 있는 숫자는 endpoints의 수를 나타냅니다. 예 : "Ethernet:6".

Ethernet endpoints:



IP endpoints:



TCP endpoints:



UDP endpoints:



페이지 처음으로



IO Graphs

기본적인 그래프들은 "IO graphs" 섹션에서 볼 수 있습니다.
각 display 필터 별로 같은 그래프 창안에 다른 그래프를 추가 할 수 있습니다.
다음의 예시에서, "tcp"와 "http" display 필터에 대한 두 개의 그래프를 그렸습니다.



페이지 처음으로



Conversation List

"Conversation List" 섹션은 "Conversations" section에서 볼 수 있는 것과 같은 정보를 제공합니다.

페이지 처음으로



Endpoint List

"Endpoint list" 섹션은 "Endpoints" section에서 볼 수 있는 것과 같은 정보를 제공합니다.

페이지 처음으로



Service Response Time

보다 정밀한 검사가 가능한 13개의 프로토콜이 제공됩니다.
예제에서는 NetBIOS 프로토콜(Protocol Hierarchy screenshot 참조) 최상위에서 실행되고, 보통 MS Windows 로컬 환경에서 파일 공유를 위해 사용하는 SMB(Server Message Block)을 사용하였습니다.



Wireshark의 display 필터가 smb 필터 필드에 보여집니다.
예제에서는 display 필터를 사용하지 않았습니다.





페이지 처음으로



RTP

RTP (Real-time Transport Protocol, RFC 3550)은 IP 네트워크를 통해 음성 전달과 영상 통신을 하기 위한 프로토콜입니다. 이것은 User Datagram Protocol(UDP) 위에서 실행됩니다.
또한 이것은 signaling 작업을 제공하는SIP나 H.323과 함께 연결하기 위해 종종 사용됩니다.

모든 스트림 보기





스트림 분석







페이지 처음으로



SIP

SIP (Session Initiation Protocol, RFC 3261)은 VoIP나 비디오 세션을 열기 위한singnaling 프로토콜입니다.
이것은 보통 멀티미디어 데이터를 전송하는데 사용되는 RTP 프로토콜과 함께 동작합니다.





페이지 처음으로



VoIP Calls

VoIP (Voice over IP)은 일반적으로 두 가지 프로토콜을 사용합니다:
- SIP, H.323 같은signaling 프로토콜
- RTP같은 carring 프로토콜





페이지 처음으로



Destinations

"Destinations" 섹션은 네트워크 패킷의 모든 목적지 IP 주소를 보여줍니다.





페이지 처음으로



Flow Graph

"Flow Graph" 섹션은 TCP 연결의 연속적인 분석 정보를 제공합니다.
예제에서는 openmaniak.com 웹사이트에 대한 트래픽만을 보기 위해 display 필터를 만들었습니다.



처음 세 줄은 TCP 연결이 "SYN", "SYN ACK", "ACK"의 순서로 만들어지는 것을 보여줍니다.




페이지 처음으로



HTTP

HTTP (Hypertext Transfer Protocol)는 HTML 파일을 전송하기 위한 클라이언트/서버간 통신 프로토콜입니다.
대 부분의 웹 브라우저 사용자인 HTTP 클라이언트는 파일을 찾기 위해 HTTP request을 "URL"과 함께 웹 서버에 보냅니다. 그리고 웹 서버는 HTTP reponse을 통해 그에 대한 응답을 하고, 클라이언트가 원하는 웹 페이지를 보여줍니다.

"HTTP" 아래 세가지 하위 섹션이 존재합니다:
- Load Distribution
- Packet Counter
- Requests

Load distribution:



예제에서는 openmaniak.com 사이트에 대한 트래픽만 보기 위해 display 필터를 생성하였습니다.





Packet Counter:

HTTP 요청과 응답을 보여줍니다.



예제에서는 openmaniak.com 사이트에 대한 트래픽만 보기 위해 display 필터를 생성하였습니다.





Requests:

웹 서버에서 요청 받은 파일들을 보여줍니다.



예제에서는 openmaniak.com 사이트에 대한 트래픽만 보기 위해 display 필터를 생성하였습니다.





페이지 처음으로



IP address

네트워크 패킷의 출발지, 목적지 IP 주소를 보여줍니다.





페이지 처음으로



Packet Length





페이지 처음으로



Port Type

[TCP나 UDP 포트의 통계 정보를 보여줍니다.





String1, String2 (선택 사항)

각 프로토콜의 하위 프로토콜 카테고리.
그것을 보기 위해서, 프로토콜을 선택한 뒤 "+" 표시를 클릭하세요.



비교 연산자:

6개의 비교 연산자를 사용 할 수 있습니다:

영문 표기:  C언어 표기:  의미:
eq 
== 
같다
ne
!=
틀리다
gt
>
크다
lt
<
작다
ge
>=
크거나 같다
le
<=
작거나 같다

논리 표현 식:

영문 표기:  C언어 표기:  의미:
and
&&
논리곱
or
||
논리합
xor
^^
배타적 논리합
not
!
부정

프로그래머들이 잘 아는 "XOR"은 배타적 논리합 연산으로 사용됩니다. 두 가지 조건 사이에서 사용되었을 때, 두 가지 조건 중 오직 한가지만 만족했을 때 결과 화면에 보여집니다.
다음의 display 필터를 이용하여 예시를 보여드리겠습니다:
"tcp.dstport 80 xor tcp.dstport 1025"
목적지가 TCP 포트 80이거나 출발지가 TCP 포트 1025인 (두 가지 모두인 경우는 제외하고) 패킷이 결과로 화면에 나타납니다.



사용 예:

snmp || dns || icmp SNMP 혹은 DNS 혹은 ICMP 트래픽을 보여줍니다.
ip.addr == 10.1.1.1
출발지나 목적지의 IP 주소가 10.1.1.1인 패킷을 보여줍니다.

ip.src != 10.1.2.3 or ip.dst != 10.4.5.6
출발지의 IP 주소가 10.1.2.3이 아니거나 목적지의 IP 주소가 10.4.5.6이 아닌 패킷을 보여줍니다.
다른 말로 하자면, 화면에 보여지는 패킷은 다음과 같을 것입니다:
출발지 IP 주소 : 10.1.2.3이 아닌 모든 주소, 목적지 IP 주소 : 10.1.2.3이 아닌 모든 주소
그리고
출발지 IP 주소 : 모든 주소, 목적지 IP 주소 : 10.4.5.6이 아닌 모든 주소

ip.src != 10.1.2.3 and ip.dst != 10.4.5.6
출발지 IP 주소가 10.1.2.3이 아니면서, 동시에 목적지 IP 주소가 10.4.5.6이 아닌 패킷을 화면에 보여줍니다.
다른 말로 하자면, 화면에 보여지는 패킷은 다음과 같을 것입니다:
출발지 IP 주소 : 10.1.2.3이 아닌 모든 주소, 그리고 목적지 IP 주소 : 10.4.5.6이 아닌 모든 주소

tcp.port == 25 출발지와 목적지의 TCP 포트가 25인 패킷을 보여줍니다.
tcp.dstport == 25 목적지의 TCP 포트가 25인 패킷을 보여줍니다.
tcp.flags TCP 플래그를 가지고 있는 패킷을 보여줍니다.
tcp.flags.syn == 0x02 TCP SYN 플래그를 가지고 있는 패킷을 보여줍니다.
필터 구문에 문제가 없다면, 녹색으로 하이라이트 될 것이며, 잘못됐다면 붉은색으로 하이라이트 될 것입니다.

올바른 구문
잘못된 구문
display 필터에 대한 추가 정보는 Wireshark official websiteWiki Wireshark website에서 찾을 수 있습니다.

 

 

화면의 상단에 있는 "statistics"을 클릭하면 다양한 통계자료를 볼 수 있습니다.

몇 가지 통계 정보 예시를 보여드리겠습니다:







Summary

Protocol Hierarchy

Conversations

Endpoints

IO Graphs


Conversation List

Endpoint List

Service Response Time






 

 
RTP

SIP
VoIP Calls


 
Destinations
Flow Graph
HTTP
IP address



Packet Length
Port Type
 



Summary

기본적인 통계 정보들을 summary 창에서 볼 수 있습니다:
- capture 파일 속성.
- capture 시간.
- capture 필터 정보.
- display 필터 정보.



페이지 처음으로



Protocol Hierarchy

protocol hierarchy창에서는 각 OSI layer별로 세부적인 데이터를 확인 할 수 있습니다.



페이지 처음으로



Conversations

TCP/IP 어플리케이션이나 프로토콜을 사용한다면, Ethernet, IP, TCP, UDP 의conversations 을 위한 4개의 탭이 활성화 된 것을 볼 수 있습니다. "conversation"이란 두 호스트 사이의 트래픽을 말합니다.
각 탭의 프로토콜 명 옆에 있는 숫자는 conversation의 수를 나타냅니다. 예: "Ethernet:6"

Ethernet conversations:



IP conversations:



TCP conversations:



UDP conversations:



페이지 처음으로



Endpoints

Endpoints 창은 각 장치 별로 주고 받은 데이터에 대한 통계 정보를 보여줍니다.
탭에서 프로토콜 이름 옆에 있는 숫자는 endpoints의 수를 나타냅니다. 예 : "Ethernet:6".

Ethernet endpoints:



IP endpoints:



TCP endpoints:



UDP endpoints:



페이지 처음으로



IO Graphs

기본적인 그래프들은 "IO graphs" 섹션에서 볼 수 있습니다.
각 display 필터 별로 같은 그래프 창안에 다른 그래프를 추가 할 수 있습니다.
다음의 예시에서, "tcp"와 "http" display 필터에 대한 두 개의 그래프를 그렸습니다.



페이지 처음으로



Conversation List

"Conversation List" 섹션은 "Conversations" section에서 볼 수 있는 것과 같은 정보를 제공합니다.

페이지 처음으로



Endpoint List

"Endpoint list" 섹션은 "Endpoints" section에서 볼 수 있는 것과 같은 정보를 제공합니다.

페이지 처음으로



Service Response Time

보다 정밀한 검사가 가능한 13개의 프로토콜이 제공됩니다.
예제에서는 NetBIOS 프로토콜(Protocol Hierarchy screenshot 참조) 최상위에서 실행되고, 보통 MS Windows 로컬 환경에서 파일 공유를 위해 사용하는 SMB(Server Message Block)을 사용하였습니다.



Wireshark의 display 필터가 smb 필터 필드에 보여집니다.
예제에서는 display 필터를 사용하지 않았습니다.





페이지 처음으로



RTP

RTP (Real-time Transport Protocol, RFC 3550)은 IP 네트워크를 통해 음성 전달과 영상 통신을 하기 위한 프로토콜입니다. 이것은 User Datagram Protocol(UDP) 위에서 실행됩니다.
또한 이것은 signaling 작업을 제공하는SIP나 H.323과 함께 연결하기 위해 종종 사용됩니다.

모든 스트림 보기





스트림 분석







페이지 처음으로



SIP

SIP (Session Initiation Protocol, RFC 3261)은 VoIP나 비디오 세션을 열기 위한singnaling 프로토콜입니다.
이것은 보통 멀티미디어 데이터를 전송하는데 사용되는 RTP 프로토콜과 함께 동작합니다.





페이지 처음으로



VoIP Calls

VoIP (Voice over IP)은 일반적으로 두 가지 프로토콜을 사용합니다:
- SIP, H.323 같은signaling 프로토콜
- RTP같은 carring 프로토콜





페이지 처음으로



Destinations

"Destinations" 섹션은 네트워크 패킷의 모든 목적지 IP 주소를 보여줍니다.





페이지 처음으로



Flow Graph

"Flow Graph" 섹션은 TCP 연결의 연속적인 분석 정보를 제공합니다.
예제에서는 openmaniak.com 웹사이트에 대한 트래픽만을 보기 위해 display 필터를 만들었습니다.



처음 세 줄은 TCP 연결이 "SYN", "SYN ACK", "ACK"의 순서로 만들어지는 것을 보여줍니다.




페이지 처음으로



HTTP

HTTP (Hypertext Transfer Protocol)는 HTML 파일을 전송하기 위한 클라이언트/서버간 통신 프로토콜입니다.
대 부분의 웹 브라우저 사용자인 HTTP 클라이언트는 파일을 찾기 위해 HTTP request을 "URL"과 함께 웹 서버에 보냅니다. 그리고 웹 서버는 HTTP reponse을 통해 그에 대한 응답을 하고, 클라이언트가 원하는 웹 페이지를 보여줍니다.

"HTTP" 아래 세가지 하위 섹션이 존재합니다:
- Load Distribution
- Packet Counter
- Requests

Load distribution:



예제에서는 openmaniak.com 사이트에 대한 트래픽만 보기 위해 display 필터를 생성하였습니다.





Packet Counter:

HTTP 요청과 응답을 보여줍니다.



예제에서는 openmaniak.com 사이트에 대한 트래픽만 보기 위해 display 필터를 생성하였습니다.





Requests:

웹 서버에서 요청 받은 파일들을 보여줍니다.



예제에서는 openmaniak.com 사이트에 대한 트래픽만 보기 위해 display 필터를 생성하였습니다.





페이지 처음으로



IP address

네트워크 패킷의 출발지, 목적지 IP 주소를 보여줍니다.





페이지 처음으로



Packet Length





페이지 처음으로



Port Type

[TCP나 UDP 포트의 통계 정보를 보여줍니다.







http://www.asblue.com/875


http://saneung.org/wireshark-win32-1.2.0.exe

'security' 카테고리의 다른 글

warGame site  (0) 2010.08.31
wifi/wlan password  (0) 2010.06.12
cain & abel In use  (0) 2010.06.10
OS별 TTL 값  (0) 2010.06.01
port All. TCP/UDP  (0) 2010.05.22
: