Estou usando o tcpdump no OpenBSD e tentando aprender com umprimer sobre isso.
Quero capturar uma série de portas, mas parece que a forma como isso é feito mudou. Não consigo nem encontrar porrange como palavra-chave na página de manual, o que também sugere isso.
# tcpdump portrange 100-65535
tcpdump: syntax error
Não é uma coisa:
# man tcpdump | grep portrange
#
Presumo que isso tenha mudado ou seja diferente no OpenBSD. Se alguém pudesse me dizer o que fazer para isso, desde minhas primeiras aulas estaremos com algo prático seria ótimo. Seria ainda melhor se alguém me contasse sobre uma cartilha atualizada sobre o tcpdump.
O OpenBSD vem com seu próprio tcpdump, que pode ser um fork, não tenho certeza.
Responder1
portrange
não existe no filtro pcap do OpenBSD, mas você pode fingir.
tcpdump -i em0 tcp[2:2] > 79 and tcp[2:2] < 85
Você pode endereçar partes dos pacotes e compará-los. O primeiro número é deslocado no pacote (começando em zero) e o segundo número é quantos bytes usar. Portanto, o exemplo acima corresponde a qualquer pacote TCP com uma porta de destino de 80 a 84. Você também pode usar <= e >= para tornar as coisas mais intuitivas.
A correspondência com a porta de origem seria tcp[0:2]
. Na verdade, o UDP seria o mesmo, já que as portas têm os mesmos deslocamentos.
Responder2
Os filtros de exibição são gerenciados pelo libpcap, e o OpenBSD tem seu próprio libpcap e tcpdump, que não necessariamente captam alterações do libpcap e tcpdump do tcpdump.org.
Se portrange
não funcionar, o suporte para isso é provavelmente uma das coisas que o OpenBSD não pegou.
Responder3
você man pcap-filter
não deve usarman tcpdump
De acordo com 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.