NGREP un analizador de paquetes de red para Linux

NGREP un analizador de paquetes de red para Linux

Ngrep (Grep Network) es un analizador de paquetes de red simple pero potente. Es una herramienta tipo GREP aplicada a la capa de red: coincide con el tráfico que pasa por una interfaz de red. Le permite especificar una expresión regular o hexadecimal extendida para que coincida con las cargas útiles de datos (la información o el mensaje real en los datos transmitidos, pero no los metadatos generados por auto) de los paquetes.

Esta herramienta funciona con varios tipos de protocolos, incluidos IPv4/6, TCP, UDP, ICMPV4/6, IGMP y RAW en varias interfaces. Funciona de la misma manera que la herramienta TCPDump Packet Sniffing.

El paquete ngrep está disponible para instalar desde los repositorios del sistema predeterminados en las distribuciones de Linux convencionales utilizando la herramienta de administración de paquetes como se muestra.

$ sudo apt instalación ngrep $ sudo yum instalación ngrep $ sudo dnf install ngrep 

Después de instalar ngrep, Puede comenzar a analizar el tráfico en su red Linux utilizando los siguientes ejemplos.

1. El siguiente comando lo ayudará a hacer coincidir todas las solicitudes de ping en la interfaz de trabajo predeterminada. Debe abrir otro terminal e intentar hacer ping a otra máquina remota. El -Q bandera Tell ngrep trabajar en silencio, no generar ninguna otra información que los encabezados de paquetes y sus cargas útiles.

