jueves, 17 de noviembre de 2011

Analizadores de Protocolos de red

Un analizador de protocolos de red es una herramienta para examinar con detalle los paquetes que se estén transmitiendo atravez de una red de datos.

Para realizar esta función lo primero que debe realizarse es una captura de paquetes, esto consiste en escuchar el medio en el cual se están transmitiendo los paquetes y almacenar todos los datos recibidos en la memoria.

Ya que los paquetes han sido capturados en la memoria, se puede proceder a examinar su contenido el hacer esto permite tener una idea clara tanto del contenido del paquete de datos como de las cabeceras agregadas por los diferentes protocolos que atravezo el paquete.

Esto ultimo es una de las funciones mas importantes, puesto que pueden obtenerse las direcciones tanto físicas como lógicas de un paquete y los diversos parámetros de los protocolos, datos que permiten la detección y corrección de errores de diseño e implementación de una red de datos.

Sin embargo pese a sus usos legítimos un analizador de protocolos puede ser fácilmente convertido en una herramienta de espionaje por usuarios maliciosos permitiendo capturar datos sensitivos si se están usando protocolos no cifrados, y aun si se usa el cifrado de datos, los datos paquetes capturados pueden examinarse con los programas adecuados para descifrar su contenido.

Es por esto que el uso estas herramientas esta usualmente limitado a administradores y su uso no autorizado es disuadido en las políticas y reglamentos de las empresas e instituciones que manejen datos delicados.

Referencias

Redes – Manual de Referencia primera edición, Craig Zacker.

domingo, 13 de noviembre de 2011

La interfaz de Wireshark.


Cuando se comienza a utilizar el analizador de paquetes de red Wireshark, uno de los aspectos que saltan a la vista de manera mas inmediata es la distintiva interfaz gráfica, que si bien da un fácil y veloz acceso a las funciones de Wireshark, puede resultar un tanto confusa la primera vez que se utiliza.

Es por esto que se presentaran sus componentes y varios de los diálogos comúnmente utilizados.

Figura 1: Pantalla de inicio de Wireshark.

La figura 1 muestra la pantalla de inicio de Wireshark, esta se divide en varios componentes los cuales se han numerado en la figura y se lista a continuación:
  1. Barra de menú.
  2. Barra de herramientas.
  3. Barra de Filtros.
  4. Área de datos.
  5. Barra de estado.
Cada uno de estos componentes se describirá a continuación

Barra de Menú.

Figura 2: Barra de menús.

Ubicado en la parte superior de la ventana principal del programa esta barra proporciona un acceso a todas las funciones y opciones de Wireshark,

Dado que la mayoría de las opciones avanzadas queda muy fuera del ámbito de lo que se desea mostrar y como las opciones mas comúnmente utilizadas para hacer una captura pueden accederse desde las demás barras de herramientas no se describirá en mas detalle los menús.

Barra de herramientas.

Figura 3: Barra de herramientas.

Este es uno de los componentes de la interfaz del que mas uso se hace durante una captura de paquetes, debido a que proporciona un acceso veloz a las las funciones mas comúnmente usadas.

Un detalle que puede resultar abrumador cuando se hace uso de Wireshark por primera vez son los iconos de dicha barra, puesto que no se parecen a los usados en otras aplicaciones y se habilitan o deshabilitan durante la operación del programa, es por esto que cada icono se presentara a continuación indicando su función y en que circunstancias se encuentra habilitado.


Listar interfaces de red.
Figura 4: Listar interfaces de red.
Al presionar este botón aparecerá un dialogo que muestra las interfaces de red disponibles y permite iniciar una captura o modificar las opciones de captura, esta función no se puede acceder mientras se capturan los paquetes

Opciones de captura.
Figura 5: Opciones de captura.
Inicia el dialogo con las opciones para realizar la captura de paquetes, este botón se deshabilita durante la captura de paquetes

Iniciar captura.
Figura 6: Iniciar Captura.
Inicia la captura con la interfaz seleccionada, no disponible durante la captura de paquetes.

Detener captura.
Figura 7: Detener la captura.
Detiene la captura de paquetes, este botón solo esta habilitado si esta capturando paquetes

