Ngrep – Uma ferramenta de análise de rede

Introdução

A solução de problemas de rede geralmente requer o uso de um sniffer, e muitos administradores de rede acessam automaticamente o tcpdump, que é útil em muitas plataformas. Com o crescente número de protocolos suportados no IP, os administradores geralmente precisam analisar mais a carga útil dos pacotes para garantir que aplicativos ou usuários estejam fornecendo as informações esperadas pela pilha IP receptora.

O ngrep é um sniffer que pode ser usado como o tcpdump, e fornece a capacidade adicional de “grepping” a carga útil do pacote para correspondências específicas. O suporte expresso regular do ngrep tenta oferecer suporte à versão GNU do grep, que oferece muitos recursos avançados, como linhas de impressão após a expressão correspondente.

ngrep está disponível em:

http://ngrep.sourceforge.net/

e requer libpcap, disponível no site tcpdump:

http://www.tcpdump.org/

A libpcap já está em sistemas com o tcpdump instalado. A instalação do ngrep é simples – normalmente uma instalação configure, make e make o fará funcionar. Como ele usa libpcap, uma grande variedade de interfaces e sistemas operacionais são suportados.

Usar

O ngrep, como o tcpdump, pode ser usado para imprimir pacotes que correspondem a um protocolo específico. Por exemplo, você pode usar o seguinte para imprimir todos os pacotes UDP:

ngrep ” udp

pacotes ICMP ou com:

ngrep ” icmp

Portas específicas podem ser usadas. Por exemplo, o sistema de nomes de domínio (DNS) usa portas TCP ou UDP 53, portanto:

ngrep ” porta 53

mostrará todas as solicitações de DNS, como essa solicitação de [http://www.mcWrite.net]

U 192.168.1.100:1034 -> 4.2.2.1:53

: …………[http://www.samag.com….].

#

U 4.2.2.1:53 -> 192.168.1.100:1034

: …………[http://www.mcwrite.net…………………………..!.%……….].

..A.ROOT-SERVERS.NET ………….. E.GTLD-SERVERS.X …………. Fk. ….. …… Jk ………… Kk ………… Ak ………… Mk …. …… Gk ……

…… C.k …………. I.k …………. B.k …………. D

.kI …… o …) … i ……} ….. QE …………… C …. …. ‘> …. de …….. f ……

……… POR …). & ……… * …. re …….. “….). E … …………………. Y … $ ……..

..07 …. j ……………..;

