En esta oportunidad hablaremos de uno de los analizadores de red más comunes que existen en el momento, Wireshark Network Analyzer, el cual tiene más de 500.000 descargas por mes, y por tanto da muestra de su efectividad, confianza y soporte a la hora del análisis de una infraestructura de red.
Dentro de las características de Wireshark podemos destacar las siguientes:
- Disponible para sistemas Windows y Unix.
- Podemos filtrar paquetes según criterios establecidos.
- Es posible capturar tomas de los paquetes en una interfaz de red.
- Es posible importar paquetes en formato de texto.
- Podemos buscar paquetes usando un rango de criterios.
- Permite crear estadísticas, entre otras.
Para ejecutar Wireshark en entornos Windows necesitamos los siguientes requisitos:
- 400 MB de memoria RAM
- Corre sobre cualquier versión de Windows tanto a nivel de servidor como de escritorio
- 300 MB de espacio en disco duro
Para entornos UNIX, Wireshark está en la capacidad de funcionar sobre las siguientes plataformas:
- Debian
- Apple OS X
- FreeBSD
- Sun Solaris
- Mandriva Linux, entre otras.
Antes de comenzar en firme sobre la forma de cómo funciona Wireshark recordemos algunos conceptos acerca de networking, ya que todo esto está sumergido en este mundo. Recordemos que la principal función del networking es permitir la transferencia de datos entre dos o más dispositivos y todo esto gracias a un trabajo conjunto entre hardware y software.
El diseño de una red puede ser estructurada de dos maneras:
- Cliente – Servidor
- Peer to Peer
Wireshark fue diseñado para desplegar su información entre las capas 2 a la 7 del modelo OSI. Con Wireshark podremos realizar monitoreos en vivo del tráfico de red de nuestra organización permitiéndonos determinar problemas, realizar análisis y unas cuantas tareas más permitiendo el correcto funcionamiento del entorno de red. Como tal podemos concluir que Wireshark es un analizador de paquetes.
Para este estudio vamos a usar un entorno de Windows 7. Una vez hayamos descargado Wireshark procedemos con la instalación de la siguiente manera:
1. Descargar e instalar Wireshark
El software Wireshark lo podemos descargar desde el siguiente enlace:
Allí encontraremos los archivos de descarga compatibles para los sistemas:
- Windows
- MAC
- Linux
Ejecutamos el archivo para instalarlo y empezará el proceso. Aceptamos. Daremos clic en el botón I Agree para aceptar los términos de licencia, una vez realizado esto debemos seleccionar los componentes a instalar de Wireshark.
Damos clic en Next y podemos elegir si agregamos o no los íconos de acceso directo y de paso determinar las extensiones de archivo asociadas a Wireshark. Luego donde se habrá de instalar Wireshark. Depués la herramienta nos indica si deseamos o no instalar WinPcap (esto es requerido para las capturas de los paquetes en vivo), seleccionamos la casilla, por defecto lo está, y damos clic en Next.
A continuación podemos elegir si instalar o no la herramienta USBPcap, ésta permite capturar el tráfico USB, lo más recomendable es instalarla, marcamos la casilla y damos clic en Install para iniciar el proceso de instalación.
Una vez finalizado, tendremos instalada ya nuestra aplicación Wireshark Network Analyzer lista para empezar a usarse. Ahora en lnos pasamos a conocer el uso y las tripas de esta genial aplicación.
2. Cómo usar Wireshark
Veremos que las capturas de paquetes que hemos de realizar están basadas en una conexión de área local, podrían aparecer otro tipo de conexiones como Wi Fi, Bluetooth, etc. Al dar doble clic en nuestra interfaz veremos que se despliega todo el tráfico actual:
Al dar clic en el ícono
Podemos ver que tenemos la dirección IP actual del sistema, el tamaño de buffer, etc. En la ficha Options contamos con alternativas que podemos seleccionar como la actualización de los paquetes en tiempo real, resolver nombres de red, entre otras.
Una vez hayamos realizado los cambios pulsaremos Start. Es de anotar que en esta opción configuramos las características más importantes de Wireshark, por ejemplo habilitar el modo promiscuo (habilita todos los paquetes) o limitar el tamaño de los paquetes para la captura. Analicemos un poco el entorno de Wireshark.
En la primera fila, antes de conocer un poco el menú, vemos lo siguiente:
Esta línea está compuesta por lo siguiente:
- N°: Identifica el número interno del proceso.
- Time: Tiempo de conexión entre el origen y el destino
- Source: IP de origen
- Destination: IP de destino
- Protocol: Protocolo usado para la transferencia
- Lenght: Tamaño del paquete
- Info: Información adicional del destino
Si deseamos guardar el trabajo actual podemos hacer a través del menú File, opción Save o Save As. Para abrir este archivo usaremos la opción Open del menú File.
Como vemos en el analizador de paquetes tenemos mucha información, por ejemplo, si revisamos la columna Protocol veremos que hay protocolos ARP, HTTP, TCP entre otros, si sólo deseamos ver los protocolos TCP usaremos el filtro, para ello ingresamos el término TCP en la casilla “Apply a display filter” ubicada en la parte superior y damos Enter o presionamos el botón Apply this filter, veremos que en la columna Protocol sólo están los protocolos TCP.
Podemos exportar nuestros datos a diferentes tipos de formato para un mejor análisis, éstos pueden ser exportados a HTTP, SMB, TFTP, etc. Para realizar la exportación iremos al menú File y elegimos Export Objects, elegiremos la opción HTTP.
Este es el resultado de nuestra exportación:
Analicemos un poco las diferentes opciones de la barra de menú en Wireshark.
Dentro de este menú encontramos opciones básicas como abrir, guardar, exportar, imprimir, entre otras. Acabamos de observar el proceso para exportar un archivo.
Desde este menú podremos ejecutar tareas tales como copiar, encontrar paquetes, establecer comentarios, etc. Vamos a revisar algunas de estas opciones en detalle.
Por ejemplo si deseamos buscar todos los paquetes DNS dentro de la trama, abriremos la opción Find e ingresaremos la palabra DNS o podemos usar la combinación CTRL + F:
Podemos ver que todos los paquetes DNS son resaltados. Para agregar un comentario usaremos la opción Packet Comment.
Lo veremos reflejado en el menú principal:
Desde esta opción podemos definir los tipos de vista que tendrá nuestro Wireshark así como definir el formato de hora, el tamaño de las columnas, las reglas de colores, etc.
Podemos ejecutar la opción Colorize Rules para determinar, y si deseamos editar, los colores asignados para los diferentes protocolos.
En caso de querer crear un nuevo protocolo basta con dar clic en +, definir el nombre y el color y presionar OK.
Con esta opción podremos iniciar, detener o reiniciar una toma de paquetes
En la opción Capture Filters podemos definir los parámetros de la captura.
Dentro de este menú podemos crear filtros, editar filtros, habilitar o deshabilitar protocolos, entre otras tareas.
Podemos desplegar la opción Display Filters para observar, y si es necesario modificar, los filtros actuales.
Si deseamos agregar más filtros pulsamos el botón +, si queremos quitar algún filtro presionamos el botón -. Podemos analizar la lista completa de todos los protocolos habilitados usando la opción Enabled Protocols o usando la combinación de teclas:
Ctrl + Shift + E
Allí observamos el protocolo y su descripción.
Es quizás una de los menús más completos ya que desde allí podemos realizar informes, gráficos y otras utilidades para ver el estado de los paquetes.
Como vemos tenemos diversas alternativas para ver su estadística, por ejemplo, vamos a crear un gráfico de entrada y salida I/O Graph.
En el gráfico podemos crear ajustes como el color de la línea, el intervalo de frecuencia, día específico, etc. Si seleccionamos la opción Capture File Properties veremos las propiedades de los archivos de captura tal como su tamaño, el tipo de encriptación, el primero y el último paquete, entre otros detalles.
Si seleccionaos la opción IPv4 Statistics y elegimos All Addresses veremos el siguiente informe detallado:
Si queremos ver el comportamiento del streaming TCP podemos usar la opción TCP Stream Graphs y seleccionar el tipo de gráfico, veremos lo siguiente:
En la ficha desplegable Type podremos modificar el tipo de gráfico. Con la opción Protocol Hierarchy podremos ver en detalle los paquetes enviados, el tamaño, etc.
En esta opción podremos analizar todo lo relacionado con los protocolos asociados a los medios telefónicos (Cuando usamos este medio), podemos ver información como:
- mensajes UCP
- mensajes ISUP
- estadísticas SIP, etc.
Podemos abrir cualquiera de estas opciones pero como no estamos trabajando con protocolos telefónicos el resultado será cero (0).
Dentro de este menú encontramos información relacionada a los dispositivos Wireless vinculados con Wireshark (por ejemplo cuando trabajamos con un portátil, móviles etc.)
Como en este estudio estamos trabajando más con la red LAN (no con WiFi) todas las opciones de este menú aparecerán en cero o vacías.
Dentro de este menú encontraremos todo lo relacionado con la aplicación LUA, esto es una consola que permite a los desarrolladores crear scripts para mejorar o extender aplicaciones.
Desde este menú podremos acceder a la ayuda de Wireshark, ver screens de cómo ejecutarlo, acceso al sitio web de la compañía, entre otros. Podemos darnos cuenta que con la opción About Wireshark podemos ver los atajos de teclado incluidos en la misma, esto nos puede ayudar a agilizar ciertos procesos.
Por ejemplo cuando usamos los filtros debemos tener presente que podemos usar algunos parámetros como:
- Igual a: eq ó ==
- No igual: ne ó !=
- Mayor que: gt ó >
- Menor que: lt ó <
- Mayor o igual: ge ó >=
- Menor o igual: le ó <=
Podemos ejecutar una búsqueda usando la siguiente sintaxis:
tcp contains “solvetic.com”En cuanto a los protocolos podemos mencionar que los siguientes son los más comunes y con algunas de sus adiciones:
- ssl > Protocolo SSL (Socket Secure Layer).
- telnet > Telnet.
- dns > DNS. (Domain Name System)
- msnms > Mensajería Instantánea (Messenger).
- ftp > Protocolo FTP (podriamos ver el nombre de usuario y contraseña).
- ftp-data > Habilita ver los datos del protocolo FTP.
- ip > Protocolo IP.
- ip.src==192.168.1.10 > Dirección IP de Origen.
- ip.dst==192.168.1.30 > Dirección IP de Destino.
- tcp > Protocolo TCP
- tcp.port==80 > Indicamos los paquetes con el puerto deseado.
- tcp.srcport==80 > Indicamos el puerto de origen.
- tcp.dstport==80 > Indicamos el puerto de destino.
- http > Protocolo HTTP
- http.host==”www.solvetic.com” > Deseemos ver los paquetes que tengan a Solvetic como host.
- http.date==”Wed, 25 May 2016 17:08:35 GMT” > Paquetes con respecto a una fecha
- http.content_type==”application/json” > Puede variar el tipo de aplicación
- http.content_type==”image/png” > Imágenes PNG
- http.content_type==”image/gif” > Imágenes GIF
- http.content_type==”image/jpeg” > Imágenes JPEG
- http.content_type==”text/html” > Archivos HTML
- http.content_type==”text/css” > Hojas de estilo CSS
- http.content_type==”video/quicktime” > Vídeos
- http.content_type==”application/zip” > Archivos ZIP
- http.request.method==”GET” > Tipo de Petición GET
- http.request.method==”POST” > Tipo de Petición POST
- http.user_agent contains “Mozilla” > Navegador Mozilla
- http.request.uri matches “[0-9]” > Uso de expresiones regulares.
Podemos ver el gran alcance que tenemos con Wireshark para supervisar nuestro tráfico de paquetes, un ejemplo sencillo para finalizar, abrimos la página web de Solvetic.
Podemos ver en Wireshark (Filtrando por DNS) la consulta que acabamos de realizar (Abrir la página web de Solvetic).
Si damos doble clic en dicha fila podremos ver información más detallada acerca de la ruta:
Podremos ver detalles como el id de la interface, el tiempo aproximado de llegada de la petición, el tipo de la tarjeta de red tanto de origen como de destino, etc.
Vemos que tenemos a nuestro alcance una herramienta muy valiosa (y gratis) que nos permitirá como administradores realizar monitoreos constantes a todo el tráfico de red para garantizar la calidad de la comunicación y el envío correcto y seguro de toda la información.