O tcpdump é um analisador de pacotes que roda em modo texto( e também um dos sniffers mais famosos que existe). Sua utilização é simples e sem mistérios, bastando apenas ter os conhecimentos básicos de redes TCP/IP e basta roda-lo com o root que ele começa a fazer o serviço. Segue uma pequena lista com alguns parâmetros.
-D: interfaces vistas pelo tcpdump -c: captura c pacotes -e: informação de camada de enlace -A: imprime os pacotes em ASCII -n: não resolve nomes (mostra endereços como são) -v : modo verbose (pode-se aumenta-lo com -vv -vvv) -x: mostra o PDU em hexadecimal -S: mostra números de sequência em formato absoluto (por padrão o tcpdump mostra os números relativos aos valores iniciais estabelecidos na conexão) -s: tamanho do pacote -t: retira a informação de timestamp do início da linha -ttt: mostra a diferença de tempo para uma referência em us (microssegundos) expressão – indica que pacotes devem ser mostrados (dumped) Ex.: tcpdump -n icmp tcpdump src <origem> tcpdump dst <destino> tcpdump host <máquina>
Agora vamos a algumas dicas o seu uso. Para armazenar a saída (em modo texto) em um arquivo digite:
tcpdump –c 100 > trace.txt
Com esse comando abaixo ele ira sniffar os pacotes que passam pela interface eth0:
#tcpdump -i eth0
Usando esse comando ele ira capturar todos os pacotes vindos de 192.168.0.2 (que também funciona com URL, que será explicado mais abaixo):
#tcpdump -i eth0 src host 192.168.0.2
É também e possível utiliza-lo com sites, por exemplo:
#tcpdump -i eth0 src host www.google.com
dessa forma ele ira capturar todos os pacotes que vem de www.google.com. Para verificar todo trafego que vem da porta de origem 666:
#tcpdump -i eth0 src port 666
O argumento -n evita name service queries, a resolução de DNS:
#tcpdump -n icmp
Para Scaneiar restritamente TCP ou UDP:
#tcpdump -n -t tcp or udp
Para scaneiar restritamente TCP port 22:
#tcpdump tcp port 22
Para scaneiar os dois IP (comunicação entre dois IP), excelente se o tcpdump estiver no gateway:
#tcpdump host \(10.10.100.100 and 10.10.200.200\)
Para scaneiar a porta 666 mas descarta host IP 192.168.0.1:
#tcpdump port 666 and not host 192.168.0.1
Capturando pacotes com origem em 172.25.50.1 e destino 201.XXX.XXX.XXX, com exceção da porta 666:
#tcpdump -i en1 -n src 172.25.50.1 and dst 201.XXX.XXX.XXX and port not 666.
Agora, um pouco mais chique, usando egrep – isso vai mostrar todos os seus pedidos da Web em tempo real:
#tcpdump-i eth0-Um porta-n 80 | egrep-i (GET. / | POST. / | Host:)
Se você esqueceu sua senha pop3, mas tê-lo guardado no cliente, isto também se aplica às senhas para a web, eu tenho utilizado este um lote, em vez de o “esqueci senha” mecanismo…
#tcpdump-i eth0-n port 110-A | egrep-i (user | pass)
Obtêm somente os segmentos com SYN ligado:
#tcpdump 'tcp[13] & 2==2'
Para filtrar pacotes com cabeçalhos maiores de 20 bytes:
#tcpdump 'ip[0] & 0x0f > 5'
Para filtra o 10º byte ou 9º offset (protocol field) – TCP = port 6 UDP = port 17, por exemplo:
#tcpdump ‘ip[9] = 6’
Capturar o tráfego de pacotes TCP que tenham o flag SYN ligado (ou seja apenas os pacotes de solicitações de conexão). Use o comando abaixo:
#tcpdump -i eth0 'tcp[13] & 2 == 2' –w syn.cap –c 5
O resto depende da criatividade…
Referências e links
- Site oficial do projeto.
- Guia de referência em português escrito por Ricardo Iramar dos Santos aka Agent Smith.
- http://www.ietf.org/rfc/rfc0791.txt
- http://www.ietf.org/rfc/rfc0793.txt
- Dicas aqui e aqui sobre o tcpdump
- Tradução da man page do tcpdump
[]‘s


Últimos Comentários