Ngrep: una herramienta de análisis de red

Introducción

La solución de problemas de red a menudo requiere el uso de un sniffer, y muchos administradores de red buscan automáticamente tcpdump, que es útil en muchas plataformas. Con el creciente número de protocolos soportados en IP, los administradores a menudo necesitan analizar más a fondo la carga útil de los paquetes para asegurarse de que las aplicaciones o los usuarios proporcionen la información esperada por la pila de IP receptora.

ngrep es un sniffer que puede usarse como tcpdump, y proporciona la capacidad adicional de “grepping” de la carga útil del paquete para coincidencias particulares. El soporte expreso regular de ngrep intenta admitir que se asemeja a la versión GNU de grep, que ofrece muchas características avanzadas, como líneas de impresión después de la expresión coincidente.

ngrep está disponible en:

http://ngrep.sourceforge.net/

y requiere libpcap, que está disponible en el sitio web tcpdump:

http://www.tcpdump.org/

libpcap ya está en sistemas que tienen instalado tcpdump. La instalación de ngrep es sencilla: por lo general, la instalación de configure, make y make lo tendrá en funcionamiento. Debido a que utiliza libpcap, se admite una amplia gama de interfaces y sistemas operativos.

Utilizar

ngrep, como tcpdump, puede usarse para imprimir paquetes que coinciden con un protocolo particular. Por ejemplo, puede usar lo siguiente para imprimir todos los paquetes UDP:

ngrep ” udp

o paquetes ICMP con:

ngrep ” icmp

Se pueden usar puertos específicos. Por ejemplo, el sistema de nombres de dominio (DNS) utiliza los puertos TCP o UDP 53, por lo que:

ngrep ” puerto 53

mostrará todas las solicitudes de DNS, como esta solicitud 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 …. ……G k……

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

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

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

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

