Para capturar o tráfego da interface eth0 (-i) e não resolver o reverso dos endereços IP (-n); opção que ajuda bastante na velocidade da captura. Capturar até 1500 bytes dos pacotes (-s) ao invés dos 68 bytes capturados na opção padrão. Capturar somente 1000 pacotes (-c) e gravar em um arquivo (-w) chamado file.cap, utilizamos o exemplo abaixo.
root@server# tcpdump -i eth0 -n -s 1500 -c 1000 -w file.capA opção -r deve ser utilizada posteriormente para ler o arquivo file.cap. Ou seja, a sintaxe padrão do tcpdump é:
root@server# tcpdump [ opções ] [ expressão ]
E é na parte de expressões que estou interessado hoje. Estas expressões são definidas por palavras reservadas e operadores lógicos para selecionar um determinado tráfego de rede. As principais palavras reservadas são:
- Tipo: host, net, port, ...
- Protocolo: ether, ip, tcp, udp, arp, rarp, ...
- Direção: src, dst, src and dst, src or dst, ...
- Operadores lógicos: and, or, not.
Podemos então montar um filtro para selecionar os pacotes com origem na rede 10.10.10.0/24 e com destino o servidor 192.168.0.1 na porta 80.
root@server# tcpdump -ni eth0 'src net 10.10.10.0/24 and dst host 192.168.0.1 and dst port 80'
Se estivermos em busca dos pacotes de início de uma conexão: pacotes com a flag SYN marcada no cabeçalho do TCP, então podemos utilizar a seguinte combinação:
root@server# tcpdump -ni eth0 'tcp[13] == 2'Ou seja, o tcpdump irá selecionar somente os pacotes que tiverem o valor 2 (decimal) no décimo terceiro byte do cabeçalho TCP. Se lembrarmos das lições de redes de computadores, sabemos que o décimo terceiro byte do cabeçalho TCP é o byte reservado para as flags do protocolo e o valor 2 em decimal é a representação de 00000010 em binário. Lembre-se também da ordem das flags no cabeçalho: os dois primeiros bits são reservados e os seguintes são URG, ACK, PSH, RST, SYN e FIN. Ou seja, somente o penúltimo bit possui o valor 1 para os pacotes que carregam somente a flag SYN.
Este processo pode também ser utilizado para o protocolo ICMP, como no exemplo abaixo. Para mais detalhes sobre os tipos e códigos do protocolo ICMP consultar o documento oficial da IANA.
root@server# tcpdump -ni en1 'icmp[icmptype]==8'As possibilidades de combinação são grandes, já que podemos também utilizar operadores lógicos bit-a-bit para selecionar o tráfego, mas este tipo de filtro vou deixar a cargo do leitor pesquisar. Podemos também utilizar estes filtros para fazer assinaturas de ataques e detectar estes ataques somente com a utilização do tcpdump. Existem dois documentos da SANS que auxiliam na utilização do tcpdump para IPv4 e IPv6. Ou ainda a man page oficial do tcpdump.
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en1, link-type EN10MB (Ethernet), capture size 96 bytes
23:55:33.232659 IP 192.168.0.x > 200.192.y.x: ICMP echo request, id 52993, seq 0, length 64
Olá,
ResponderExcluirGostei do seu artigo e tomei a liberdade de colocar um link do seu artigo no meu blog.
Assim que puder faça uma visita lá: http://www.prosadigital.com
Olá amigo, belo tutorial, gostei muito.
ResponderExcluirEstou com um problema aqui em ksa, na exibição de algumas partes de seu artigo, por exemplo essa linha :
"root@server# tcpdump -i eth0 -n -s 1500 -c 1000 -w file."
como você pode ver, está "comendo" uma parte dos comandos, outro exemplo :
"root@server# tcpdump -ni eth0 'src net 10.10.10.0/24 and"
e por aí vái.
estou usando o Opera, mais detalahdo :
Versão
9.22
Build
8801
no IE abre corretamente. seria um problema com Opera, não é mesmo?
obrigado pela atenção.
=)
Eu testei a página no Firefox e no Safari. Ainda não tinha testado em outros navegadores e aparentemente o Firefox possui o mesmo problema. Vou ver o que dá pra melhorar...
ResponderExcluirObrigado pela dica!
xD
ResponderExcluirobrigado novamente :D
e ae beleza??
ResponderExcluirEstou fazendo um trabalho sobre TCPDUMP e num acho nada na internet além de tutoriais.
Quem tiver algum mateial por favor mande no e-mail vicente.portas@gmail.com
Obrigadoooo
oi, gustavo:
ResponderExcluirgostei - e estou usando - o tutorial aqui. Beeeem melhor do que o man tcpdump (risos).
olace: estou usando opera versão 9.51 e pra mim não apareceu nada truncado.