답변:
실제로 Wireshark 필터를 사용하는 방법이 있습니다. 그러나 네트워크 이름이 아니기 때문에 프로세스 이름 또는 PID로 직접 필터링 할 수 없습니다.
먼저 프로세스에서 사용하는 프로토콜과 포트를 파악해야합니다 ( 이전 설명 의 netstat 명령이 잘 작동 함).
그런 다음 Wireshark를 사용하여 방금 검색 한 포트로 인바운드 (또는 아웃 바운드) 포트를 필터링하십시오. 프로세스의 들어오는 트래픽과 나가는 트래픽을 분리해야합니다.
netstat
. 오래 지속되는 연결 만 잡을 수 있습니다. :(
새 프로세스를 시작하고 모니터링하려면
strace -f -e trace=network -s 10000 PROCESS ARGUMENTS
알려진 PID로 기존 프로세스를 모니터링하려면
strace -p $PID -f -e trace=network -s 10000
-f
"새로운 프로세스를 따르십시오"-e
필터를 정의-s
문자열의 한계를 32 이상으로 설정-p
프로세스 ID를 첨부합니다.이 스레드가 약간 오래되었다는 것을 알고 있지만 이것이 일부 사용자에게 도움이 될 수 있다고 생각합니다.
커널이 허용하는 경우 단일 프로세스의 네트워크 트래픽 캡처는 격리 된 네트워크 네임 스페이스에서 해당 프로세스를 실행하고 해당 네임 스페이스에서 wireshark (또는 다른 표준 네트워킹 도구)를 사용하여 매우 쉽게 수행 할 수 있습니다.
설정이 약간 복잡해 보일 수 있지만 일단 이해하고 익숙해지면 작업이 훨씬 쉬워집니다.
그렇게하기 위해 :
테스트 네트워크 네임 스페이스를 만듭니다.
ip netns add test
한 쌍의 가상 네트워크 인터페이스 (veth-a 및 veth-b)를 만듭니다.
ip link add veth-a type veth peer name veth-b
veth-a 인터페이스의 활성 네임 스페이스를 변경하십시오.
ip link set veth-a netns test
가상 인터페이스의 IP 주소를 구성하십시오.
ip netns exec test ifconfig veth-a up 192.168.163.1 netmask 255.255.255.0
ifconfig veth-b up 192.168.163.254 netmask 255.255.255.0
테스트 네임 스페이스에서 라우팅을 구성하십시오.
ip netns exec test route add default gw 192.168.163.254 dev veth-a
ip_forward를 활성화하고 생성 한 네임 스페이스에서 들어오는 트래픽을 전달하는 NAT 규칙을 설정하십시오 (네트워크 인터페이스 및 SNAT ip 주소를 조정해야 함).
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.163.0/24 -o <your internet interface, e.g. eth0> -j SNAT --to-source <your ip address>
(원하는 경우 MASQUERADE 규칙을 사용할 수도 있습니다)
마지막으로, 새로운 네임 스페이스에서 분석하려는 프로세스와 wireshark도 실행할 수 있습니다.
ip netns exec test thebinarytotest
ip netns exec test wireshark
veth-a 인터페이스를 모니터링해야합니다.
socat
수 있습니다 .
netstat -taucp | grep <pid or process name>
사용중인 포트를 포함하여 응용 프로그램이 연결을 보여줍니다.
아이디어 : 다른 IP 주소에 응용 프로그램을 바인딩 할 수 있습니까? 그렇다면 일반적인 용의자 ( tcpdump 등)를 사용할 수 있습니다
다른 IP 주소에 바인딩 할 수없는 응용 프로그램 도구 :
http://freshmeat.net/projects/fixsrcip
fixsrcip
발신 TCP 및 UDP 클라이언트 소켓 ( IPv4 )을 멀티 홈 호스트의 특정 소스 IP 주소에 바인딩하는 도구입니다.
http://freshmeat.net/projects/force_bind
force_bind
특정 IP 및 / 또는 포트에서 강제로 바인딩 할 수 있습니다. IPv4 및 IPv6 모두에서 작동 합니다 .
비슷한 문제가 발생했으며 여기에 설명 된대로 NFLOG 를 사용하여 ioerror 의이 답변을 기반으로 정렬 할 수있었습니다 .
# iptables -A OUTPUT -m owner --uid-owner 1000 -j CONNMARK --set-mark 1
# iptables -A INPUT -m connmark --mark 1 -j NFLOG --nflog-group 30
# iptables -A OUTPUT -m connmark --mark 1 -j NFLOG --nflog-group 30
# dumpcap -i nflog:30 -w uid-1000.pcap
그런 다음 다른 작업을 수행하지 않는 사용자 계정에서 문제의 프로세스를 실행할 수 있습니다. 단, 단일 프로세스에서 트래픽을 격리하고 캡처했습니다.
누군가를 돕기 위해 다시 게시하고 싶었습니다.
나는 felahdab에 의해 위의 큰 답변에 설명 된 것을 수행하는 C 응용 프로그램을 작성했습니다!
여기 참조 : nsntrace github repo
이것은 더러운 해킹이지만 주어진 UID에 대해 iptables가있는 전환 또는 로그 대상을 제안합니다. 예 :
iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner $USER -m tcp -j LOG
iptables -t nat -A OUTPUT -p udp -m owner --uid-owner $USER -m udp -j LOG
해당 로그 대상에 대해 '--log-tcp-sequence', '--log-tcp-options', '--log-ip-options', '--log-uid'와 같은 것을 살펴볼 가치가 있습니다. . 비록 그것이 다른 많은 데이터를 포함하는 pcap을 게시하는 데 도움이 될 것이라고 생각합니다.
NFLOG 대상은 패킷에 플래그를 지정하려는 경우 특정 태그가 지정된 패킷이 netlink 소켓을 통해 선택한 프로세스로 전송되는 경우 유용 할 수 있습니다. 이것이 wireshark와 특정 사용자로 실행중인 특정 응용 프로그램으로 무언가를 해킹하는 데 유용한 지 궁금합니다.
당신은 tracedump 시도 할 수 있습니다 - http://mutrics.iitis.pl/tracedump
정확히 원하는 것을 수행합니다. 프로세스 ID 또는 실행할 프로그램을 제공 할 수 있습니다.
strace 아래에서 관심있는 프로세스를 실행하십시오 .
strace ping www.askubuntu.com
프로세스가 수행하는 작업에 대한 매우 자세한 정보를 제공합니다. 프로세스는 사전 정의 된 필터를 사용하여 어디에서나 원하는 포트를 열 수 있으므로 놓칠 수 있습니다.
또 다른 방법은 네트워크에서 제거 된 가상 머신 또는 테스트 머신을 사용하여 프로세스를 별도로 분리하는 것입니다. 그런 다음 Wireshark 를 사용 하여 해당 시스템에서 모든 것을 잡을 수 있습니다 . 캡처 한 트래픽이 관련성이있을 것입니다.
wireshark bug # 1184 가이 기능입니다. 아직 구현되지 않았습니다. ask.wireshark.org에서
사용자 cmanynard에서 복사
아마도 iptables와 ulog가 작동 할 수 있습니까? 정확한 레시피는 없지만 iptables가 프로세스와 일치 할 수 있다고 생각 하면 일단 일치하면 ulog를 사용할 수 있습니다.
iptables -m owner --pid-owner $PID
Linux 2.6.14에서 제거되었습니다 : ftp.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.14
netstat 실행 및 텍스트 파일에 로깅을 반복하는 셸 스크립트를 만들 수 있다고 생각합니다. (매우 거친 단계)와 같은 것 :
echo "press q to quit"
while [ <q is not pressed>]
do
`netstat -taucp | grep <pid or process name> 1>>logfile.txt`
done
나는 프로그래머가 아니므로 이것을 조정할 수 없습니다. 그러나 여기서 누군가는 내가 그만 둔 곳에서 시작하여 당신을 위해 작동하는 스크립트를 만들 수 있습니다.
netstat
바쁜 컴퓨터에 간단한 네트워크 캡처 필터.