나는 응용 프로그램에 의해 생성 된 네트워크 데이터의 pcap을 덤프하는 방법을 찾고 있는데, 비슷한 방식으로 strace
syscall을 덤프합니다. 예 :
net-strace somecommand -args
somecommand
네트워크를 통해 무언가를 수행하고 net-strace
해당 앱에서 생성 된 모든 트래픽 (+ 회신 및 관련 트래픽)의 pcap 덤프를 저장합니다.
이것이 달성 될 수 있습니까?
문제는 응용 프로그램이 패킷을 보내지 않지만 (ping과 같은 원시 소켓을 사용하는 것을 제외하고) 커널이 패킷을 보내고 (관련 패킷을 받도록) 네트워킹 API를 사용한다는 것입니다.
—
Stéphane Chazelas
예, 그러나 프록시를 통해 모든 애플리케이션 데이터를 실행하는 애플리케이션 (예 : proxychains-proxychains.sourceforge.net )이 있습니다. 그들이하는 방법을 모르지만, 그것을 잡아서 프록시를 통해 보낼 수 있습니다. pcap을 덤프 할 수있는 간단한 프록시 (로컬로 실행)가 있으면 proxychains + proxy 콤보를 사용하여 덤프를 얻을 수 있습니다.
—
gesti
패킷보다 API를 하이재킹 할 가능성이 높습니다 (LD_PRELOAD 사용). 그러나 일부 setsockopt (SO_MARK)를 응용 프로그램에 주입하고 netfilter를 사용하여 패킷을 ulog에 기록 할 수 있습니다.
—
Stéphane Chazelas
응용 프로그램을위한 새로운 네트워크 네임 스페이스를 생성하고 모든 트래픽을 캡처하여 일부 사용 사례에도 적합한 접근 방식이있을 수 있습니다.
—
Stéphane Chazelas