enquanto a porta 23 do ngrep ” tcp imprimirá pacotes telnet. (Para determinar as portas apropriadas, verifique / etc / services ou consulte a Autoridade de números atribuídos da Internet em: http://www.iana.org/assignments/port-numbers.)

Para solucionar problemas de tráfego de navegação da Microsoft no domínio NT BIGWORLD, você pode usar:

ngrep ” porta 138

U 192.168.1.101:138 -> 192.168.1.255:138

……. e …… EOFFENECEFFCDJCACACACACACACACAAA. ABACFPFPENFDECFCEPFHF

DEFFPFPACAB..SMB% ………………………… (………….. ….. (.V

……… 9.MAILSLOTBROWSE …. ‘.. BIGWORLD ……….. @ ….. NÚMERO8.

Mas, para realmente aproveitar o ngrep, basta pegar o tráfego do LILWORLD:

ngrep porta ‘LILWORLD’ 138

###################################

U 192.168.1.101:138 -> 192.168.1.255:138

……. e …… EOFFENECEFFCDJCACACACACACACACAAA. ABACFPFPENFDECFCEPFHF

DEFFPFPACAB..SMB% ………………………… (………….. ….. (.V

……… 9.MAILSLOTBROWSE …. ‘.. LILWORLD ……….. @ ….. NÚMERO9.

Pode ser muito difícil solucionar problemas com o tcpdump em uma rede maior.

O email

O protocolo simples de transporte de correio (SMTP) é um protocolo baseado em ASCII, portanto o ngrep pode ser útil para solucionar problemas de email SMTP. Por exemplo, para monitorar a entrega atual e imprimir remetente e destinatários, use:

ngrep -iq ‘rcpt para | mail da’ porta 25 tcp

T 192.168.1.254:1043 -> 206.46.170.36:25 [AP]

CORREIO De: SIZE = 42 ..

T +63.769851 192.168.1.254:1043 -> 206.46.170.36:25 [AP]

RCPT para: ..

T 192.168.1.254:1043 -> 206.46.170.36:25 [AP]

RCPT para: ..

Isso pode ser útil para identificar o remetente dos vírus de email populares recentes que lêem os catálogos de endereços do Outlook e os enviam para outros usuários.

A versão 3 do protocolo postal (POP3) também pode ser testada da mesma maneira que o SMTP. Por exemplo, se é possível que o usuário esteja digitando incorretamente o nome do usuário:

porta 110 do usuário do ngrep

T 192.168.1.100:1889 -> 192.168.1.1:110 [AP]

teste do usuário ..

ICMP

A maioria das soluções de problemas do ICMP pode ser obtida com os comandos ping, mas existem diferentes implementações de ping. Por exemplo, os sistemas operacionais Microsoft preenchem a carga útil do ICMP com o alfabeto, para que você possa determinar se um host que está executando ping é realmente uma máquina Windows com:

ngrep -q ‘abcd’ icmp

I 192.168.1.100 -> 192.168.1.254 8: 0

…. abcdefghijklmnopqrstuvwabcdefghi

Rede

O protocolo de transporte de hipertexto (HTTP) é baseado em texto e compartilha todos os tipos de informações entre o servidor e o cliente. Por exemplo, para determinar o aplicativo cliente que o host do cliente está executando, use:

ngrep -iq ‘user-agent’ porta tcp 80

(Na verdade, o HTTP também requer uma versão do udp, mas ela nunca pegou.)

Este caso específico mostra que o usuário está usando o lynx:

T 192.168.1.254:1065 -> 64.4.43.7:80 [AP]

GET / HTTP / 1.0..Host: [http://www.hotmail.com..Accept:] text / html, text / plain,

áudio / mod, imagem / *, vídeo / *, vídeo / mpeg, aplicativo / pgp, aplicativo /

pgp, aplicativo / pdf, mensagem / parcial, mensagem / corpo externo, aplicativo

íon / postscript, x-be2, aplicativo / inserção de andrew, texto / richtext, texto / e

nriched .. Aceitar: x-sun-attachment, arquivo de áudio, arquivo postscript, padrão

t, arquivo de correio, mensagem de mesa de sol, aplicativo / x-metamail-patch, texto /

sgml, * / *; q = 0,01 .. Codificação de Aceitação: gzip, compress .. Linguagem de Aceitação: pt

Agente do usuário: Lynx / 2.8.3dev.18 libwww-FM / 2.14 ….

Obviamente, a versão do HTTP que está sendo usada pode ser determinada usando “HTTP” como expressão de pesquisa ou o servidor sendo executado usando “SERVER” como expressão. Alguns ataques em servidores da Web tentam solicitar documentos com pontos como o nome do arquivo, como ../. O ngrep também pode verificar estes:

ngrep ‘../’

T 192.168.1.100:1103 -> 10.1.1.1:80 [AP]

GET /../ HTTP / 1.0..Host: [http://www.somedomain.to..Accept:] texto / html, texto

/ simples, áudio / mod, imagem / *, vídeo / *, vídeo / mpeg, aplicativo / pgp, appl

documentação / pgp, aplicativo / pdf, mensagem / parcial, mensagem / corpo externo,

application / postscript, x-be2, application / andrew-inset, texto / richtext

, texto / enriquecido .. Aceitar: x-sun-attachment, arquivo de áudio, arquivo postscript

, padrão, arquivo de mensagens, sun-deskset-message, application / x-metamail-patc

h, texto / sgml, vídeo / mpeg, imagem / jpeg, imagem / tiff, imagem / x-rgb, imagem / p

ng, imagem / x-xbitmap, imagem / x-xbm, imagem / gif .. Aceitar: aplicativo / postagens

criptografia, * / *; q = 0,01 .. Codificação de aceitação: gzip, compress .. Linguagem de aceitação: e

n..Usuário-agente: Lynx / 2.8.4dev.7 libwww-FM / 2.14 ….

Essa mesma técnica pode ser usada para determinar o que um servidor ftp está relatando como sua versão:

porta 21 do ngrep ‘220’

T 209.155.82.18:21 -> 192.168.1.100:1105 [AP]

220 servidor FTP wcarchive.cdrom.com (versão DG-4.0.62 974200128) pronto

ou para investigar o Secure Shell, que pode ser difícil de depurar durante a primeira instalação:

ngrep porta ‘SSH’ 22

T 192.168.1.1:22 -> 192.168.1.100:1023 [AP]

SSH-1.5-1.2.27.

##

T 192.168.1.100:1023 -> 192.168.1.1:22 [AP]

SSH-1.5-OpenSSH_2.1.1.

Recursos interessantes do ngrep

Alguns dos recursos mais agradáveis ​​do ngrep são óbvios para os administradores de sistemas, mas podem ser menos óbvios para os administradores de rede com tarefas de administrador de sistemas leves. Vejamos alguns deles:

* -A n – O recurso -A imprime pacotes “n” após a partida. Isso pode ser útil, por exemplo, para imprimir várias linhas após o “para:” no cabeçalho de endereço do smtp para obter uma imagem mais completa do cabeçalho.

* -l – Às vezes é necessário canalizar a saída do grep para outro programa para mais processamento. No entanto, o comportamento normal do ngrep parecerá esporádico quando canalizado para o outro programa, porque ele primeiro preenche seu buffer antes de imprimir pacotes correspondentes. Ao usar -l, a saída será impressa imediatamente, em vez de esperar que o buffer do ngrep seja preenchido antes da impressão.

* -v – O -v imprime todas as linhas que não correspondem à expressão. Isso é útil durante a solução de problemas inicial, em que uma causa ainda não é conhecida, mas você pode assumir que ela não é gerada pelo tráfego que você está enviando para o host do host remoto enquanto acessa o host. Por exemplo, se você telnetar para o host para iniciar a solução de problemas, use:

ngrep -v ” porta 23

para ver todo o tráfego, exceto o telnet.

* -d – O -d permite que você especifique o dispositivo que deseja monitorar. O caminho completo para o nome do dispositivo não é necessário. Portanto:

ngrep -d le0 ”

ouvirá le0 em uma caixa Solaris.

Sumário

O ngrep, como seu primo tcpdump, é útil para solucionar problemas de rede. Com a adição de poder pesquisar com expressões regulares, vale a pena adicionar o ngrep à sua caixa de ferramentas de rede. Pesando pouco mais de 100 K, também vale a pena considerar para suas distribuições de disquetes de rede e de emergência.

 

Você pode gostar também

More Similar Posts

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Preencha esse campo
Preencha esse campo
Digite um endereço de e-mail válido.