miércoles, 29 de diciembre de 2021

TryHackMe: Wireshark 101 (Segunda Parte)

 

Aquí llega la segunda parte de la sala de TryHackMe sobre el uso de Wireshark. Como veis, esta vez no se ha hecho esperar demasiado, ya que espero dejar lista esta sala antes de final de año, a ver si cumplo mi objetivo. Disfrutad y aprended, que ya sabéis lo que dicen:

El saber no ocupa lugar.

FILTRADO DE CAPTURAS

El filtrado de paquetes es una parte muy importante en el análisis de paquetes, especialmente cuando tienes un gran número de paquetes (a veces incluso más de 100.000). Anteriormente vimos brevemente lo referente a los filtros, y vimos que hay un segundo método de filtrado más potente y fácil de usar. A este segundo método se le conoce como filtros de visualización, puedes aplicar estos filtros de dos formas: a través de la pestaña de análisis y en la barra de filtros en la parte superior de la captura de paquetes.

Operadores de Filtrado

La sintaxis de los filtros de Wireshark puede ser muy fácil de comprender, lo que hace que sea sencillo de adoptar rápidamente. Para obtener la mayoría de estos filtros necesitarás tener una comprensión básica de operadores booleanos y lógicos.

Wireshark solo tiene unos cuantos con los que debas familiarizarte:

  • Operador and: and/&&

  • Operador or: or/||

  • Operador equals: eq/==

  • Operador not equal: ne/!=

  • Operador greater than: gt/>

  • Operador less than: lt/<

Wireshark también tiene algunos otros operadores que van más allá del poder de los operadores lógicos normales. Estos operadores son los operadores contain, matches y bitwise_and. Estos operadores pueden ser muy útiles cuando tienes una captura enorme y necesitas marcar algún paquete individual. Están fuera del alcance de esta sala, por lo que te recomiendo que realices la búsqueda por ti mismo, siendo la Documentación de Filtrado de Wireshark un buen punto de comienzo.

Filtrado Básico

El filtrado nos otorga un alcance bastante amplio de lo que podemos hacer con los paquetes. Por eso pueden haber montones de opciones de sintaxis de filtrado. Solo cubriremos las más básicas en esta sala, como el filtrado por IP, protocolo, etc. Para más información acerca del filtrado, os recomiendo la lectura de este documento.

Existe una sintaxis general para los comandos de los filtros, aunque a veces puede ser un poco liosa. La sintaxis básica de los filtros de Wireshark es un tipo de servicio o protocolo como ip o tcp, seguido por un punto y después lo que queramos filtrar, ya sea una dirección, MAC, SRC, protocolo, etc.

Filtrando por IP

El primer filtro que vamos a ver es el ip.addr, este filtro te permitirá peinar todo el tráfico y ver solo los paquetes con una dirección IP específica contenida en dichos paquetes, ya sea en la fuente como en el destino.

Sintaxis: ip.addr == <Dirección IP>


Este filtro puede ser útil en aplicaciones prácticas, como cuando estás buscando una amenaza, y tienes identificados a huéspedes sospechosos potencialmente. Puedes usar Wireshark para analizar más a fondo los paquetes provenientes de ese dispositivo.

Filtrando por SRC y DST

El segundo filtro que veremos es tanto un dos en uno como un operador de filtro: ip.src y ip.dst. Estos filtros te permiten filtrar el tráfico por el origen y el destino del que procede el tráfico.

Sintaxis: ip.src == <SRC Dirección IP> and ip.dst == <DST Dirección IP>


De forma similar al primer filtro, podemos ver que Wireshark peina los paquetes y los filtra basándose en el origen y el destino indicados.

Filtrando por Protocolos TCP

El último filtro que vamos a ver es el filtro de protocolo, que te permite indicar un puerto o protocolo a filtrar, y puede ser útil cuando intentamos mantener el rastro de un protocolo inusual o de un puerto utilizado.

Cabe mencionar que Wireshark puede filtrar por ambos, número de puerto y protocolo.

Sintaxis: tcp.port eq <Port #> or <Nombre del Protocolo>

Filtrando por Protocolos UDP

También puedes filtrar por puertos UDP cambiando el prefijo tcp por udp.

Sintaxis: udp.port eq <Port #> or <Nombre del Protocolo>

Este es el final del tema de filtrado por ahora, por lo que te recomiendo que hagas tus propias pruebas con los filtros y los operadores.


DISECCIÓN DE PAQUETES

En esta sección veremos cómo Wireshark usa las capas OSI para romper los paquetes y cómo usar estas capas para el análisis. Se espera que ya tengas un conocimiento básico de qué es el modelo OSI y de cómo funciona.


Detalles de Paquete

Puedes hacer doble clic en un paquete en la captura para abrir los detalles. Los paquetes están basados en de 5 a 7 capas del modelo OSI. Iremos viendo cada una de ellas en un paquete HTTP de una captura de ejemplo.

 

En la imagen anterior podemos ver 7 capas distintas en el paquete: frame/paquete, origen[MAC], origen[IP], protocolo, errores de protocolo, protocolo de aplicación y datos de aplicación. A continuación veremos cada capa con más detalle.

  • Frame (Capa 1) – Ésta te mostrará qué frame o paquete estás viendo así como detalles específicos de la capa física del modelo OSI.

     
  • Origen [MAC] (Capa 2) – Te mostrará las direcciones MAC de origen y destino; de la capa de Enlace de Datos del modelo OSI.
     
  • Origen [IP] (Capa 3) – Te mostrará las direcciones IPv4 de origen y destino; de la capa de Red dell modelo OSI.
     
  • Protocolo (Capa 4) – Te mostrará detalles acerca del protocolo utilizado (UDP/TCP) a través de los puertos de origen y destino; de la capa de Transporte del modelo OSI.
  • Errores de Protocolo – Se trata de una continuación de la capa 4 que muestra segmentos específicos de TCP que necesitan ser reensamblados.

  • Protocolo de Aplicación (Capa 5) – Te mostrará detalles específicos del protocolo que se está usando (HTTP, FTP, SMB, etc). De la capa de Aplicación del modelo OSI.

  • Datos de Aplicación – Es una extensión de la capa 5 que puede mostrar datos específicos de la aplicación.

