Examina os pacotes que atravessam a interface da rede e coloca num arquivo texto a descrição do tráfego. Coloca a interface em modo promíscuo. Pode gravar todo o tráfego de pacotes da ethernet ou o tráfego para um host local. As informações do arquivo são valores como tipo do protocolo, tamanho, origem e destino. O Etherfind pode filtrar os pacotes, com base nos protocolos (IP, ARP, RARP, ICMP, UDP, TCP), ou baseado nos endereços de origem e destino, ou ainda nos números das portas TCP e UDP. Para executar Etherfind é necessário ter privilégios de root.
Formato Básico:
etherfind [ -d ] [ -n ] [ -p ] [ -r ] [ -t ] [ -u ] [ -v ] [ -x ] [ -c count ] [ -i interface ] [ -l length ] expression
Opções:
-d : escreve o número de pacotes abandonados. Não é confiável. -n : não converte o endereço do host e o número da porta para nomes.
-p : não coloca a interface em modo promiscuo (que é o default).
-t : timestamps- antecede cada pacote listado com um valor em segundos e centésimos de segundo desde o primeiro pacote.
-u : cria os resultados em linha (`buffered').
-x : faz um dump do pacote em hexadecimal, além da linha apresentada para cada pacote (por default). A opção -l limita esta saída.
-i `interface' : Etherfind escuta a interface especificada. ( Netstat com a opção -i lista todas as interfaces disponíveis no sistema) [HUN 94].
-l `length' : utilizado junto com a opção -x para limitar o número de bytes escritos.
-v : modo prolixo - mostra alguns dos campos dos pacotes TCP e UDP. Este parâmetro fornece um trace que é apropriado para análise de muitos problemas na rede. -r : modo RPC - trata cada pacote como uma mensagem RPC, escrevendo o programa e os números do procedimento. Com esta opção, o roteamento de pacotes tem uma decodificação mais completa, os pedidos do NIS e NFS tem seus argumentos escritos. -c ` count': finaliza após receber ` count` pacotes. (Útil para descarregar um exemplo de tráfego ethernet para um arquivo, a fim de realizar uma análise posterior)
Expressões:
srcport ` port' : verdadeiro se o pacote tem o valor da porta de origem igual ` port`.
dstport ` port' : verdadeiro se o pacote tem o valor da porta de destino igual ` port` . A porta pode ser um número ou um nome usado em /etc/services.
proto ` protocol' : verdadeira se o pacote é um pacote IP do tipo de protocolo ` protocol' . Pode ser um número ou um dos nomes ICMP, UDP ou TCP.
dst `destination' : verdadeiro se o campo destino do pacote é `destination', que pode ser um endereço ou nome.
src `source' : verdadeiro se a origem do pacote é `source', que pode ser um endereço ou nome.
host `name' : verdadeiro se a origem ou destino de um pacote é `name'.
between `host1' `host2' : verdadeiro se a origem de um pacote é `host1' e o destino `host2' ou vice-versa.
dstnet `destination' : verdadeiro se o campo destino do pacote tem uma parte da rede de `destination'. Pode ser nome ou endereço.
srcnet `source' : verdadeiro se o campo origem do pacote contém uma parte da rede de `source'. Pode ser endereço ou nome.
As primitivas de ` expression' podem ser combinadas, utilizando os operadores ` not' , ` and' e ` or', como por exemplo, encontrar todos os pacotes que saem ou chegam no host minuano e que o protocolo seja TCP: etherfind host minuano and proto TCP