gentoo linux, java, software libre y otras hierbas
Sep, 10 2008 - 1:01 am

Wireshark, capturando paquetes

En esta pequeña guía aprenderemos a capturar paquetes con Wireshark, un proceso bastante sencillo e intuitivo. Lo primero, ejecutar el comando wireshark con lo cual aparecerá la interfaz gráfica.

Nota: Es necesario ejecutar Wireshark con privilegios de root, puesto que de lo contrario no podremos configurar las interfaces de red.

Vamos al menú Capture -> Options, con lo cual veremos lo siguiente:

wireshark capture options

  • Interface: es la tarjeta de red que utilizaremos para realizar la captura de los paquetes.
  • Capture packets in promiscuous mode: opción bastante importante. Al estar seleccionada Wireshark captura TODOS los paquetes que la interfaz reciba/envíe. Cabe hacer una pequeña aclaración: cuando tu equipo está conectado detrás de un hub, la tarjeta de red recibe TODOS los paquetes que transmitan/reciban los equipos conectados al mismo hub. Esto es porque, cuando el hub recibe un paquete lo reenvía a todos los puertos conectados, y es el computador quien decide que hacer con ellos (si el paquete es para él, lo recibe; si el paquete es para otro equipo, lo ignora). Esto no sucede así cuando estamos usando un Switch, puesto que cuando usamos una red switcheada se verifica el destinatario del paquete, antes de enviarlo. Luego veremos cómo vulnerar una red switcheada, de momento prosigamos.
  • Limit each packet to: límita el tamaño máximo de cada paquete capturado.
  • Capture filter: aunque en la siguiente entrada aprenderemos a usar esta característica, no está de más decir que sirve para asignar un filtro a la captura. Los filtros son útiles para mostrar sólo la información deseada, por ejemplo: paquetes enviados por la IP XX.XXX.XXX.XX, o sólo paquetes HTTP, etc.
  • File: aquí especificamos el archivo donde serán guardados los paquetes capturados. Es posible además separar los archivos cada vez que alcancen un tamaño, o cada cierto tiempo.
  • Stop capture: nos sirve para detener automáticamente una captura después de ciertas condiciones (tiempo, tamaño del archivo de captura y número de paquetes).
  • En las opciones de visualización (Display Options), es posible configurar a Wireshark para:
    • Actualizar el panel de paquetes cada vez que se capture uno (Update list of packets in real time)
    • Realizar un scroll-down cada vez que se capture un paquete (Automatic scrolling in live capture)
    • Ocultar el diálogo de información de captura (Hide capture info dialog)
  • Por último, las opciones de resolución de nombres (Name resolution) le indican a Wireshark si debe o no intentar resolver las direcciones MAC, el nombre de red y nombre del tipo de transporte, de los paquetes capturados.

Clic en Start para comenzar con la captura de paquetes:

live capture wireshark

Ahora mismo Wireshark está capturando todos los paquetes posibles de la interfaz de red seleccionada, y guardándolos en el archivo que hayamos especificado (lo que nos permite analizarlo en cualquier momento, reiteradamente, y con diversos programas). Aquí suelen surgir algunas preguntas:

¿Porqué solamente veo los paquetes que envía y recibe mi equipo?

Esto puede deberse principalmente a:

  1. Estás tratando de esnifar una red switcheada (que se conecta mediante un switch, y no un hub)
  2. Estás conectado a un hub que está configurado como un switch (mismo caso de arriba)
  3. No configuraste a Wireshark para que esnifara en modo promiscuo (Capture packets in promiscuous mode)

En caso tal que la conexión de tu red esté detrás de un switch, no es posible que veas los paquetes que transmiten y reciben otros equipos. Esto no quiere decir que sea imposible hacerlo; lo más común a realizar en estos casos es un ataque Man in the Middle a través de un ARP Poisoning. Estás técnicas son bastante fáciles de realizar (además de divertidas), pero se salen del tema de esta entrada. En las próximas entradas hablaremos al respecto.

¿Cómo obtengo datos específicos?