Reiniciar captura de paquetes.
Figura 8: Reiniciar captura de paquetes.
Comienza de nuevo la captura, agregando los paquetes a continuación de los ya capturados, esta función solo se activa si a detenido una captura en curso.

Abrir un archivo de capturas.
Figura 9: Abrir archivo.
Permite abrir un archivo con paquetes ya capturados, no disponible si esta ejecutando una captura.

Guardar archivo de capturas.
Figura 10: Guardar archivo.
Almacena los paquetes ya capturados para posterior análisis, no accesible durante la captura de paquetes.

Cerrar archivo de captura.
Figura 11: Cerrar archivo.
Cierra el archivo actual, no disponible mientras se estén capturando paquetes.

Recargar archivo de captura actual.
Figura 12: Recargar.
Elimina los cambios realizados y carga de nuevo el archivo de capturas actual, botón deshabilitado durante la captura de paquetes.

Imprimir paquetes.
Figura 13: Imprimir.
Imprime los paquetes capturados hasta el momento.

Buscar un paquete.
Figura 14: Buscar paquete.
Busca un paquete que coincida con los parámetros establecidos

Ir hacia atrás.
Figura 15: Atrás.
Va al paquete seleccionado anteriormente

Ir hacia adelante.
Figura 16: Adelante.
Va al paquete que se selecciono después del actual, solo disponible si uso el botón “Ir hacia atrás” anteriormente.

Ir al paquete con numero.
Figura 17: Ir a.
Va al paquete con el numero indicado

Ir al primer paquete.
Figura 18: Inicio.
Selecciona el primer paquete que se halla capturado

Ir al ultimo paquete.
Figura 19: Fin.
Lleva al ultimo paquete que se a capturado

Colorear lista de paquetes.
Figura 20: Colorear.

Activa o desactiva el coloreado de la lista de paquetes, activado por defecto.

Autocorrimiento.
Figura 21: Autocorrimiento.
Al activarse mantiene visibles los paquetes mas recientemente capturados, activa por defecto.

Acercamiento.
Figura 22: Zoom in.
Aumenta el tamaño de los elementos en la lista de paquetes

Alejamiento.
Figura 23: Zoom out.
Reduce el tamaño de los elementos en la lista de paquetes

Escala normal.
Figura 24: Escala 100%.
Regresa los elementos de la lista de paquetes a su tamaño por defecto

Redimensionar columnas.
Figura 25: Redimensionar columnas.
Ajusta el tamaño de las columnas en la lista de paquetes

Editar filtro de captura.
Figura 26: Filtro de captura.
Abre el dialogo para aplicar un filtro a a la capturados

Aplicar un filtro a los paquetes capturados.
Figura 27: Filtrar paquetes.
Filtra los paquetes ya capturados

Editar reglas de coloreado.
Figura 29: Coloreado.
Permite modificar como se colorea la lista de paquetes.

Preferencias
Figura 29: Preferencias.
Modificar las preferencias del programa.

Ayuda.
Figura 30: Ayuda.
Abre la ayuda en linea.

Barra de filtros

Figura 31: Barra de filtros.
Esta barra permite filtrar los paquetes ya capturados de manera rápida sus componentes son, de izquierda a derecha.
  1. Campo de filtro: En este campo de texto puede escribirse el filtro que se desea aplicar directamente.
  2. Expresión: abre el editor de expresiones para general un filtro.
  3. Aplicar: Aplica el filtro indicado por el campo de filtro.
  4. Limpiar: Elimina el filtro aplicado.

Área de datos.

La interfaz de Wireshark esta dominada por una sección en particular que abarca casi la totalidad de la ventana, esta es el área de datos, esta sección puede desplegar dos conjuntos de datos dependiendo de las acciones que se hallan realizado.

Figura 32: Área de datos al inicio.

La figura 31 muestra el área de datos justo al arrancan el programa, esta vista en particular esta accesible al iniciar el programa o cuando se ha cerrado el archivo de capturas en el que se estaba trabajando.

