설명서에 따라 포트 범위를 지정할 때 tcpdump 구문 오류가 발생합니다.

설명서에 따라 포트 범위를 지정할 때 tcpdump 구문 오류가 발생합니다.

OpenBSD에서 tcpdump를 사용하고 있으며그것에 대한 입문서.

다양한 포트를 캡처하고 싶지만 이 작업이 수행되는 방식이 변경된 것 같습니다. 나는 매뉴얼 페이지에서도 이것을 보여주는 키워드로 portrange를 찾을 수 없습니다.

# tcpdump portrange 100-65535 
tcpdump: syntax error

한 가지도 아닙니다:

# man tcpdump | grep portrange
# 

OpenBSD에서는 이것이 변경되었거나 다르다고 생각합니다. 첫 수업에서는 실용적인 것을 배울 것이기 때문에 누군가 나에게 이를 수행하는 방법을 말해 준다면 좋을 것입니다. 누군가가 나에게 tcpdump에 대한 최신 입문서에 대해 알려준다면 더 좋을 것입니다.

OpenBSD에는 자체 tcpdump가 함께 제공됩니다. 이것은 포크일 수 있습니다. 확실하지 않습니다.

답변1

portrangeOpenBSD의 pcap-filter에서는 사용할 수 없지만 위조할 수 있습니다.

tcpdump -i em0 tcp[2:2] > 79 and tcp[2:2] < 85

패킷의 개별 부분을 지정하고 비교할 수 있습니다. 첫 번째 숫자는 패킷의 오프셋(0부터 시작)이고 두 번째 숫자는 사용할 바이트 수입니다. 따라서 위의 예에서는 대상 포트가 80~84인 모든 TCP 패킷과 일치합니다. <= 및 >=를 사용하여 보다 직관적으로 만들 수도 있습니다.

소스 포트와 일치하는 tcp[0:2]UDP는 포트의 오프셋이 동일하므로 실제로 동일합니다.

답변2

디스플레이 필터는 libpcap에 의해 처리되며 OpenBSD에는 자체 libpcap 및 tcpdump가 있습니다. 이는 tcpdump.org의 libpcap 및 tcpdump에서 변경 사항을 반드시 가져올 필요는 없습니다.

만약 portrange그것이 작동하지 않는다면, 그것을 지원하는 것은 아마도 OpenBSD가 선택하지 않은 일 중 하나일 것입니다.

답변3

당신은 man pcap-filter사용해서는 안됩니다man tcpdump

에 따르면 man pcap-filter:

dst portrange port1-port2
              True  if  the packet is ip/tcp, ip/udp, ip6/tcp or ip6/udp and has a destination port value between port1 and port2.  port1 and port2 are interpreted
              in the same fashion as the port parameter for port.


   src portrange port1-port2
          True if the packet has a source port value between port1 and port2.

   portrange port1-port2
          True if either the source or destination port of the packet is between port1 and port2.

          Any of the above port or port range expressions can be prepended with the keywords, tcp or udp, as in:
               tcp src port port
          which matches only tcp packets whose source port is port.

관련 정보