아직도 여전히 추운 겨울이네요!
19년의 1월, 다들 따뜻하게 마무리하시길 바래요!!
오늘은!
tcpdump 와 같이 사용하면 좋은 wireshark 에 대해서 살펴볼까 합니다 ;-D
시작해볼까요!?
1. wireshark 란 무엇일까?
Wireshark is a free and open-source packet analyzer. It is used for network troubleshooting, analysis, software and communications protocol development, and education.
- Wikipedia
와이어샤크는 무료 오픈 툴(tool)로서 네트워크 상의 패킷을 분석해서 보여주는 도구입니다.
*잠깐 지식*
처음 배포되었을 때의 툴의 이름은 Ethereal(이더리얼)이었으나
회선 위에서 상어가 패킷을 잡아먹는 것과 유사하다고 하여 프로그램의 이름을 wireshark(와이어샤크)로 개명
유닉스와 윈도우에서 둘 다 사용이 가능하며 실시간으로 패킷 확인이 가능하여 유용합니다.
추가로 패킷을 캡쳐하기 위해 pcap 네트워크 라이브러리를 사용합니다.
엔지니어들이 네트워크적 문제를 해결하는데 많이 사용하는 도구랍니다. :-D
다운로드 경로는 다음과 같습니다. ( 컴퓨터 OS에 맞게 다운하셔서 설치하시면 됩니다! )
https://www.wireshark.org/
2. wireshark 사용법
와이어샤크 인터페이스에 대해서 살펴보겠습니다.
인터페이스는 총 4부분으로 구성되며 다음과 같습니다.
1번은 메뉴들을 나타내며 [ File | Edit | View | Go | Capture | Analyze | Statistics | Help ] 총 8개의 메뉴로 구성되어 있습니다.
- [File] : 캡쳐 데이터를 열거나 저장
- [Edit] : 패킷을 찾거나 표시합니다. 프로그램의 속성 설정 (예를들어, ssl 패킷을 보기위한 개인키 등록 등)
- [View] : wireshark 플랫폼의 보이는 모양 설정
- [Go] : 캡쳐된 데이터를 특정 위치로 이동
- [Capture] : 캡쳐 필터 옵션을 설정하고 캡쳐 시작
- [Analyze] : 분석 옵션 설정
- [Statistics] : wireshark 통계 데이터 확인
- [Help] : 도움말 보기
2번~4번 항목들을 합하여 출력창이라고 하며 실시간 혹은 tcpdump로 저장한 패킷의 송수신을 볼 수 있습니다.
2번은 출발지와 목적지를 기준으로 오고가는 패킷들을 시간순서대로 리스트 형식으로 나열해 놓은 것을 확인할 수 있습니다.
3번은 2번 출력창에서 선택한 하나의 단일 패킷에 대하여 세부내용을 정리해서 보여주는 상세 정보창입니다.
이 창을 통하여 각 계층에서 어떤 프로토콜을 사용하였는지, 출발지/목적지의 맥 주소 등의 정보를 알 수 있습니다.
(프로토콜의 필드값에 대하여 자세하게 확인이 가능하답니다!)
4번은 2번 출력창에서 선택한 하나의 단일 패킷에 대하여 패킷 데이터를 16진수와 ASCII 코드로 보여줍니다.
필터
와이어샤크를 사용하는데 있어서 참 중요합니다.
왜냐구요?
① 로그에 기록되는 데이터를 선택하기 위해 사용 (캡쳐가 시작되기 전에 정의)
Ex) 메뉴 - Capture
② 캡쳐된 로그에서 데이터를 찾을 때 사용 (데이터가 캡쳐되는 동안/후에 수정 가능)
Ex) 메뉴 - Display
다음은 캡쳐된 로그에서 필요한 데이터를 찾을 때 자주 사용하는 옵션값을 정리해 보았습니다.
* 추가! ip.addr == 192.168.9.0/24 로 네트워크 대역 검색도 가능합니다!
논리/비교 연산자도 간단히 정리해 보았습니다.
3. wireshark 예시
다음은 네이버로 접속하는 패킷 스트림을 캡쳐해보았습니다.
검색 필터는 udp.port == 53 을 사용하여 DNS쿼리 패킷만 검색했습니다.
출력창에서 프로토콜이 DNS이며 선택한 패킷은 DNS request 패킷인 것을 확인할 수 있습니다.
다음은 아마도 가장 많이 사용하는 예시가 아닐까하는데요!
클라이언트 pc(172.30.1.56)의 통신과정을 보기위해 와이어샤크로 패킷을 캡쳐한 예입니다.
필터 ip.addr == 172.30.1.56 으로 걸어서 확인한 결과입니다. 어떠신가요?
출력창이 직관적이지 않죠?
필터를 추가해봅시다!
필터 ip.addr == 172.30.1.56 && !icmp 로 icmp 패킷은 제외시켰습니다.
위 출력창에 비해 보다 직관적으로 통신과정을 확인하기가 쉬워졌습니다!
이렇게 우리 모두, wireshark 의 꽃이라 할 수 있는 옵션값들을 잘 활용하여 패킷분석을 합시다~ ;-D
다음시간에는 사례를 통한 tcpdump 및 wireshark 활용에 대하여 알아보겠습니다!
'OSI 7계층 > [기타2] 명령어' 카테고리의 다른 글
tcpdump 완전정복하기[Part.1] (0) | 2019.01.13 |
---|---|
유용한 명령어 3탄 : ipconfig/ifconfig (1) | 2018.10.28 |
유용한 명령어 2탄 : ethtool (0) | 2018.10.21 |
유용한 명령어 1탄 : NETSTAT (0) | 2018.10.10 |