2019/12/03

페어라인 테니스 무선 WiFi 카메라 패킷 캡처.

와이어샷크.

capture 필터 display 필터 사용
필터의 사용 목적은 서로 다름.

capture 필터는 로그의 사이즈가 불필요하게 커지는 것을 막기 위해 사용됨.
display 필터는 capture 필터 보다 복잡하지만 강력하게 사용 됨. 원하는 정보를 정화하게 검색 할 수 있겠 해줌.

=================================================================
1. capture filters
=================================================================

 capture 필터의 구분의 tcpdump 처럼 Lipca(linux)이나 winpcap(windows)라이브러리를 사용하는 프로그램에 사용하는 것과 같음.
 capture 필터는 갭처 도중 아무 때나 수정이 가능한 display 필터와는 다르게, 반드시 갭처를 시작하기 전에 설정 해야함.

capture -> options 을 선택
 capture filter 칸에 직접 작성 ---> start 클릭

syntex: protocal | direction | host | value | Logical Operations | Other expression
          TCP         DST       IP      80          AND            TCP DST IP PORT

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 172.16.1.230" 은 "src or dst host 172.16.1.230"과 동일 하다.

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

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

사용예제
 tcp dst port 3128
 목적지 tcp 포트 3218 패킷을 보여줌

 ip src host 172.16.1.230
 출발지 아이피 주소가 172.16.1.230의 패킷을 보여줌.

 host 172.16.1.230
 출발지와 목적지 아이피 주소가 172.16.1.230의 패킷을 보여줌

 src portrange 2000-2500
 출발지 UDP, TCP 포트가 2000~2500 사이의 패킷을 보여줌

 not icmp
 icmp 패킷을 제외한 모든 패킷을 보여줌.

 src host 172.16.1.230 and not dest net 172.16.1.0/24
 출발지 아이피 주소가 172.16.1.230이면서 목적지 네트워크가 172.16.1.0/24가 아닌 패킷을 보여줌

 (src host 172.16.1.230 or src net 172.16.1.0/24) and tcp dst portrange 200-10000 and dst net 172.0.0.0/8
 출발지 아이피가 172.16.1.230이거나, 출발지 네트워크가 172.16.1.0.24인 패킷중에서 목적지 tcp 포트 범위가 200-10000이면서,
 목적지 아이피 네트워크가 172.0.0.0/8인 패킷을 보여줌.

======================================================================
2. DISPLAY FILTERS
======================================================================
display 필터는 개첩된 데이터에서 원하는 정보를 찾을 때 사용됨
검색 능력은 capture 필터 보다 좋음, 그리고 필터의 내용을 바꾸고 싶을 때 캡쳐 작업을 다시 시작 하지 않아도 됨.

syntex: Protocol | String1 | String2 | Comparison Operator | Value | Logical Operations | Other expression
           ftp     passive      IP              ==          x.x.x.x        XOR              icmp.type

Protocol:
 OSI Layer 2에서 Layer 7 사이에 있는 매우 다양한 프로토콜을 사용 할 수 있음.
 메인 화면에 보이는 Expression 버튼을 클릭하면 볼수 있습니디다.
 프로토콜에 설명은 와이어샤크 웹사이트에서 확인 가능함. www.wireshark.org/doc/dfref

String1, String2(선택 사항)
 각 프로토콜의 하위 프로토콜 카테고리
 프로토콜을 보기 위해서는, 프로토콜 선택 후 +을 표시를 클릭 하면은 됩니다.

비교 연산자:
 6개의 비교 연사자
  eq        ==          같다
  ne        !=          틀리다
  gt         >          크다
  lt         <          작다
  ge        >=          크거나 같다
  le        <=          작거나 같다

논리 표현
  and       &&          논리곱
  or        ||          논리합
  xor       ^^          베타적 논리합
  not        !          부정
xor은 베타적 논리합 연산으로 사용됨, 두 가지 조건 사이에서, 사용되었을 때, 두 가지 조건 중 오직 한가지만 만족했을 때
결과 화면에 보여집니다.
"tcp.dstport 80 xor tcp.dstport 1025"
목적지 tcp 포트 80 이거나 출발지 tcp 포트가 1025인(두 가지 모두의 경우 제외하고) 패킷 결과를 하면에 나타냄.

사용예
 snmp || dns || icmp
 SNMP 혹은 DNS 혹은 ICMP 트래픽을 보여 줌.

 ip.addr == 172.16.1.1
 출발지나 목적지의 아이피 주소가 172.16.1.1인 패킷을 보여줌

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

 ip.src != 172.16.1.230 and ip.dst != 10.4.5.6
 출발자 아이피 주소가 172.16.1.230이 아니면서, 동시에 목적지 아이피 주소가 10.4.5.6이 아닌 패킷을 화면에 보여줌

 tcp.port == 25
 출발지와 목적지의 포트가 25인 패킷을 보여줌

 tcp.dstport == 25
 목적지 25번 포트의 패킷을 보여줌

 tcp.flags
 TCP 플래그를 가지고 있는 패킷을 보여줌

 tcp.flags.syn == 0x02
 TCP SYN 플래그를 가지고 있는 패킷을 보여줌

