systemadmin.es » Redes » ngrep: network grep

ngrep: network grep

Mediante ngrep podemos buscar expresiones regulares en el tráfico de una interfaz. Vamos a ver su funcionamiento:

Podemos utilizar ngrep de la misma forma que utilizamos tcpdump, indicando que tráfico queremos capturar:

# ngrep port 80
interface: eth0 (192.168.254.0/255.255.255.0)
filter: (ip or ip6) and ( port 80 )
####
T 192.168.254.17:41365 -> 87.98.227.154:80 [AP]
  HEAD / HTTP/1.1..User-Agent: curl/7.15.5 (i686-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5..Host: systemadmin.es..Accept: */*....
##
T 87.98.227.154:80 -> 192.168.254.17:41365 [AP]
  HTTP/1.1 200 OK..Server: nginx..Date: Sun, 13 Nov 2011 20:48:22 GMT..Content-Type: text/html; charset=UTF-8..Connection: keep-alive..X-Pingback: http://systemadmin
  .es/xmlrpc.php....
####exit
10 received, 0 dropped

En el caso que queramos especificar una interfaz deberemos utilizar la opción -d:

# ngrep -d eth0 port 80

Para buscar una expresión a buscar en el tráfico deberemos indicarla antes que la expresión que usamos para la captura de éste:

# ngrep -d eth0 "Host:" port 80
interface: eth0 (192.168.254.0/255.255.255.0)
filter: (ip or ip6) and ( port 80 )
match: Host:
####
T 192.168.254.17:44933 -> 87.98.227.154:80 [AP]
  HEAD / HTTP/1.1..User-Agent: curl/7.15.5 (i686-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5..Host: systemadmin.es..Accept: */*....
##########
T 192.168.254.17:44934 -> 87.98.227.154:80 [AP]
  HEAD / HTTP/1.1..User-Agent: curl/7.15.5 (i686-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5..Host: systemadmin.es..Accept: */*....
######
23 received, 0 dropped

Para tráfico HTTP puede resultar muy cómodo mostrar la salida por linea con la opción -W indicando byline:

# ngrep -d eth0 -W byline "Host:" port 80
interface: eth0 (192.168.254.0/255.255.255.0)
filter: (ip or ip6) and ( port 80 )
match: Host:
####
T 192.168.254.17:44935 -> 87.98.227.154:80 [AP]
HEAD / HTTP/1.1.
User-Agent: curl/7.15.5 (i686-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5.
Host: systemadmin.es.
Accept: */*.
.

##########

Los # que vemos que van apareciendo entre las muestras son los paquetes que cumplen la expresión de captura pero no cumplen la expresión regular.

Relacionados

Imprimir Imprimir

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>