Programing

Wireshark에서 프로세스 / PID로 필터링

crosscheck 2020. 8. 2. 17:25
반응형

Wireshark에서 프로세스 / PID로 필터링


Wireshark를 사용하여 특정 프로세스 ID를 기반으로 TCP / SSL 스트림 을 필터링 / 추적하는 방법이 있습니까?


어떻게 보지 못합니다. PID는 와이어로 전달하지 않으며 (일반적으로 말하면) Wireshark를 사용하면 와이어를 통해 통신 할 수있는 모든 시스템을 볼 수 있습니다. 어쨌든 프로세스 ID는 다른 시스템에서 고유하지 않습니다.


대체 방법을 찾고 있고 사용하는 환경이 Windows 인 경우 Microsoft의 네트워크 모니터 3.3을 선택하는 것이 좋습니다. 프로세스 이름 열이 있습니다. 상황에 맞는 메뉴를 사용하여 필터에 쉽게 추가하고 필터를 적용 할 수 있습니다. 일반적으로 GUI는 매우 직관적입니다 ...


wireshark의 포트 번호와 netstat 의 포트 번호를 일치시킬 수 있습니다. netstat 는 해당 포트에서 수신 대기하는 프로세스의 PID를 알려줍니다.


Microsoft Message Analyzer v1.4 사용

필드 선택기에서 ProcessId로 이동하십시오.

Etw
-> EtwProviderMsg
--> EventRecord
---> Header
----> ProcessId

마우스 오른쪽 버튼을 클릭하고 열로 추가


Windows에는 메일 링리스트, 로컬 프로세스 이름으로 필터링에 설명 된대로이를 수행하는 실험 빌드가 있습니다.


이는 특정 프로세스가 연결을 시도하는 위치를 모니터링하기 위해 수행 할 수있는 중요한 일이며 Linux에서이를 수행하는 편리한 방법이없는 것 같습니다. 그러나 몇 가지 해결 방법이 가능하므로 언급 할 가치가 있다고 생각합니다.

인터넷에 액세스하지 않고 프로그램을 실행할 수있는 nonet 이라는 프로그램이 있습니다 (시스템에 대부분의 프로그램 실행기가 설정되어 있습니다). setguid를 사용하여 그룹 nonet에서 프로세스를 실행하고 iptables 규칙을 설정 하여이 그룹의 모든 연결을 거부합니다.

업데이트 : 더 간단한 시스템을 사용하면 ferm을 사용하여 쉽게 읽을 수있는 iptables 구성을 가질 수 있으며 프로그램 sg사용하여 특정 그룹으로 프로그램 을 실행할 수 있습니다. Iptables는 또한 트래픽을 다시 라우팅 할 수있게 해주므로 포트에서 별도의 인터페이스 또는 로컬 프록시로 라우팅 할 수도 있습니다. 트래픽을 확인하고 있습니다.

그룹에서 프로그램을 실행하고 실행 수명 동안 iptables로 다른 모든 트래픽을 줄 이도록 조정하는 것은 그리 복잡하지 않으며이 프로세스에서만 트래픽을 캡처 할 수 있습니다.

내가 글을 쓰러 갔다면 여기에 링크를 게시 할 것입니다.

또 다른 참고로, 항상 가상 컴퓨터에서 프로세스를 실행하고 연결을 분리하기 위해 올바른 인터페이스를 스니핑 할 수는 있지만 상당히 열등한 솔루션입니다 ...


여전히 시작해야하는 응용 프로그램을 따르려면 분명히 가능합니다.

  1. 도커 설치 ( https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/ 참조 )
  2. 터미널을 열고 작은 컨테이너를 실행하십시오. docker run -t -i ubuntu /bin/bash( "우분투"를 좋아하는 배포판으로 변경하십시오. 실제 시스템과 같을 필요는 없습니다)
  3. 실제 시스템에 설치하는 것과 같은 방법으로 컨테이너에 응용 프로그램을 설치하십시오.
  4. 실제 시스템에서 wireshark를 시작하고 캡처> 옵션으로 이동하십시오. 열리는 창에서 모든 인터페이스를 볼 수 있습니다. 대신 선택의 any, wlan0, eth0, ... 새 가상 인터페이스를 선택 docker0하는 대신.
  5. 캡처 시작
  6. 컨테이너에서 응용 프로그램을 시작하십시오

컨테이너에서 소프트웨어를 실행하는 것에 대한 의문이있을 수 있으므로 다음과 같은 질문에 대한 대답이 있습니다.

  • 내 응용 프로그램이 컨테이너 내에서 작동합니까? 거의 그렇습니다.하지만 작동하려면 docker에 대해 조금 배워야 할 수도 있습니다.
  • 내 응용 프로그램이 느리게 실행되지 않습니까? 무시할 만하다. 프로그램이 일주일 동안 많은 계산을 수행하는 프로그램이라면 이제 일주일과 3 초가 걸릴 수 있습니다
  • 컨테이너에서 소프트웨어 나 다른 항목이 깨지면 어떻게합니까? 컨테이너에 대한 좋은 점입니다. 내부에서 실행중인 것은 현재 컨테이너 만 깨뜨릴 수 있으며 시스템의 나머지 부분을 손상시킬 수 없습니다.

경우에 따라 프로세스 ID별로 필터링 할 수 없습니다. 예를 들어, 제 경우에는 하나의 프로세스에서 트래픽을 스니핑해야했습니다. 그러나 구성 대상 컴퓨터의 IP 주소, 필터 ip.dst==someip및 voila가 추가되었습니다 . 어떤 경우에도 작동하지 않지만 일부에게는 유용합니다.


다음을 사용하여 포트 번호를 얻으십시오 netstat.

netstat -b

그런 다음 Wireshark 필터를 사용하십시오.

tcp.port == portnumber

wireshark에서 다음 명령 예제를 사용하여 포트 번호를 확인할 수 있습니다.

tcp.port == 80

tcp.port == 14220

참고 URL : https://stackoverflow.com/questions/1339691/filter-by-process-pid-in-wireshark

반응형