Aunque cualquier
sniffer actual puede
capturar el tráfico HTTP sin problemas, quizás el gran problema es que captura más cosas de las que suelen interesar. Aunque efectivamente existen filtros para que recoja únicamente lo que interesa, quizás opciones como
tcpdump o
wireshark sean más complejas que
httpry, un software que únicamente sirve para capturar todo el tráfico HTTP, pero de forma muy organizada. Apoyándose en
libpcap, misma librería que
tcpdump, trae ya por defecto todos los códigos y protocolos del tráfico web, por lo que configurarlo resulta mucho más sencillo. Vamos a ver cómo funciona.
Instalación de httpry
httpry está disponible en las principales distribuciones GNU/Linux, por lo tanto para sistemas Debian y derivados...
shell> apt-get install httpry
Y para sistemas Red Hat y familiares,
shell> yum install httpry
Uso básico
Tras finalizar la instalación, la cual es realmente sencilla, ya podemos ponernos a jugar con la nueva herramienta. Lo único que necesitamos es indicarle sobre qué interfaz de red queremos que trabaje capturando el tráfico.
shell> httpry -i eth0
httpry version 0.1.7 -- HTTP logging and information retrieval tool
Copyright (c) 2005-2012 Jason Bittel jason.bittel@gmail.com
----------------------------
Hash buckets: 64
Nodes inserted: 10
Buckets in use: 10
Hash collisions: 0
Longest hash chain: 1
----------------------------
Starting capture on eth0 interface
2014-08-16 16:14:35 108.160.167.160 192.168.0.15 < - - - HTTP/1.1 200 OK
2014-08-16 16:14:35 192.168.0.15 108.160.167.160 > GET notify10.dropbox.com /subscribe?host_int=
2014-08-16 16:14:48 192.168.0.15 173.194.41.250 > GET pagead2.googlesyndication.com... -
2014-08-16 16:14:48 173.194.41.250 192.168.0.15 < - - - HTTP/1.1 200 OK
2014-08-16 16:14:48 173.194.41.250 192.168.0.15 < - - - HTTP/1.1 200 OK
2014-08-16 16:15:03 192.168.0.15 173.194.34.252 > GET ad.doubleclick.net...
2014-08-16 16:15:03 173.194.34.252 192.168.0.15 < - - - HTTP/1.1 200 OK
...
Como se puede observar, desde el momento del arranque ya comienza a capturar tráfico HTTP y aparecen todas las peticiones que se hacen, así como el método que se emplea. Sale la IP origen de la conexión, así como la IP destino de la misma, seguida del método empleado y la URL completa que se envía o recibe.
Esto mismo lo podemos hacer con tcpdump o similares, pero la expresión necesaria para este filtro ya hace que quizás alguna persona se lo piense. Con httpry es muy sencillo.
Uso avanzado
Por supuesto, httpry permite hacer muchas cosas más. Algunas de las cuales vamos a ver a continuación, pero para saber todo su potencial os recomiendo la lectura de su página man.
Capturando métodos específicos
Los que sepáis del protocolo HTTP sabréis que existen multitud de métodos (POST, GET, HEAD, CONNECT, etc.) que éste tiene implementado. Algunos más vulnerables, otros menos. httpry nos permite definir qué método queremos que nos muestre, para así evitarnos tener que leer líneas que no nos van a ser de utilidad.
shell> httpry -i eth0 -m get,post
Captura a fichero para luego procesarlo
También, una de las utilidades más importantes es que la captura y el análisis de la misma no tiene por qué realizarse al mismo tiempo. Esta es una gran utilidad, puesto que nos permite almacenar todo el tráfico para su posterior análisis, con mucha más tranquilidad. Lo primero es, por supuesto, capturar el tráfico de red. Lo podemos hacer en formato binario (opción -b), o en formato texto (opción -o).
shell> httpry -i eth0 -b capture.dump
Una vez tengamos todo el tráfico capturado es hora de procesarlo. Para ello,
shell> httpry -r capture.dump
Esta entrada puede ser muy útil para análisis de tráfico, pero también para que mucha gente vea la facilidad con la que es posible capturar tráfico HTTP y leer lo que pasa por la red. Así que ya sabéis, no facilitéis tarjetas de crédito, contraseñas y demás datos de interés personal si, mínimo, no hay un https en la URL.