스마트 스니퍼(SmartSniff) 실행 화면

Wireshark는 기능이 많은 만큼, "이 프로그램이 지금 어느 서버 몇 번 포트로 붙고 있지?" 정도만 궁금할 때 띄우기엔 좀 무겁습니다. 그럴 때 쓰기 좋은 게 NirSoft의 SmartSniff(실행 파일명 smsniff.exe)입니다. 설치 없이 exe 하나로 돌아가고, 잡힌 패킷을 연결 단위로 묶어서 원격지 IP·포트, 로컬 IP·포트를 목록으로 보여 줍니다. 내가 만든 프로그램이 API 서버에 제대로 접속하는지, 방화벽 때문에 막히는 포트가 어딘지 확인할 때 자주 꺼내 씁니다.

광고

smsniff.exe 실행 파일 아이콘

파일은 NirSoft 공식 사이트에서 받는 게 안전합니다. 실행 파일이라 출처가 불분명한 곳에서 받은 건 쓰지 않는 게 좋아요.

기본 캡처는 세 단계면 끝

실행한 뒤 툴바의 재생(시작) 버튼을 누르거나 F5를 누르면 캡처가 시작됩니다.

스마트 스니퍼 툴바의 시작 버튼 위치

처음 실행하면 어떤 네트워크 어댑터를 감시할지 묻는 창이 뜹니다. 여기서 IP Address가 0.0.0.0인 항목은 실제로 통신하지 않는 어댑터이니, 숫자가 제대로 찍힌 어댑터를 고르고 OK를 누릅니다. 아무것도 안 잡힌다면 대부분 여기서 엉뚱한 어댑터를 골랐기 때문입니다. 무선과 유선이 같이 있는 노트북이라면 지금 인터넷에 쓰고 있는 쪽을 골라야 합니다.

캡처할 네트워크 어댑터 선택 창

이제 PC에서 오가는 연결이 목록으로 쌓이기 시작합니다. 행을 선택하면 아래쪽에 실제 주고받은 데이터도 볼 수 있습니다.

캡처가 시작되어 통신 중인 패킷 목록이 표시된 화면

캡처 필터 문법

그대로 두면 브라우저, 메신저, 업데이트 트래픽까지 전부 섞여서 원하는 걸 찾기 어렵습니다. Options > Capture Filter에서 필터를 걸면 조건에 맞는 패킷만 잡습니다. 명령은 두 가지뿐입니다.

  • include : 조건에 맞는 것만 포함
  • exclude : 조건에 맞는 것을 제외

형식은 명령:방향:프로토콜:포트 또는 IP(범위)입니다. 방향에는 remote(상대 쪽), local(내 쪽), both(양쪽)를 쓰고, 프로토콜은 tcp, udp, 둘 다라면 tcpudp로 적습니다. 범위는 -로 잇습니다.

include:remote:udp:80

원격 포트가 80인 UDP 패킷만 캡처합니다.

include:both:udp:53-139

원격 포트나 로컬 포트가 53~139 범위인 UDP 패킷만 캡처합니다.

exclude:Local:tcpudp:192.0.0.1-192.0.0.100

로컬 IP가 192.0.0.1~192.0.0.100인 TCP·UDP 패킷을 제외합니다.

특정 포트 대역만 잡아 보기

어떤 프로그램이 UDP로 정해진 포트 대역을 쓴다는 걸 알고 있다면, 그 대역만 걸러서 보는 게 제일 빠릅니다. 예를 들어 51300~51500 대역을 쓰는 프로그램이라면 이렇게 넣습니다.

include:both:udp:51300-51500

Options 메뉴에서 Capture Filter를 엽니다.

Options 메뉴에서 Capture Filter를 선택하는 화면

필터 문자열을 입력하고 OK를 누릅니다.

Capture Filter 창에 include:both:udp:51300-51500을 입력한 화면

다시 캡처를 시작하면 해당 대역의 UDP 연결만 남습니다. 목록에서 Remote Address가 통신 상대(서버나 상대 PC)의 IP이고, Remote Port가 상대 쪽 포트, Local Port가 내 PC 쪽 포트입니다. 포트 값이 지정한 범위 안에 들어와 있으면 필터가 제대로 먹은 겁니다.

필터 적용 후 지정한 UDP 포트 대역의 연결만 표시된 결과 화면

쓰다 보면 생기는 궁금증

시작 버튼을 늦게 누르면 연결 초반 패킷을 놓칩니다. 프로그램이 접속하는 순간을 보고 싶다면 스니퍼를 먼저 켜 두고 프로그램을 실행하세요. 필요한 만큼 잡혔으면 바로 중지하는 게 목록 보기도 편합니다.

실행 폴더에 smsniff.cfg 파일이 생기는데, 어댑터 선택이나 필터 같은 설정이 저장되는 파일입니다. 지우면 다음 실행 때 설정을 다시 해야 하니 그대로 두세요.

패킷 캡처는 내 PC와 내가 관리하는 서비스를 점검하는 용도로만 써야 합니다. 다른 사람의 통신 내용이나 접속 정보를 몰래 수집하는 데 쓰면 문제가 될 수 있습니다.

글 마무리 스티커 이미지

참고: 선하루 티스토리