En este laboratorio, aprenderá a usar los filtros de visualización de Wireshark para analizar el tráfico de red y detectar posibles amenazas de seguridad. Wireshark, un potente analizador de protocolos de red, puede capturar y diseccionar paquetes de red, lo cual es crucial para los profesionales de la ciberseguridad.
Al dominar estos filtros, podrá aislar y examinar rápidamente tipos de tráfico específicos. Esto agiliza su análisis y aumenta su capacidad para detectar y manejar incidentes de seguridad.
Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel intermedio con una tasa de finalización del 74%. Ha recibido una tasa de reseñas positivas del 99% por parte de los estudiantes.
Iniciar Wireshark y Analizar el Tráfico de Red
En este paso, vamos a empezar a usar Wireshark. Primero, aprenderá cómo iniciarlo. Luego, capturará tráfico de red o utilizará un archivo de muestra proporcionado para el análisis. Comprender la interfaz de Wireshark es crucial, ya que le ayuda a ver y analizar los datos de los paquetes.
Iniciando Wireshark
Para iniciar Wireshark, necesita abrir una ventana de terminal. Puede hacerlo haciendo clic en el icono de la terminal en la barra de tareas o presionando Ctrl+Alt+T. Una vez que la terminal esté abierta, utilizará un comando para iniciar Wireshark. En la terminal, escriba el siguiente comando y presione Enter:
wireshark
Este comando le indica a su sistema que inicie la aplicación Wireshark. Después de unos segundos, Wireshark se abrirá. Debería ver una ventana similar a la que se muestra a continuación:
Trabajando con Archivos de Captura de Red
Para este laboratorio, tiene dos opciones:
Opción 1: Usar el Archivo de Muestra Proporcionado
Se ha preparado un archivo de captura de muestra para usted en /home/labex/project/sample.pcapng. Este archivo contiene una variedad de tráfico de red que puede analizar. Para abrir este archivo:
En Wireshark, vaya a File > Open (Archivo > Abrir)
Navegue a /home/labex/project/sample.pcapng
Haga clic en "Open" (Abrir)
El archivo se cargará en Wireshark, mostrando varios paquetes que se han capturado previamente.
Opción 2: Capturar Su Propio Tráfico
Si prefiere capturar su propio tráfico:
En la ventana principal de Wireshark, busque la lista de interfaces de red disponibles.
Encuentre la interfaz eth1. En este entorno de laboratorio, eth1 es la interfaz de red principal que utilizaremos para capturar paquetes.
Haga doble clic en eth1. Esta acción inicia inmediatamente el proceso de captura de paquetes.
Genere algo de tráfico de red abriendo una nueva terminal y ejecutando:
curl www.google.com
Note: Free users can not connect to the internet. Upgrade to a pro to capture your own traffic. Nota: Los usuarios gratuitos no pueden conectarse a Internet. Actualice a una cuenta pro para capturar su propio tráfico.
Una vez que haya capturado suficientes paquetes (intente capturar al menos 20-30 paquetes), haga clic en el botón cuadrado rojo "Stop" (Detener) en la barra de herramientas de Wireshark.
Comprendiendo la Interfaz de Wireshark
La interfaz de Wireshark se divide en tres paneles principales, cada uno con un propósito específico:
Packet List (Lista de Paquetes) (panel superior): Este panel muestra todos los paquetes que se han capturado en el orden en que fueron recibidos. Le brinda una visión general rápida del tráfico capturado.
Packet Details (Detalles del Paquete) (panel central): Cuando selecciona un paquete en el panel superior, este panel central muestra los detalles de ese paquete en un formato jerárquico. Desglosa la estructura del paquete, mostrando información como las direcciones IP de origen y destino, los tipos de protocolo y más.
Packet Bytes (Bytes del Paquete) (panel inferior): Este panel muestra los bytes sin procesar del paquete seleccionado en formato hexadecimal. Es útil para un análisis en profundidad, especialmente cuando necesita observar los datos exactos que se transmiten.
Para ver cómo funcionan estos paneles en conjunto, haga clic en diferentes paquetes en el panel superior. Verá que los detalles y los bytes sin procesar correspondientes se actualizan en los paneles central e inferior.
Comprender y Aplicar Filtros de Visualización Básicos
En este paso, vamos a explorar los filtros de visualización en Wireshark. Los filtros de visualización son herramientas esenciales cuando se trata de analizar el tráfico de red. Le ayudan a centrarse en tipos específicos de paquetes en lugar de tener que examinar todos los datos capturados. Al final de esta sección, sabrá qué son los filtros de visualización, por qué son útiles y cómo aplicar filtros básicos para aislar tipos específicos de tráfico de red.
Qué Son los Filtros de Visualización
Cuando está analizando el tráfico de red, observar cada paquete capturado puede ser abrumador. Por lo general, desea centrarse en tipos específicos de paquetes. Ahí es donde entran en juego los filtros de visualización de Wireshark. Le permiten mostrar solo los paquetes que cumplen con ciertos criterios. Esto hace que el proceso de análisis sea mucho más eficiente porque no está perdiendo tiempo en datos irrelevantes.
Los filtros de visualización en Wireshark utilizan una sintaxis especial. Esta sintaxis le permite filtrar paquetes basándose en varios atributos, como protocolos, direcciones IP, puertos e incluso el contenido de los paquetes. Comprender esta sintaxis es clave para utilizar eficazmente los filtros de visualización.
Barra de Herramientas de Filtro
Eche un vistazo a la parte superior de la ventana de Wireshark. Notará un campo de texto. Podría estar etiquetado como "Apply a display filter..." (Aplicar un filtro de visualización...) o simplemente mostrar "Expression..." (Expresión...). Este es el lugar donde ingresará sus filtros de visualización. Una vez que ingrese un filtro y presione Enter, Wireshark utilizará ese filtro para mostrar solo los paquetes relevantes.
Filtros de Protocolo Básicos
Comencemos con un ejemplo simple. Suponga que desea ver solo el tráfico HTTP. HTTP es el protocolo utilizado para la navegación web. Para hacer esto, ingresará un filtro en la barra de herramientas de filtro. Escriba el siguiente filtro y luego presione Enter:
http
Después de aplicar este filtro, Wireshark solo mostrará los paquetes HTTP. Todos los demás paquetes se ocultarán temporalmente. Notará que la barra de filtro se vuelve verde cuando aplica un filtro válido. Esta es una indicación visual de que su filtro está funcionando correctamente.
La salida ahora debería mostrar solo los paquetes relacionados con el tráfico HTTP. Esto generalmente incluye solicitudes web (cuando le pide información a un sitio web) y respuestas (cuando el sitio web le envía la información). Si no ve ningún tráfico HTTP en el archivo de muestra, puede probar diferentes protocolos que podrían estar presentes, como TCP, UDP o DNS:
tcp
O intente generar más tráfico HTTP ejecutando el comando curl en una terminal:
curl www.google.com
Filtros de Dirección IP
A continuación, filtremos el tráfico basándonos en direcciones IP. Una dirección IP es como un identificador único para un dispositivo en una red. Primero, mire su lista de paquetes. Verá columnas etiquetadas como "Source" (Origen) y "Destination" (Destino). Estas columnas muestran las direcciones IP de los dispositivos que envían y reciben los paquetes.
Una vez que haya identificado una dirección IP que aparece con frecuencia en su captura (por ejemplo, digamos que ve 192.168.1.1), puede usarla para crear un filtro. Escriba el siguiente filtro en la barra de herramientas de filtro para ver solo los paquetes de esa fuente:
ip.src == 192.168.3.131
Puede reemplazar 192.168.3.131 con una dirección IP que realmente vea en su captura. Después de aplicar este filtro, solo se mostrarán los paquetes con esa dirección IP de origen.
Si desea ver todos los paquetes nuevamente, puede borrar el filtro actual. Simplemente haga clic en el botón "Clear" (Borrar) (X) en el lado derecho de la barra de filtro.
Filtros de Puerto
Muchos servicios de red operan en puertos específicos. Un puerto es como una puerta en un dispositivo que permite que tipos específicos de tráfico de red entren o salgan. Por ejemplo, HTTP normalmente usa el puerto 80. Para filtrar paquetes por número de puerto, puede usar el siguiente filtro:
tcp.port == 80
Este filtro mostrará tanto los paquetes entrantes como los salientes que utilizan el puerto TCP 80. También puede probar otros puertos comunes como 443 (HTTPS) o 53 (DNS) dependiendo de lo que esté disponible en su captura.
Combinando Filtros
Puede hacer que sus filtros sean más potentes combinándolos utilizando operadores lógicos como and (y) y or (o). Por ejemplo, si desea mostrar solo el tráfico HTTP que utiliza el puerto 80, puede usar el siguiente filtro:
http and tcp.port == 80
Intente aplicar diferentes combinaciones de filtros y observe cómo cambian los paquetes mostrados. Recuerde, antes de probar un nuevo filtro, puede borrar el anterior haciendo clic en el botón "Clear" (Borrar) o modificar el filtro existente directamente en la barra de filtro para construir sobre él.
Técnicas Avanzadas de Filtrado
En este paso, exploraremos cómo crear filtros más sofisticados para un análisis detallado del tráfico de red. Como principiante, puede que se pregunte por qué necesitamos un filtrado avanzado. Bueno, en escenarios del mundo real, los archivos de captura de red pueden ser extremadamente grandes, llenos de todo tipo de tráfico. Las técnicas avanzadas de filtrado son como una poderosa lupa para los profesionales de la seguridad. Nos ayudan a seleccionar rápidamente el tráfico sospechoso o importante del mar de datos en estos grandes archivos de captura.
Filtros Complejos con Múltiples Condiciones
Wireshark le brinda la capacidad de construir filtros complejos combinando múltiples condiciones. Esto es muy útil cuando desea ser más preciso en su análisis de tráfico. Comencemos creando un filtro para encontrar solicitudes HTTP GET.
http.request.method == "GET"
Este filtro está diseñado para mostrar solo los paquetes HTTP que contienen solicitudes GET. Cuando aplica este filtro, verá paquetes que son solicitudes enviadas a servidores web. La razón por la que usamos este filtro es que las solicitudes GET son un tipo común de solicitud HTTP utilizada para recuperar datos de un servidor. Al aislar estas solicitudes, podemos centrarnos en las actividades de recuperación de datos en la red.
Si su archivo de muestra no contiene solicitudes HTTP GET, pruebe este filtro alternativo para encontrar paquetes TCP SYN que indican intentos de conexión:
tcp.flags.syn == 1
Ahora, hagamos que nuestro filtro sea más específico. Agregaremos una condición de puerto.
tcp.port == 80 and http.request.method == "GET"
Este nuevo filtro muestra solo las solicitudes HTTP GET que ocurren en el puerto HTTP estándar (80). El puerto HTTP estándar se usa ampliamente para el tráfico web no cifrado. Al agregar esta condición de puerto, estamos reduciendo nuestra búsqueda solo a aquellas solicitudes GET que están utilizando el canal de comunicación HTTP típico.
Filtrado Basado en el Tamaño del Paquete
Los ataques de red a menudo involucran paquetes con tamaños inusuales. Los atacantes pueden usar paquetes grandes o pequeños para ocultar datos maliciosos o para interrumpir el funcionamiento normal de la red. Para filtrar según el tamaño del paquete, utilizamos una sintaxis específica.
tcp.len >= 100 and tcp.len <= 500
Este filtro muestra paquetes TCP con una longitud de carga útil (payload) entre 100 y 500 bytes. Puede ajustar estos valores según sus necesidades. Por ejemplo, si sospecha que un ataque involucra paquetes más grandes, puede aumentar el límite superior. Al filtrar según el tamaño del paquete, podemos identificar patrones de tráfico anormales que podrían indicar un ataque.
Filtrado Basado en Contenido Específico
También puede filtrar el tráfico basándose en contenido específico dentro de los paquetes. Esto es muy útil cuando está buscando tráfico relacionado con un sitio web o servicio en particular. Por ejemplo, encontremos tráfico HTTP relacionado con un sitio web específico.
http.host contains "google"
Este filtro muestra solo el tráfico HTTP donde el encabezado (header) host contiene "google". Puede reemplazar "google" con cualquier dominio que le interese analizar. El encabezado host en una solicitud HTTP le dice al servidor a qué sitio web está intentando acceder el cliente. Al filtrar basándose en el encabezado host, podemos centrarnos en el tráfico relacionado con un dominio específico.
Si su archivo de muestra no tiene tráfico HTTP con encabezados host, pruebe este filtro de contenido más general:
frame contains "http"
Usando el Operador "contains" para la Búsqueda de Texto
El operador contains es una herramienta útil para buscar cadenas de texto específicas en paquetes. Nos permite buscar ciertas palabras clave dentro de los datos del paquete.
frame contains "password"
Este filtro muestra los paquetes que contienen la palabra "password" (contraseña) en cualquier parte de los datos del paquete. Esto puede ser muy útil para detectar posibles problemas de seguridad. Por ejemplo, si las contraseñas se envían en texto plano (lo cual es un gran riesgo de seguridad), este filtro puede ayudarnos a detectar esos paquetes.
O pruebe este filtro:
frame contains "login"
Negando Filtros
A veces, es posible que desee ver todo el tráfico, excepto ciertos tipos. Ahí es donde entra en juego el operador not (no).
not arp
Este filtro oculta todos los paquetes ARP. ARP (Address Resolution Protocol - Protocolo de Resolución de Direcciones) se utiliza para asignar direcciones IP a direcciones MAC en una red local. A veces, el tráfico ARP puede ser muy común y podría saturar su análisis. Al usar el operador not, podemos excluir este tipo de tráfico y centrarnos en otros paquetes más relevantes.
Guardando y Aplicando Marcadores de Filtro
Si se encuentra utilizando ciertos filtros con frecuencia, no tiene que escribirlos cada vez. Puede guardarlos como marcadores (bookmarks). Aquí está cómo:
Ingrese un filtro en la barra de filtro. Aquí es donde escribe las expresiones de filtro que hemos estado aprendiendo.
Haga clic en el botón "+" en el lado derecho de la barra de filtro. Este botón se utiliza para guardar el filtro actual como un marcador.
Dele a su filtro un nombre y haga clic en "OK". Nombrar el filtro facilita su identificación posterior.
Una vez que haya guardado su filtro, puede aplicarlo haciendo clic en su nombre en el menú desplegable del filtro. Esto le ahorra tiempo y esfuerzo, especialmente cuando está realizando análisis repetidos.
Exportando Paquetes Filtrados
Después de haber filtrado su tráfico para mostrar solo los paquetes de interés, es posible que desee guardar solo estos paquetes en un nuevo archivo. Esto es útil para compartir hallazgos específicos con colegas o para un análisis posterior. Aquí está cómo lo hace:
Aplique el filtro deseado. Asegúrese de haber configurado el filtro para mostrar solo los paquetes que desea guardar.
Haga clic en File > Export Specified Packets (Archivo > Exportar Paquetes Especificados). Esta opción le permite exportar un conjunto específico de paquetes.
Asegúrese de que "Displayed" (Mostrados) esté seleccionado en la sección Packet Range (Rango de Paquetes). Esto asegura que solo se exporten los paquetes que están actualmente visibles (es decir, los que coinciden con su filtro).
Elija un nombre de archivo y una ubicación. Aquí es donde decide dónde guardar el nuevo archivo de captura y cómo nombrarlo.
Haga clic en "Save" (Guardar). Esto crea un nuevo archivo de captura que contiene solo los paquetes que coincidieron con su filtro.
Análisis de Tráfico Relacionado con la Seguridad
En este paso, nos centraremos en el uso de filtros de Wireshark para el análisis de seguridad. El análisis de seguridad es crucial en el mundo de la ciberseguridad, ya que nos ayuda a detectar actividades potencialmente maliciosas en el tráfico de red. Al final de esta sección, podrá identificar varios tipos de amenazas de seguridad utilizando filtros específicos de Wireshark.
Identificando Actividades de Escaneo de Puertos (Port Scanning)
El escaneo de puertos (port scanning) es una técnica común utilizada por los atacantes para recopilar información sobre un sistema objetivo. Los atacantes lo utilizan para encontrar puertos abiertos en una red, que luego pueden ser explotados. Para detectar el escaneo de puertos potencial, buscamos una gran cantidad de intentos de conexión desde una sola fuente a múltiples puertos.
Usemos un filtro específico para identificar tales actividades. Pruebe este filtro en Wireshark:
tcp.flags.syn == 1 and tcp.flags.ack == 0
Este filtro muestra los paquetes SYN sin el indicador ACK. En una conexión TCP, el paquete SYN es el primero que se envía para iniciar una conexión, y el paquete ACK se utiliza para confirmar la conexión. Cuando vemos muchos paquetes SYN sin ACK de una fuente a diferentes puertos de destino, es una fuerte indicación de escaneo de puertos.
Detectando Tráfico DNS Sospechoso
La tunelización DNS (DNS tunneling) y otros ataques basados en DNS se están volviendo más comunes. Estos ataques utilizan el protocolo DNS para ocultar actividades maliciosas, como la exfiltración de datos o la comunicación de comando y control. Para detectar tales ataques, necesitamos buscar tráfico DNS inusual.
Utilice este filtro para examinar las consultas DNS:
dns
Una vez que aplique este filtro, busque nombres de dominio inusualmente largos o un alto volumen de solicitudes DNS al mismo dominio. Estos podrían ser signos de exfiltración de datos o comunicación de comando y control.
Identificando Intentos de Ataque de Fuerza Bruta de Contraseñas (Password Brute Force)
Los ataques de fuerza bruta de contraseñas (password brute force) son una forma común para que los atacantes obtengan acceso no autorizado a servicios como SSH o FTP. En un ataque de fuerza bruta, el atacante prueba múltiples combinaciones de contraseñas hasta que encuentra la correcta.
Para detectar posibles intentos de fuerza bruta de contraseñas, podemos filtrar los intentos fallidos de inicio de sesión. Utilice este filtro:
ftp contains "530" or ssh contains "Failed"
Este filtro muestra los paquetes FTP y SSH que contienen mensajes comunes de respuesta de error. Si ve múltiples fallas de la misma fuente, puede indicar un intento de fuerza bruta.
Analizando las Respuestas de Error HTTP
Los ataques a aplicaciones web a menudo generan respuestas de error HTTP. Los atacantes pueden intentar explotar vulnerabilidades en las aplicaciones web, y estos intentos pueden resultar en respuestas de error del servidor.
Filtre estas respuestas de error con:
http.response.code >= 400
Este filtro muestra los paquetes de respuesta HTTP con códigos de estado de 400 o superior. Todos estos códigos de estado representan respuestas de error. Al examinar estos paquetes, podemos identificar intentos de explotación web.
Encontrando Credenciales en Texto Plano
Transmitir credenciales en texto plano es un riesgo de seguridad importante. Si un atacante intercepta estas credenciales, puede obtener acceso no autorizado al sistema.
Para detectar credenciales en texto plano, utilice este filtro:
http contains "user" or http contains "pass" or http contains "login"
Este filtro nos ayuda a encontrar tráfico HTTP que podría contener información de inicio de sesión. Examine cuidadosamente los paquetes que coinciden con este filtro para identificar posibles riesgos de seguridad.
Escenario de Práctica: Analizando Tráfico de Muestra y Generando Nuevo Tráfico
Ahora que ha aprendido varios filtros centrados en la seguridad, es hora de poner en práctica sus conocimientos. Puede analizar el archivo de muestra proporcionado o generar y analizar nuevo tráfico.
Analizando el Archivo de Muestra
Si está utilizando el archivo de muestra proporcionado (/home/labex/project/sample.pcapng), intente aplicar algunos de los filtros de seguridad que hemos discutido para identificar cualquier patrón interesante:
tcp.flags.syn == 1 and tcp.flags.ack == 0
Busque patrones que puedan indicar escaneo, conexiones sospechosas u otros problemas de seguridad.
Generando y Analizando Nuevo Tráfico
Alternativamente, abra una nueva ventana de terminal. En esta ventana, generaremos algo de tráfico HTTP con múltiples solicitudes. Ejecute los siguientes comandos:
for i in {1..5}; do
curl -I www.google.com
sleep 1
done
Estos comandos envían cinco solicitudes HTTP HEAD a www.google.com con un intervalo de un segundo entre cada solicitud.
A continuación, vaya a Wireshark y aplique este filtro para encontrar todas las solicitudes HTTP:
http.request
Este filtro mostrará todas las solicitudes HTTP en el tráfico capturado.
Revise estos paquetes para identificar patrones de tráfico HTTP normal. Observe los encabezados (headers), la frecuencia de las solicitudes y otros detalles.
Finalmente, intente crear un filtro que pueda distinguir la navegación HTTP normal de las herramientas de escaneo automatizadas. Por ejemplo:
http.request and !(http.user_agent contains "Mozilla")
Este filtro muestra las solicitudes HTTP que no tienen agentes de usuario (user agents) del navegador. Dado que la mayoría de la navegación web normal se realiza utilizando navegadores con Mozilla en el agente de usuario, las solicitudes sin él podrían indicar herramientas automatizadas en lugar de la navegación normal.
Al practicar estas técnicas de filtrado centradas en la seguridad, desarrollará las habilidades necesarias para identificar rápidamente el tráfico sospechoso en las capturas de red del mundo real.
Resumen
En este laboratorio, ha aprendido a utilizar los filtros de visualización (display filters) de Wireshark para el análisis del tráfico de red y la identificación de posibles amenazas de seguridad. Comenzó trabajando con un archivo de captura de muestra proporcionado o capturando tráfico de red en vivo y familiarizándose con la interfaz de Wireshark. Luego, dominó los filtros de visualización básicos para aislar tipos de tráfico específicos según los protocolos, las direcciones IP y los puertos. También avanzó sus habilidades con técnicas de filtrado complejas, combinando múltiples condiciones y buscando contenido específico. Finalmente, aplicó estas habilidades en escenarios de análisis de seguridad para detectar actividades sospechosas como el escaneo de puertos (port scanning), la exposición de credenciales y posibles ataques.
Estas habilidades de filtrado de Wireshark son cruciales para la resolución eficiente de problemas de red y el análisis de seguridad. Al aislar rápidamente los paquetes relevantes de grandes capturas, puede reducir en gran medida el tiempo necesario para identificar y responder a los problemas de red y los incidentes de seguridad. A medida que siga practicando con Wireshark, obtendrá una comprensión intuitiva de los protocolos de red y los patrones de tráfico, mejorando sus capacidades generales de ciberseguridad.