======================================================================================
유용한 필터
======================================================================================
eth.addr == 00:11:A9:B3:E3:F2    출발지나 목적지 MAC 주소로 검색
eth.src == 하드웨어주소      출발지 하드웨어 주소 검색
eth.dst == 하드웨어주소      목적지 하드웨어 주소 검색

ip.addr == 아이피 주소       출발지 또는 목적지 아이프 주소 검색
ip.src == 아이피주소         출발지 아이피 주소 검색

tcp.port == 포트번호         TCP 포트 출발지, 목적지 포트 번호 검색
tcp.destport == 포트번호     TCP 포토 목적지 포트 번호 검색
tcp.srcport == 포트번호      TCP 포트 출발지 포트 번호 검색

udp.xxx == 포트 번호         TCP랑 같음

wlan.addr == 하드웨어주소    무선랜 사용 시 출발지나 목적지 MAC 주소로 검색
swlan.sa == 하드웨어주소     무선랜 사용 시 출발지 MAC 주소로 검색
wlan.da == 하드웨어주소      무선랜 사용 시 목적지 MAC 주소로 검색

예) http 데이터에 "passwd" 또는 "cmd.exe"가 포함된 패킷을 캡쳐
1. dest 또는 src로 1대를 지정할 경우
ip.host==10.3.2.101 && http contains "passwd"

2. src IP를 C클래스로 지정할 경우
ip.src==10.3.2.0/24 && http contains "cmd.exe"

3. src IP주소에 "10.3"이 포함된 경우
ip.src_host contains "10.3." && http contains "passwd"

4. dst IP로 60.41.213.34를 지정한 경우
ip.dst==60.41.213.34 && http contains "passwd"

====================================================================================== 
VOIP 패킷 확인
======================================================================================
SIP 패킷을 확인
ACK을 보내는지?
무슨 이유로 디스커넥팅을 발렸는지.

필터 rtp
캡처 화면에서 User DataGram Protocol, Src Port: xxxx (xxxx), Dst Port: xxxx (xxxx)

rtp 패킷 확인
Rial-Time Transport Protocol
 = Version: RFC 1889 Version (2)
 = Padding: True
 = Extension: False
 = Contributing Source identifiers count: 1
 = Marker : False
 Payload type: DynamicRTP-type-104 (104
 Swquence number: 692
 Timestamp: xxxx
 Synchronization Source identifiers (1 items)
 Padding data: 76d6ce3a
 Padding count: 211

Telephony 상단 메뉴 클릭
 VoIP Calls 클릭

wiki.wireshark.org/sampleCaptures
 SIP and RTP 클릭

패킷 저장된 파일을 열고
rtp로 패킷 필터를 하고
Telephony 상단 메뉴로 클릭으 패키 전체를 선택

두개를 체크 후 플레이어



소프트웨어 폰을 이용해 통화


패키캡처를 함.
필터: sip
위에 동일함.
지터 버펄 설정 30으로 하고
두개 체크 하고 플레이어


======================================================================================
SSL 패킷
======================================================================================
ssl && (ip.src==172.16.1.3 || ip.dst==1.226.64.86)

SSL Key
- SSL 데이터를 암복호화 하기 위해서는 반드시 인증서에 맞는 key(열쇠)가 필요 합니다.

WireShark에 Key 등록
    1) [Edit] - [Preferences..] - [Edit...]

Key 파일 입력
- IP address : 서버 IP 입력(key와 맞는 자물쇠를 가진 집)
- Port : 일반적으로 443 입력 (SSL을 다른 포트 사용시 해당 포트)
- Protocol : http 입력 (제가 아직 다른건 못해봤네용 ㅎㅎㅎ)
- Key File : key 파일의 위치
- Password : key의 Password 입력 (없을 경우 Pass)

1) SSL 데이터가 있을 경우 [Follow SSL Stream] 이 활성화 되며, 해당 내용을 클릭 하면, SSL로 암호화 된 데이터를 볼 수 있습니다.

======================================================================================
TCP DUMP
======================================================================================

tcpdump -e -i eth0

tcpdump -e -i eth1 host 172.16.1.3

tcpdump -A -i eth1 host 172.16.1.3

tcpdump -i eth1 -X -nn -vvv -s0 host 172.16.1.3
tcpdump -i eth1 -X -nn -vvv -s0 src '(172.16.1.1 and dst 172.16.1.3) or (src 172.16.1.1.61 and dst 172.16.1.1)'

(ip.addr eq 172.16.1.3 and ip.addr eq ip.addr eq 1.226.64.102)

======================================================================================
sip tcp dump
======================================================================================
REGISTER
tcpdump -w trace.cap -i eth1 -p -n -s 0 "udp"

패킷을 덤픔하고 파일을 만들고 플레이는 스니터로 뷰어.
tcpdump -i eth0 -n -s 0 port 5060 -vvv -w /root/capture_file_name -i eth1


패킷을 덤픔하고 파일을 만들고 플레이는 스니퍼로 뷰어.
tcpdump -w - -p -n -s 0 udp > /root/capture-asterisk.pcap

-w = output file
-p = dont start in promiscuous mode
-n = no name resolution
-s 0 = full frame, not only first bytes
udp = only capture udp packets


댓글 없음:

댓글 쓰기