Wireshark / Tshark. Filtros HTTP.

A lo largo de los muchos artículos dedicados a Wireshark y Tshark, hemos estudiado la diferentes formas que tenemos para establcer filtros, ya sean de filtros de captura o visualización.

En esta ocasión vamos ver como estos filtros, aplicados a un determinado protocolo, nos pueda ayudar a gestionar mejor la información que queremos obtener. Empezarmos por los filtros HTTP.

Vamos a ver algunos filtros como ejemplo.

http.request.method.

Establece filtros para los métodos de petición HTTP.  El caso más simple sería el método GET: el navegador contacta con el servidor web para obtener una página. Para filtrar por el método GET:

http.request.method == "GET"

>tshark -i1 -nlt r -R "http.request.method == "GET""

NOTA: Usamos -R para establecer el filtro. Más sobre filtros .pcap aquí:

Wireshark / Tshark / Windump - Filtros pcap. Creación de filtros y filtros avanzados para captura de paquetes.

Vamos con el ejemplo:

Metodos http aplicacion filtros wireshark tshark

Existen otros métodos como:

  • HEAD
  • POST
  • PUT
  • DELETE
  • TRACE
  • OPTIONS
  • ...

http.response.

Se refiere al filtrado por mensajes y códigos de respuesta. Estos son enviadios por el servidor al navegador. En los mensajes de respuesta se incluye un código de tres dígitos. Estos mensajes se dividen en categorías. Por ejemplo:

  • 10x se refiere a mensajes de información. no usados ya en la versión 1.0 de HTTP.
  • los códigos 20x se refieren a operaciones existosas
  • los códigos 30x so respuestas que indicanque el recurso ya no se encuentra en la ubicación que se especificó en el método GET.
  • 40x se refieren a solicitudes incorrectas. Son entonces errores de la petición formuladar por el cliente desde el navegador.
  • 50x aquí ocurre lo contrario, se refierenm a errores del servidor

Lo vemos en la siguiente captura:

>tshark -i1 -nlt r -R "http.response"

mensajes codigos respuesta http aplicacion filtros wireshark tshark

Observad los distintos códigos que aparecen en la captura.

Tenemos:

  • 200 informa que la solicitud se tramitó existósamente.
  • 204 no hay información derespuest apede a que el servidor recibió la solicitud.
  • 302 los datos refereidos a la solicitud se encuentran ahora en una nueva dirección URL de forma temporal.
  • 301 los datos refereidos a la solicitud se encuentran ahora en una nueva dirección URL de forma permanente.

Podemos filtrar por código de la siguiente manera:

tshark -i1 -nlt r -R "http.response == 200" 

De esta forma solo vemos las paquetes cuyo mensaje de respuesta del servidor sea de solicitud correcta, codigo 200.

También podríamos usar las estadísticas http como vimos aquí:

Tshark, Wireshark en línea de comandos. (III Parte.) Estadísticas.


mensajes codigos respuesta http aplicacion filtros wireshark tshark

http.content_type.

Se refiere a los encabezados de respuesta. Indica el tipo de contenido del recurso al que se accede mediante una solicitud. Los tipos de contenido pueden ser, entre otros::

  • texto/html
  • application/pdf
  • image/jpeg
  • image/gif
  • video/quicktime
  • application/zip
  • etc,

Filtramos por ejemplo los tipos image/gif:

content-type http aplicacion filtros wireshark tshark

http.server.

Se refiere al campo Server. Características del servidor que envió la respuesta a la solicitud del cliente o navegador.

Por ejemplo. Vamos a filtrar para ver los paquetes de respuesta servidor hacia cliente provenientes de un servidor Nginx. Nginx es un servidor web de código abierto para plataformas UNIX, línux, Windows.

El filtro sería http.server == "nginx" :

shttp server aplicacion filtros wireshark tshark

Podemos encontrar en nuestras capturas valores de http.server como por ejemplo:

  • sffe Safer Server. Bacjup online para servidores.
  • gws Google Web Server.
  • Apache. Aquí mendiante la palabra clave contains podemos diferenciar otros valores como PHP, Unix, etc.
  • PWS Personal Web Server.
  • GFE GFE/2.0 web server.
  • .....

Podríamos usar estos filtros con Tshark y las estadísticas:

http server aplicacion filtros wireshark tshark

http.user_agent.

Con esto podemos filtrar para obtener solo las peticiones realizadas desde un navegador determinado.

Por ejemplo. con  http.user_agent contains "Mozilla" veremos las solicitudes realizadas desde este navegador.

Observar que usamos la palabra clave contains para especificar solo una parte del campo User-Agent. De esta forma podemos diferenciar también por el sistema operativo, motor (por ejemplo Gecko), etc.

Por ejemplo:

http.user_agent contains "Gecko"

http.user_agent contains "Microsoft"

http.user_agent contains "Linux"

http.user_agent contains "Mozilla"


Información extraída de:
http://seguridadyredes.nireblog.com/post/2010/06/24/wireshark-tshark-filtros-http

Entradas populares de este blog

Trinity Rescue Kit: Tutorial para eliminar la contraseña de administrador en Windows

Cómo extraer el handshake WPA/WPA2 de archivos de captura grandes

HTTP Fingerprinting