Desde esta vista en particular se tiene un acceso fácil a una serie de funciones que son

  • Capturar desde una de las interfaces disponibles, mostrado bajo la etiqueta “Capture”.
  • Los temas de ayuda sobre como realizar la captura, bajo la etiqueta “Capture Help”.
  • La función para abrir un archivo ya existente o uno de los ejemplos incluidos con el programa, esto bajo la etiqueta “Files”.
  • Los recursos en linea de Wireshark bajo la etiqueta “Online”.


Figura 33: Vista de paquetes.


La otra vista que presenta esta sección, mostrada en la figura 32, es la vista de paquetes capturados, esta la vista que mas se usara en Wireshark.

Notara que esta vista esta dividida en 3 paneles verticales cada uno desplegando información diferente, lo que estos paneles despliegan es:
  • La lista de paquetes: Muestra los paquetes que han sido capturados mostrando el numero de paquete, el momento en que fue capturado, la dirección fuente, la dirección destino, el protocolo del paquete e información adicional.
  • Detalles del paquete: Muestra las cabeceras y datos que componen el paquete seleccionado en la lista de paquetes.
  • Bits del paquete: Los mismos datos que en el panel anterior, solo que presentados en hexadecimal.
Barra de estado

Figura 34: Barra de estado

Ubicada en la parte inferior de la ventana esta barra despliega información sobre la captura actual mostrando

  • El nombre del archivo actual.
  • La cantidad de paquetes capturados.
  • La cantidad de paquetes mostrados.
  • El tiempo.
  • El perfil de configuración.


Referencias

viernes, 4 de noviembre de 2011

Capturar paquetes de red con Wireshark.


El primer paso para el análisis de paquetes de red, por supuesto, la captura de los paquetes de modo que sea posible examinar a detalle como fueron recibidos por los diferentes equipos.

Ya que la interfaz de Wireshark puede ser bastante abrumadora si no se tiene experiencia en su uso se presenta este tutorial, cuyo objetivo es mostrar como realizar una captura de paquetes.


Paso 1 – Inicializar Wireshark

Inicie Wireshark, una vez que el programa cargue por completo obtendrá una pantalla similar a la figura 1

Figura 1: Pantalla principal de Wireshark.

Sin embargo existe la posibilidad de que al iniciar obtenga una pantalla como la figura 2

Figura 2: Ejecutando Wireshark sin permisos de administrador.

Observe a la izquierda de la figura 2, en la seccion de “Capture” aparece el mensaje “No interface can be used for capturing in this system with the current configuration”

A menos que su computadora carezca por completo de una interfaz de red alámbrica Ethernet o USB este mensaje simplemente significa que no tiene los permisos necesarios para acceder directamente a las interfaces de red, en este caso sera necesario que ejecute Wireshark como administrador.

Ya que haga eso y Wireshark muestre la lista de interfaces de red como en la figura 1 puede proceder.

Paso 2 – Seleccionar la interfaz de red.

Como notara en la figura 1, Wireshark le presenta todas las interfaces de red disponibles en el equipo, estas se muestran con el nombre con las que las identifica el sistema operativo por lo que no debe preocuparse si la lista mostrara es diferente a la de este tutorial.

Ahora es necesario que seleccione sobre que interfaz quiere realizar la captura de paquetes de datos, para este tutorial se capturaran datos de la interfaz conectada a internet, el nombre de esta interfaz puede consultarlo en la configuración de red de su sistema operativo.

Ahora presione “Interface List” y obtendra una ventana como la figura 3

Figura 3: Interfaces de red.
Desde esta ventana puede observar algunos detalles de las conexiones, como lo es la dirección IP de la interfaz, el numero de paquetes recibidos y el numero de paquetes por segundo así como dos botones uno para iniciar la captura y otro para seleccionar las opciones de captura de paquetes, con el texto “Start” y “Options” respectivamente, ahora presione el boton “Options”


Figura 4: Opciones de captura.
Tomara un par de segundos pero aparecerá una ventana similar a la figura 4