mientras que ngrep ” tcp port 23 imprimirá paquetes telnet. (Para determinar los puertos apropiados, verifique / etc / services, o consulte a la Autoridad de Números Asignados de Internet en: http://www.iana.org/assignments/port-numbers.)

Para solucionar el tráfico de navegación de Microsoft para el dominio BIGWORLD de NT, puede usar:

ngrep ” puerto 138

U 192.168.1.101:138 -> 192.168.1.255:138

……. e …… EOFFENECEFFCDJCACACACACACACACAAA. ABACFPFPENFDECFCEPFHF

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

……… 9.MAILSLOTBROWSE …. ‘.. BIGWORLD ……….. @ ….. NUMBER8.

Pero para aprovechar realmente ngrep, simplemente tome el tráfico de LILWORLD:

ngrep ‘LILWORLD’ puerto 138

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

U 192.168.1.101:138 -> 192.168.1.255:138

……. e …… EOFFENECEFFCDJCACACACACACACACAAA. ABACFPFPENFDECFCEPFHF

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

……… 9.MAILSLOTBROWSE …. ‘.. LILWORLD ……….. @ ….. NUMBER9.

Esto podría ser muy difícil de solucionar con tcpdump en una red más grande.

Email

El protocolo simple de transporte de correo (SMTP) es un protocolo basado en ASCII, por lo que ngrep puede ser útil para solucionar problemas de correo electrónico SMTP. Por ejemplo, para monitorear la entrega actual e imprimir el remitente y los destinatarios, use:

ngrep -iq ‘rcpt a | mail desde’ tcp puerto 25

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

CORREO Desde: TAMAÑO = 42 ..

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

RCPT a: ..

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

RCPT a: ..

Esto puede ser útil para identificar al remitente de los virus de correo populares recientes que leen las libretas de direcciones de Outlook y envían el virus a otros usuarios.

La versión 3 del protocolo de la oficina postal (POP3) también se puede probar de la misma manera que SMTP. Por ejemplo, si es posible que el usuario esté escribiendo mal el nombre de usuario:

ngrep ‘usuario’ puerto 110

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

prueba de usuario ..

ICMP

La mayor parte de la solución de problemas de ICMP se puede lograr con los comandos ping, pero hay diferentes implementaciones de ping. Por ejemplo, los sistemas operativos de Microsoft llenan la carga útil de ICMP con el alfabeto, por lo que puede determinar si un host que hace ping es realmente una máquina Windows con:

ngrep -q ‘abcd’ icmp

I 192.168.1.100 -> 192.168.1.254 8: 0

…. abcdefghijklmnopqrstuvwabcdefghi

Web

El protocolo de transporte de hipertexto (HTTP) está basado en texto y comparte todo tipo de información entre el servidor y el cliente. Por ejemplo, para determinar la aplicación del cliente que está ejecutando el host del cliente, use:

ngrep -iq ‘user-agent’ tcp port 80

(HTTP también requiere una versión de udp, pero nunca se ha puesto de moda).

Este caso particular muestra que el usuario está usando 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,

audio / mod, imagen / *, video / *, video / mpeg, aplicación / pgp, aplicación /

pgp, application / pdf, mensaje / parcial, mensaje / cuerpo externo, aplicación

ion / postscript, x-be2, application / andrew-inset, text / richtext, text / e

nriched..Aceptar: archivo adjunto x-sun, archivo de audio, archivo postscript, predeterminado

t, mail-file, sun-deskset-message, application / x-metamail-patch, text /

sgml, * / *; q = 0.01..Aceptar codificación: gzip, comprimir..Aceptar idioma: en

.. Agente de usuario: Lynx / 2.8.3dev.18 libwww-FM / 2.14 ….

Por supuesto, la versión de HTTP que se está usando se puede determinar usando “HTTP” como expresión de búsqueda, o el servidor que se está ejecutando usando “SERVER” como expresión. Algunos ataques a servidores web intentan solicitar documentos con puntos como el nombre del archivo, como ../. ngrep también puede verificar esto:

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

/ plain, audio / mod, image / *, video / *, video / mpeg, application / pgp, appl

ication / pgp, application / pdf, message / partial, message / external-body,

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

, texto / enriquecido … Aceptar: archivo adjunto x-sun, archivo de audio, archivo postscript

, predeterminado, archivo de correo, mensaje de escritorio de sol, aplicación / x-metamail-patc

h, texto / sgml, video / mpeg, imagen / jpeg, imagen / tiff, imagen / x-rgb, imagen / p

ng, image / x-xbitmap, image / x-xbm, image / gif..Aceptar: aplicación / publicaciones

cript, * / *; q = 0.01..Aceptar codificación: gzip, comprimir..Aceptar idioma: e

n .. Agente de usuario: Lynx / 2.8.4dev.7 libwww-FM / 2.14 ….

Esta misma técnica se puede utilizar para determinar lo que informa un servidor ftp como su versión:

ngrep ‘220’ puerto 21

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

220 wcarchive.cdrom.com servidor FTP (Versión DG-4.0.62 974200128) listo

o para investigar Secure Shell, que puede ser difícil de depurar durante la primera instalación:

ngrep ‘SSH’ puerto 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.

Características ordenadas de ngrep

Algunas de las características más agradables de ngrep son obvias para los administradores de sistemas, pero pueden ser menos obvias para los administradores de red con tareas de administración de sistemas ligeros. Veamos algunos de ellos:

* -A n: la función -A imprime paquetes “n” después del partido. Esto podría ser útil, por ejemplo, para imprimir varias líneas después del “a:” en el encabezado de dirección de smtp para obtener una imagen más completa del encabezado.

* -l – A veces es necesario canalizar la salida de grep a otro programa para más procesamiento. Sin embargo, el comportamiento normal de ngrep parecerá esporádico cuando se canaliza al otro programa porque primero llena su búfer antes de imprimir paquetes coincidentes. Al usar -l, la salida se imprimirá inmediatamente en lugar de esperar a que se llene el búfer de ngrep antes de imprimir.

* -v – La -v imprimirá todas las líneas que no coincidan con la expresión. Esto es útil durante la resolución de problemas inicial cuando aún no se conoce una causa, pero puede suponer que no se genera por el tráfico que está enviando al host desde su host remoto mientras accede al host. Por ejemplo, si hace telnet al host para comenzar a solucionar problemas, use:

ngrep -v ” puerto 23

para ver todo el tráfico excepto telnet.

* -d: la opción -d le permite especificar el dispositivo que desea monitorear. No se requiere la ruta completa al nombre del dispositivo. Así:

ngrep -d le0 ”

escuchará le0 en una caja de Solaris.

Resumen

ngrep, como su primo tcpdump, es útil para la resolución de problemas de red. Con la adición de poder buscar con expresiones regulares, vale la pena agregar ngrep a su caja de herramientas de red. Con un peso de poco más de 100 K, también vale la pena considerarlo para sus distribuciones de disquete de red y de emergencia.

 

También podría gustarte

More Similar Posts

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rellena este campo
Rellena este campo
Por favor, introduce una dirección de correo electrónico válida.