Ahora que entiendes cómo está formado un paquete genérico, ve a echar un vistazo a varios protocolos de aplicación y sus detalles específicos.


TRÁFICO ARP

Visión General de ARP

ARP o Address Resolution Protocol (Protocolo de Resolución de Direcciones) es un protocolo de la Capa 2 que se usa para conectar las direcciones IP con las direcciones MAC. Contendrán mensajes de SOLICITUD y mensajes de RESPUESTA. Para identificar paquetes, el mensaje de la cabecera contendrá uno de estos dos códigos de operación:

  • Solicitud (1)

  • Respuesta (2)

A continuación puedes ver una captura de un paquete con múltiples solicitudes y respuestas ARP.

 

Es útil percatarse de que la mayoría de dispositivos se identificarán a sí mismos o Wireshark los identificará como Intel_78, un ejemplo de tráfico sospechoso serían varias solicitudes de origen desconocido. Necesitas habilitar alguna opción en la configuración de Wireshark para resolver direcciones físicas. Para habilitar esta característica, navega hasta Vista > Resolución de Nombre > Asegúrate de que Resolver Direcciones Físicas está marcada.

Viendo la siguiente imagen podemos ver que un dispositivo Cisco está enviando Solicitudes ARP, lo que significa que deberíamos confiar en este dispositivo, sin embargo, siempre hay que ser precavido al analizar los paquetes.

 

Visión General del Tráfico ARP

Paquetes de Solicitud ARP:

Podemos comenzar a analizar paquetes echando un vistazo al primer paquete de Solicitud ARP y viendo los detalles del paquete.


Viendo dichos detalles, los más importantes están marcados en rojo. El Opcode es la abreviatura de código de operación e indicará si se trata de una Solicitud o una Respuesta ARP. El segundo detalle marcado es a dónde está solicitando el paquete, en este caso, está transmitiendo la Solicitud a todos.

Paquetes de Respuesta ARP:


Viendo los detalles del paquete anterior podemos ver que el Opcode en este caso pertenece a un paquete de Respuesta ARP. También podemos obtener otra información útil como las direcciones MAC e IP, enviadas con la Respuesta, ya que la información se envió junto al paquete.

ARP es uno de los protocolos más simples a analizar, todo lo que necesitas recordar es identificar si es un paquete de Solicitud o de Respuesta y quién lo está enviando.

Análisis Práctico de Paquete ARP

Ahora que sabes cómo son los paquetes ARP y el tráfico normal, descarga el PCAP adjunto o el archivo nb6-startup.pcap desde la web de Wireshark. Esta captura tiene múltiples protocolos por lo que puedes necesitar usar tu conocimiento de filtrado previo; una vez estés listo, comienza el análisis de la captura.


TRÁFICO ICMP

Visión General de ICMP

ICMP o Internet Control Message Protocol (Protocolo de Mensajes de Control de Internet) se usa para analizar varios nodos en una red. Se utiliza comúnmente con utilidades como ping y traceroute. Deberías estar familiarizado con cómo funciona ICMP; sin embardo, si necesitas refrescarlo, puedes leer la Documentación IETF.

A continuación puedes ver un ejemplo de cómo se ve un ping, podemos ver una solicitud al servidor desde ICMP, y después una respuesta del servidor.


Visión General del Tráfico ICMP

Solicitud ICMP:

A continuación vemos los detalles de un paquete de solicitud de ping. Hay varias cosas importantes dentro de los detalles de ese paquete que pueden llamarnos la atención, comenzando por el tipo y código del paquete. Un tipo 8 significa que es un paquete de Solicitud, mientras que un tipo 0 quiere decir que es un paquete de Respuesta. Cuando estos códigos están alterados o no parecen correctos es señal de actividad sospechosa.

Hay otros dos detalles en este paquete que son útiles para el análisis: timestamp y data. El timestamp (marca de tiempo) puede ser de utilidad para identificar el momento en que se solicitó el ping, lo que puede ser útil para identificar actividad sospechosa en algunos casos. También podemos echar un vistazo a la cadena de datos que normalmente suele ser una cadena aleatoria.


Respuesta ICMP:

En la siguiente imagen podemos ver que el paquete de Respuesta es muy parecido al paquete de Solicitud. Una de las principales diferencias que distinguen un paquete de respuesta es el tipo, en este caso, puedes ver que se trata de un 0, lo que confirma que estamos ante un paquete de Respuesta.

Las mismas técnicas de análisis de los paquetes de Solicitud se pueden aplicar aquí, de nuevo la mayor diferencia será el tipo de paquete.


Análisis Práctico de Paquete ICMP

Ahora que comprendes cómo se forma un paquete ICMP y qué contiene, podemos ponernos manos a la obra con el análisis de paquetes ICMP. Descarga el PCAP adjunto o el archivo dns+icmp.pcapng.gz de la web de Wireshark. Esta captura tiene solo dos protocolos, por lo que te toca decidir si filtrar el protocolo ICMP o no.

No hay comentarios:

Publicar un comentario