$ sudo ngrep -q '."ICMP ' Interfaz: ENP0S3 (192.168.0.0/255.255.255.0) Filtro: (ICMP) y ((IP || IP6) || (vlan && (ip || ip6))) coincidir: . I 192.168.0.104 -> 192.168.0.103 8: 0]… ~ og [... J .. !ps+,-./01234567 I 192.168.0.103 -> 192.168.0.104 0: 0]… ~ og [... J .. !ps+,-./01234567 I 192.168.0.104 -> 192.168.0.103 8: 0] ... OG [.. !ps+,-./01234567 I 192.168.0.103 -> 192.168.0.104 0: 0] ... OG [.. !ps+,-./01234567 

Puedes presionar Ctrl + C para terminarlo.

2. Para que solo se coincida con el tráfico de un sitio de destino en particular, por ejemplo 'Google.com ', Ejecute el siguiente comando, luego intente acceder a él desde un navegador.

$ sudo ngrep -q '."Organice Google.com ' Interfaz: ENP0S3 (192.168.0.0/255.255.255.0) Filtro: (Host Google.com) y ((ip || ip6) || (vlan && (ip || ip6))) coincidir: . T 172.217.160.174: 443 -> 192.168.0.103: 54008 [AP] ...;.(... rzr ... $ ... s = ... l.Q+R.U ... 4 ... g.Ji,.l ...: y.a, ... c 5> [correo electrónico protegido] t 172.217.160.174: 443 -> 192.168.0.103: 54008 [AP] ... L .. !,0HJ ... 0.%F… !... l | ... pl ... x ... t ... t.2dc ... y ... ~ y; [correo electrónico protegido] 

3. Si está navegando por la web, ejecute el siguiente comando para monitorear qué archivos está solicitando su navegador:.

$ sudo ngrep -q '^Get .* Http/1.[01] ' Interfaz: ENP0S3 (192.168.0.0/255.255.255.0) Filtro: ((ip || ip6) || (vlan && (ip || ip6))) coincidir: ^get .* Http/1.[01] t 192.168.0.104: 43040 -> 172.217.160.174: 80 [AP] get / http / 1.1 ... Host: Google.com ... agente de usuario: enlaces (2.13; Linux 4.17.6-1.El7.Elrepo.x86_64 x86_64; GNU C 4.8.5; texto) ... aceptar:*/*... Aceptar-lenguaje: en,*; q = 0.1 ... Aceptar: codificación: GZIP, Deflate, BZIP2 ... Aceptar-Charset: US-ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, I SO-8859-13, ISO-8859-14, ISO-8859-15, ISO -8859-16, Windows-1250, Windows-1251, Windows-1252, Windows-1256, Windows-1257, CP437, CP737, CP850, CP852, CP866, X-CP866-U, X-MAC, X-MAC-CE , X- Kam-CS, KOI8-R, KOI8-U, KOI8-RU, TCVN-5712, VISCII, UTF-8 ... Connection: Keep-Alive .. 

4. Para ver todas las actividades de cruce de origen o puerto de destino 25 (Smtp), ejecute el siguiente comando.

$ sudo ngrep puerto 25 

5. Para monitorear cualquier tráfico syslog basado en la red para la ocurrencia de la palabra "error", Use el siguiente comando.

 $ sudo ngrep -d cualquier puerto de 'error' 514 

Es importante destacar que esta herramienta puede convertir los nombres de los puertos de servicio almacenados en "/Etc/servicios" (en sistemas tipo Unix como Linux) a números de puerto. Este comando es equivalente al comando anterior.

$ sudo ngrep -d cualquier syslog de puerto de 'error' 

6. También puedes ejecutar ngrep contra un Http Puerto de servicio 80), coincidirá con todas las solicitudes con el host de destino como se muestra.

$ sudo ngrep puerto 80 Interfaz: ETH0 (64.90.164.72/255.255.255.252) Filtro: IP y (puerto 80) #### T 67.169.59.38: 42167 -> 64.90.164.74:80 [ap] get / http / 1.1 ... agente de usuario: Mozilla/4.0 (compatible; msie 6.0; X11; Linux I 686) Opera 7.21 [es] ... anfitrión: www.Darkridge.com ... aceptar: texto/html, aplicar ion/xml; q = 0.9, aplicación/xhtml+xml; q = 0.9, imagen/png, imagen/jpeg, imagen/gi f, imagen/x-xbitmap, */ *; q = 0.1 ... Aceptar-Charset: ISO-8859-1, UTF-8, UTF-16, *; Q = 0.1 ... aceptar la codificación: desinflar, gzip, x-gzip, identidad, *; q = 0 ... cookie: sq msessid = 5272f9ae21c07eca4dfd75f9a3cda22e ... cookie2: $ versión = 1 ... Connection: Keep-Alive, Te ... Te: Deflate, GZIP, Tritado, identidad, trailers ... ## 

Como puede ver en la salida anterior, todos los encabezados HTTP se muestran en su detalle sangriento. Sin embargo, es difícil analizar, así que veamos lo que sucede cuando se aplica -W modo de línea.

$ sudo ngrep -w byline puerto 80 Interfaz: ETH0 (64.90.164.72/255.255.255.252) Filtro: IP y (puerto 80) #### T 67.169.59.38: 42177 -> 64.90.164.74:80 [ap] get / http / 1.1. Agente de usuario: Mozilla/4.0 (compatible; msie 6.0; X11; Linux i686) Opera ... Host: www.Darkridge.comunicarse. Aceptar: texto/html, aplicación/xml; q = 0.9, aplicación/xhtml+xml; q = 0.9 ... Aceptar-Charset: ISO-8859-1, UTF-8, UTF-16, *; Q = 0.1. Acoger la codificación: desinflar, gzip, x-gzip, identidad, *; q = 0. Cookie: sqmsessid = 5272f9ae21c07eca4dfd75f9a3cda22e. Cookie2: $ versión = 1. Cache-Control: no cache. Conexión: mantener alive, TE. TE: Desinflar, gzip, fortado, identidad, trailers. 

7. Para imprimir un marca de tiempo en forma de Yyyy/mm/dd HH: mm: ss.Uuuuuu Cada vez que se combina un paquete, use el -T bandera.

$ sudo ngrep -t -w byline puerto 80 Interfaz: ENP0S3 (192.168.0.0/255.255.255.0) Filtro: (puerto 80) y ((IP || IP6) || (VLAN && (IP || IP6))) #### T 2018/07/12 16:33:19.348084 192.168.0.104: 43048 -> 172.217.160.174: 80 [AP] get / http / 1.1. Anfitrión: Google.comunicarse. Agente de usuario: enlaces (2.13; Linux 4.17.6-1.El7.Elrepo.x86_64 x86_64; GNU C 4.8.5; texto). Aceptar: */*. Aceptar el idioma: EN,*; Q = 0.1. Aceptación de aceptación: gzip, desinflar, bzip2. Aceptar-Charset: US-ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, UTF-8. Conexión: mantener alive. 

8. Para evitar poner la interfaz que se está monitoreando en modo promiscuo (donde intercepta y lee cada paquete de red que llega en su totalidad), agregue el -pag bandera.

$ sudo ngep -p -w byline puerto 80 

9. Otra opción importante es -norte lo cual es útil en caso de que esté observando protocolos crudos o desconocidos. Dice ngrep Para mostrar el número de subprotocolo junto con el identificador de un solo personaje.

$ sudo ngrep -n -W byline 

Para más información, consulte el ngrep página del hombre.

$ hombre ngrep 

Repositorio de Ngep Github: https: // github.com/jpr5/ngrep

Eso es todo! Ngrep (Grep Network) es un analizador de paquetes de red que comprende la lógica del filtro BPF de la misma manera tcpdump. Nos gustaría saber tus pensamientos sobre ngrep En la sección de comentarios.