Saturday, September 14, 2013

Wireshark 사용하기

ㅇ 아이콘 설명

   -   :  캡처 시작 버튼.

   -   :  캡쳐에 옵션을 설정. 캡쳐중에는 사용할수 없다.
   -    :  설정된 인터페이스를 가지고 다시 캡쳐를 시작하는 버튼
   -    :  캡쳐를 멈추는 버튼
 
   -    :  캡쳐를 다시 시작하는 버튼

   -   : 열기 - 저장 - 삭제 -  새로고침 - 인쇄 
 
       캡쳐파일은 pcap 파일로 저장되며 그 파일로 캡쳐내용을 다시 열어서 볼수 있게 되어있다.
 
   -   :  Find Packet  - 뒤로가기 버튼 - 앞으로 가기 버튼
 
                                                    - 매겨진 넘버로 패킷을 찾는기능 - 맨위에 패킷 - 맨 아래의 패킷
 
    -   :  패킷별로 색깔을 다르게 표시 해주는 기능을 설정/해제
 
                                                         패킷 캡쳐가 시작되면 자동으로 스크롤 되게 해주는 기능
 
                                                         아이콘 확대  -  아이콘 축소
 
                                                         아이콘 확대 축소 비율을 1대1로 맞추는 기능
 
                                                         아이콘 컬럼을 원래 크기로 되돌리는 기능
 
     -           캡쳐의 필터를 수정하는 기능입니다.
 
                                                         캡쳐의 필터를 수정/적용 .
 
                                                         색깔을 지정할수 있는 기능
 
                                                         와이어 샤크의 설정 기능
 
                                                         도움말
 
 
 ㅇ 파일 저장

    - Wireshark 실행 > Capture  >  Option 

        = 상단 메뉴바의 2번째 아이콘  =  Ctrl + K

사용자 삽입 이미지


 매 16메가 파일 사이즈마다 자동으로 Capture 파일을 저장하는  Capture File 옵션 설정 예

사용자 삽입 이미지

File – 실제 저장할 파일의 이름을 설정하는 부분입니다.
Use multiple files – 여러 파일의 사용 여부입니다.
Next file every – Capture된 데이터 크기에 따라 나누어서 파일로 저장 또는
                            Capture가 진행된 시간에 따라 나누어서 파일로 저장


ㅇ 필터

   - 화면에 너무 많은 정보들이 나타나서 원하는 정보를 찾기가 쉽지 않으므로 

     필터를 사용해야한다. 필터는 방대한 로그 중에서 원하는 데이터를 찾는데 도움을 준다.

     필터에는 capture 필터와 display 필터가 있다.

     capture 필터는 로그의 사이즈가 불필요하게 커지는 것을 막기 위해 사용된다.
   
     display 필터는 원하는 데이터를 정확하게 검색하게 해준다.

     1. CAPTURE FILTERS
         capture 필터는 캡쳐 도중 아무 때나 수정이 가능한 display 필터와는 다르게,

         반드시 캡쳐를 시작하기 전에 설정을 해주어야 한다.

        - capture  > options > capture filter  : capture filter 칸에 직접 작성하거나, 다음 번 캡쳐에

                  다시 사용할 수 있는 필터 이름을 부여하기 위해 "capture filter" 버튼을 클릭

        - 데이터를 캡쳐하기 위해 Start버튼을 클릭합니다.

            wireshark capture options

            wireshark capture options

        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

         
         - Protocolether, 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 요청을 제외하고 싶을 때 유용하게 사용할 수 있습니다.  

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 filter expression

wireshark filter expression

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

wireshark supported protocols

wireshark supported protocols

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

String1, String2 (선택 사항)

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

wireshark filter expression

비교 연산자:

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 || icmpSNMP 혹은 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.flagsTCP 플래그를 가지고 있는 패킷을 보여줍니다.
tcp.flags.syn == 0x02TCP SYN 플래그를 가지고 있는 패킷을 보여줍니다.
필터 구문에 문제가 없다면, 녹색으로 하이라이트 될 것이며, 잘못됐다면 붉은색으로 하이라이트 될 것입니다.
wireshark display filter example올바른 구문
wireshark display filter example 잘못된 구문
 

No comments:

Post a Comment