1. WireShark 란 무엇인가
WireShark 란 무료 (오픈소스) 패킷 분석기 이다.
상업적 이용 허용을 뜻하는것은 아니므로 유의 바란다
WireShark 는 Wireshark · Go Deep. 에서 다운로드 하는것이 가능하다.
현재 사용중인 운영체제에 맞는 버전을 다운로드 하면 되며,
혹시 Windows XP, Windows 98 과 같은 환경에서 WireShark 를 사용해야 될 일이 발생한다면
Wireshark · Download 해당 페이지에서
Go Spelunking 란에서 Mirror 페이지를 이용해서 원하는 버전을 다운로드 하면 된다.
필자는 구형 시스템 환경에서 패킷 분석을 시도해야 할 일이 간간히 있었다.
2. 설치
특별히 설명할것이 존재하지 않는다 그냥 Default 옵션으로 Next 버튼을 연타하면 된다.
간단한 추가 설명으로. 잘 모른다면 Npcap 은 무조건 설치하는 것을 권장드린다.
구형 시스템에서는 일부 체크해야 하는 옵션이 존재하기도 한다 (Windows XP 이하)
3. 사용법
WireShark 를 설치하고 나면 기본적으로 볼 수 있는 환경이다.
캡쳐할 네트워크 인터페이스를 선택한다
선택하면 현재 실시간으로 내 패킷을 오고 가는 스크롤의 압박을 볼 수있다.
만약 본인이 로컬, 인트라넷, 간이 네트워크 환경에서 이를 실행한다면 보통은 Default GateWay 를 묻는 문구정도만 확인될 것이다.
위 이미지를 기준으로 설명하자면
빨간 박스 내의 내용은 다음과 같은 정보를 나타낸다.
No. | 캡쳐된 패킷의 순서 |
Time | 캡쳐된 패킷의 시간 0초는 Capture Start Time |
Source | 패킷 송신지 |
Destination | 패킷 수신지 |
Protocol | 패킷 송/수신에 사용된 프로토콜 |
Info | 패킷의 상세정보 |
이것들만 알아도 WireShark 의 아주 기초적인 사용법은 아는 셈이다.
4-1. 필터 사용법 - Display 필터
WIreShark 의 기능중 절반은 Filter 가 차지한다.
Filter 라고 뭐 거창한건 아니고, 위 이미지의 네모 박스 안에서 수많은 패킷들 중 특정 패킷을 '걸러내는' 작업을 의미한다.
예시로 수많은 패킷들 중 특정 ip 주소의 것을 걸러내려면,
ip.addr == "12.12.12.12"
와 같이 사용하면 된다.
하단 표에는 이와 같은 필터들과, 사용법에 대해서 적어 두었다.
대,소문자는 구분하지 않기에 어떻게 사용하든 본인 맘이다.
필터 사용법 | 필터 설명 |
eth.addr / eth.src / eth.dst | 맥 주소 / 맥 주소 송신지/ 맥 주소 수신지 |
ip.addr / ip.src / ip.dst | ip 주소 / ip 주소 송신지 / ip 주소 수신지 |
[protocol].port | 해당 프로토콜의 포트 확인 가능 tcp.port, udp.port |
[protocol].srcport / [protocol].dstport | 해당 프로토콜의 송,수신지 포트로 확인 |
하단 표에는 필터들과 사용할 수 있는 문법들에 관해 적어 두었다.
문법 설명은 기본적인 프로그래밍 언어를 다룰 수있다는 전제 하에 생략하여 적어 둔다.
문법 | 문법 설명 |
&& | AND 기호와 같다. |
AND | AND 기호와 같다. |
|| | OR 기호와 같다 |
OR | OR 기호와 같다. |
!= | NOT 기호와 같다 |
NOT | NOT 기호와 같다 |
/ | ip.addr == 192.168.200.16/16 → 192.168.x.x 에 해당되는 IP 주소만 검색. 8 == 192.x.x.x 16 == 192.168.x.x 24 == 192.168.200.x 32 == 192.168.200.16 |
외에도 여러가지 문법이 존재하지만, 이 정도 까지만 알아도 WireShark 의 필터 기능을 이용하여 패킷을 분석하는데는 크게 문제가 없다.
오히려 문제는 패킷들과 프로토콜에 대한 기초 지식이 문제다.
중요한 정보는 Info 영역에 위치해 있는데, 패킷의 유형과 정보를 모른다면 해석하는데 무리가 있다.
4-2. 필터 사용법 - Capture 필터
Wireshark 에는 이 분석필터에 더하여 애초에 Display 되지 않도록 (표시되지 않도록) 사용할 수 있는 유용하게 사용할 수 있는 "캡쳐 필터" 기능이 존재 한다.
필터 기능은 다음과 같이 확인 할 수 있는데,
해당 란에 저장된 Capture filter 는 '적용되는 필터' 가 아닌, 복사 / 붙여넣기 하여 사용될 수 있도록 저장만 되어있는 것이다.
Capture filter 는 한 문장으로 완성되어야 하며,
그 한 문장은 네트워크 인터페이스를 선택하는 란 내의 [using this filter] 에서 사용되게 된다.
유의할 점으로 캡쳐 필터 기능은, 캡쳐를 시작하기 전에 적용되기 때문에, 캡쳐 도중에 변경한다고 해서 영향이 없다.
즉 Display Filter 와는 그 운용법이 다르다.
필터 사용법 | 필터 설명 |
host 192.168.100.1 | 오직 192.168.100.1 에 송/수신되는 패킷만을 캡쳐한다. |
net 192.168.0.0 / 24 | 해당 ip 범위 내에서 오가는 패킷만을 캡쳐한다. |
srt net 192.168.0.0 / 24 dst net 192.168.0.0 / 24 |
해당 ip 범위 내에서 오가는 패킷만을 캡쳐한다 [송신자 / 수신자 설정] |
host www.example.com and not (port 80 or port 25) host www.example.com and not port 80 and not port 25 |
해당 서버에서 HTTP 포트와, SMTP 포트로 전송되는 패킷을 제외한 패킷을 캡쳐 합니다. |
port not 53 and not arp | ARP 포트와 DNS 포트로 전송되는 패킷을 제외한 패킷을 캡쳐 합니다. |
tcp portrange 1501-1549 | 해당되는 프로토콜의 포트 범위 내의 패킷만을 캡쳐 합니다. |
not broadcast and not multicast | 브로드캐스트와 멀티캐스트를 제외한 패킷만을 캡쳐합니다 |
ip | 오직 ipv4 버전의 패킷만을 출력합니다. 가장 짧지만 유용하게 사용 될 수 있습니다. (arp stp 와 같은 하위 계층 프로토콜 제거용) |
4-3. 사용법 - Capture & Save + Bittwist
패킷을 저장하려면 반드시 패킷 캡쳐를 종료 하여야 한다.
오른쪽에 위치한 종료 버튼이 클릭된 상태여야 한다.
그 뒤에
Save As... 혹은 Export Specified Packets 중 하나를 선택해 패킷 파일을 저장 할 수있다.
만약 Display Filter 를 적용하지 않고 그냥 캡쳐된 모든것을 그대로 저장할 계획이라면 Save As... 를 이용하면 되고
필터를 적용하여 정제된 패킷만을 캡쳐하여 파일로 저장하고 싶다면 Export Specified Packets 를 선택하여 사용하면 된다.
해당기능은 Bittwist 와 함께 사용하면 빛이 나는데, 단순 패킷을 복사하여 해당 상황에 대해 '분석' 하는것 뿐 만 아니라.
.Pcap 파일을 제작하여, IP 주소를 수정하거나, 패킷 내용을 변조하여 다시 '송/수신' 하는 등의 테스트가 가능하다.
해당 '송/수신' 기능의 경우에는 위에 링크된 Bittwist 프로그램을 이용하면 손쉽게 환경을 구성할 수 있다.
즉, 쉽게 설명하면
해당 프로그램을 이용해서 폐쇄된 로컬 시스템에서도 마치 '인트라넷' 에 연결된듯 테스트를 할 수 있다.
끝.
'Tools > Etc' 카테고리의 다른 글
[MAK] VR-Forces 매뉴얼 [BEGINNER] (0) | 2021.04.10 |
---|---|
일렉트론(Electron) 쉬운 사용법 (2) | 2021.04.02 |
Visual Studio Code 확장기능을 오프라인에서 이용하기. (2) | 2020.11.08 |
Bittwist & Bittwiste 매뉴얼 (0) | 2020.10.06 |
CMake MSB3073 SetLocal 오류 해결 방법. (0) | 2020.05.21 |