Es desde esta ventana donde puede configurar la captura a sus necesidades, las opciones de captura presentadas son, avanzando de arriba hacia abajo:
  • Cabecera de la capa de enlace
  • Tamaño del buffer
  • Capturar en modo promiscuo
  • Capturar paquetes en formato pcap-ng
  • Limitar el tamaño en bytes de cada paquete
  • Aplicar un filtro a la captura

Debajo de estas encontrara opciones que modifican el archivo en que se almacenara la captura, las opciones de visualización, de resolución de nombre y opciones de temporizador.

Ya que el propósito de este tutorial es mostrar como realizar la captura no se modificara ninguna de las opciones por lo que puede presionar el boton “Start” en la parte inferior derecha para comenzar la captura de datos.

Paso 3 – Interfaz de captura de paquetes

Figura 5: Capturando paquetes de red.

Como notara en la figura 5, la interfaz de Wireshark cambia al momento de iniciar la captura y aparecen tres nuevos paneles.

Ya que estos paneles contienen información sobre como esta ocurriendo la captura de datos y sobre el contenido de los paquetes sera conveniente describir su función y la información que presentan antes de realizar una captura propiamente dicha.

Los paneles que aparecen al iniciar la captura de datos son, de arriba hacia abajo:

Lista de paquetes
Este panel muestra los paquetes de red que han sido capturados mostrando:

  • “No.”: El orden en que fueron capturados los paquetes.
  • “Time”: En que segundo de la captura se obtuvo ese paquete.
  • “Source”: La dirección de donde proviene ese paquete.
  • “Destination”: A que dirección esta dirigido ese paquete.
  • “Protocol”: El protocolo del paquete de red.
  • “Length”: El tamaño en bytes del paquete
  • “Info”: Información sobre el paquete.

Detalles del paquete
Este panel se ubica debajo de la lista de paquetes y le muestra las distintas cabeceras y datos que componen el paquete seleccionado en la lista de paquetes, es en esta sección donde puede analizar propiamente dicho el contenido de un paquete de red.

Bits del paquete
Esta sección muestra en hexadecimal el contenido del paquete de datos.

Los últimos dos paneles también pueden accederse al dar doble click sobre un paquete en la lista de paquetes, al hacer esto aparecerá una ventana como la figura 6

Figura 6: Contenido de un paquete de datos.
Paso 4 – Capturando paquetes de red

La captura de paquetes puede iniciarse ya sea desde el dialogo interfaces de red mostrado en la figura 3 ,el dialogo de opciones de interfaz mostrado en la figura 4 o directamente desde la pantalla de inicio en la sección “Capture” de la figura 1, cualquiera de esas opciones le dara como resultado una ventana similar a la figura 7

Figura 7: Capturando paquetes.

Como una demostración de lo que se puede hacer abra un navegador de internet y acceda a un sitio web, para este ejemplo se usara http://arstechnica.com/ y mientras el sitio descarga observe la lista de paquetes en Wireshark( puede ser necesario que avance manualmente la barra de desplazamiento), al momento que el sitio comience a cargar notara que aparecen paquetes coloreados en verde como muestra la figura 8

Figura 8: Paquetes TCP.

Y que una vez que el sitio carga completamente esos paquetes se vuelven cada ves menos comunes, cuando llegue a este punto presione el botón Detener captura el cual se muestra en la figura 9

Figura  9 : Detener captura.
Cuando haga esto Wireshark dejara de capturar los paquetes de datos de modo que podrá analizarlos con mas calma, ahora si bien es posible analizarlos “en vivo” mientras se capturan esto requiere de muchos recursos del sistema, por lo que se recomienda detener la captura antes de comenzar el análisis.

Paso 5 – Almacenar los paquetes capturados

Ahora que a capturado los paquetes es una buena idea que los almacene en caso de que desee analizarlos después.

Para esto vaya al menú archivo y seleccione la opción Guardar, esto también puede lograrlo desde la barra de herramientas o con la combinación de teclas Ctrl+S

Esto abrirá un dialogo para guardar archivos como muestra la figura 10

Figura 10: Guardar archivo.

Es de esperar que el dialogo luzca diferente dependiendo del sistema operativo que este usando, en cualquier caso escriba el nombre del archivo con extensión .pcap y guarde el archivo.