Para esto es imprescindible el uso de los filtros, sobre todo cuando los paquetes capturados son demasiados. Este tema lo trataremos en la próxima entrada.

¿Cómo recupero archivos enviados y recibidos mientras se realizaba la captura?

Esto es muy sencillo, pero lo explico en la próxima-próxima entrada :D

33 Comentarios | deja el tuyo

Sep, 09 2008 - 11:08 am

Wireshark, instalación y conceptos básicos

logo wiresharkWireshark es un capturador/analizador de paquetes de red (llamado a veces, sniffer o esnifer). Wireshark te permitirá ver, aun nivel bajo y detallado, qué está pasando en tu red. Además es gratuito, open source, y multiplataforma. Sin duda la mejor opción al momento de auditar nuestra red.

Posee una interfaz gráfica y muchas opciones de organización y filtrado de información. Así, permite ver todo el tráfico que pasa a través de una red (usualmente una red Ethernet, aunque es compatible con algunas otras)

¿Para que/quien es util Wireshark?

  • Administradores lo usan para resolver problemas en la red
  • Ingenieros lo usan para examinar problemas de seguridad
  • Desarrolladores lo usan para depurar la implementación de los protocolos de red
  • Estudiantes los usan para aprender internamente cómo funciona una red

Características de Wireshark

  • Disponible para Linux y Windows
  • Captura de paquetes en vivo desde una intefaz de red
  • Muestra los paquetes con información detallada de los mismos
  • Abre y guarda paquetes capturados
  • Importar y exportar paquetes en diferentes formatos
  • Filtrado de información de paquetes
  • Resaltado de paquetes dependiendo el filtro
  • Crear estadísticas

Instalación de Wireshark

La verdad es que lo tienes muy fácil si usas Debian o sus derivados (Ubuntu, por ejemplo). Tan solo debes hacer lo de siempre:

sudo apt-get install wireshark

Y ya está! Además la mayoría de las distribuciones lo incluyen en sus repositorios, por lo que lo tienes fácil en openSuse, Fedora, o Gentoo. Por ejemplo, en Gentoo:

USE=”adns gtk ipv6 portaudio snmp ssl kerberos threads selinux” emerge wireshark

O FreeBSD:

pkg_add -r wireshark

Sin embargo, si lo que deseas/necesitas es instalarlo desde las fuentes, vamos por ello:

Instalación del Wireshark desde el tarball

Antes que nada, para poder compilar correctamente Wireshark debes tener dos cosas:

  • Gtk+ y Glib, que puedes descargar de www.gtk.org
  • libpcap, las librerías para captura de paquetes que Wireshark usa. La puedes encontrar en www.tcpdump.org

Ahora, debes descargar el código fuente de la página oficial descomprimirlo e instalarlo:

tar zxvf wireshark-1.0.3.tar.gz
cd wireshark-1.0.3/
./configure
make
sudo make install

Problemas experimentados: personalmente tuve que instalar manualmente bison, flex y gtk+; en muchos sistemas no es necesario, pero mejor que estés preparado.

Entendiendo la interfaz gráfica de Wireshark

Luego de la instalación podrás iniciar el programa con el comando wireshark:

wireshark

La interfaz gráfica de Wireshark está principalmente dividida en las siguientes secciones (de arriba a abajo):

  • La barra de herramientas, donde tienes todas las opciones a realizar sobre la pre y pos captura.
  • La barra de herramientas principal, donde tienes las opciones más usadas en Wireshark.
  • La barra de filtros, donde podrás aplicar filtros a la captura actual de manera rápida
  • El listado de paquetes, que muestra un resumen de cada paquete que es capturado por Wireshark
  • El panel de detalles de paquetes que, una vez seleccionado un paquete en el listado de paquetes, muestra información detallada del mismo
  • El panel de bytes de paquetes, que muestra los bytes del paquete seleccionado, y resalta los bytes correspondientes al campo seleccionado en el panel de detalles de paquetes.
  • La barra de estado, que muestra algo de información acerca del estado actual de Wireshark y la captura.

En el próximo artículo veremos un ejemplo de cómo usar Wireshark y su Live Capture.

16 Comentarios | deja el tuyo