Wireshark es una herramienta de análisis de protocolo que permite la captura, en tiempo real, de paquetes de datos y presenta esa información en un formato legible para los usuarios. El proceso de captura de tráfico se lleva a cabo a través de una tarjeta de red, operando en un modo especial designado de manera promiscua (posibilidad de capturar todos los paquetes, independientemente de la dirección de destino)
Hoy vamos a ver cómo puedes usar el sniffer Wireshark.
1. ¿Para qué necesito un sniffer?
Para muchos, es una herramienta de trabajo poderosa, para otros es una herramienta capaz de capturar contraseñas en la red (preferiblemente en texto plano), algunos datos confidenciales, descifrar claves de red, etc., si estos datos no están encriptados antes para ser enviado a través de la red … maravilloso … pasa en “claro” en la red, perceptible para cualquier usuario. En cuanto a Wireshark (antiguo Ethereal), para mí es simplemente el mejor sniffer gratis!!! Wireshark permite analizar los paquetes recibidos y transmitidos por cualquier interfaz de red, siendo posible aplicar varios tipos de filtros.
2. ¿Cómo comenzar a usar el sniffer Wireshark?
Para comenzar a usar Wireshark, simplemente elige la tarjeta de red (la tarjeta que está actualmente conectada a la red) que queremos escuchar. Se pueden seleccionar múltiples interfaces usando la tecla CTRL
(Windows) o la tecla CMD
(Mac) mientras se hace clic.
- Selecciona
Capture
>Start
o haz clic en el icono de IniciarAzul
- Para detener el proceso, simplemente selecciona
Capture
>Stop
o usa el icono de Detener rojo.
3. Ejercicio
Para probar el Wireshark de inmediato, aquí hay un pequeño ejercicio. Para hacer esto, detectaremos todas las solicitudes y respuestas de DNS y las colocaremos en el campo de filtro: DNS
. Luego abrimos la línea de comando y, usando el comando nslookup
, le preguntamos a nuestro servidor DNS quién es www.esgeeks.com
. Como puedes ver en la siguiente imagen, Wireshark puede capturar toda la información intercambiada entre nuestra máquina y el servidor DNS definido.
Esperamos que hayas disfrutado este primer tutorial sobre Wireshark. Además de poder ver todo el tráfico (cifrado y no cifrado), también podemos entender cómo funcionan nuestras redes de datos. Hoy solo podemos esperar sus comentarios y sugerencias para los próximos tutoriales.
4. Esquema de color en líneas
Cuando un usuario ve la operación del Wirehark por primera vez, se preguntará qué significan los colores en la salida. En general y por defecto, las líneas significan:
- Verde: HTTP
- Morada claro: tráfico TCP
- Azul claro: tráfico UDP, DNS
- Negro: segmentos TCP problemáticos
Si deseas ver el esquema de color completo del Wirehark, solo dirígete a View
-> Coloring Rules
.
Follow TCP Stream
Una de las características interesantes de Wireshark es Follow TCP Stream. Esta característica te permite ver flujos TCP completos, es decir, con esta opción, el usuario podrá seguir una comunicación completa desde el primer SYN hasta el FIN-ACK.
5. Cómo usar los filtros en Wireshark
¿Qué son los filtros? Como su nombre lo indica, los filtros te permiten seleccionar, de un conjunto de información, lo que deseas. Podemos filtrar por protocolo, dirección de red, puerto, dirección MAC, etc. Aquí hay algunos ejemplos:
- Filtrar por protocolo: Para filtrar por protocolo, simplemente escriba en el campo Filtro qué protocolo filtrar.
Consideremos que vamos a filtrar solo HTTP, aquí hay un ejemplo de un resultado.
También ten en cuenta que es posible utilizar operadores lógicos. Esto nos permite mejorar el filtro en caso de que queramos información de más de un protocolo.
Consideremos, por ejemplo, que queremos información de los protocolos HTTP e ICMP. Para hacer esto, solo usa el operador lógico ||
.
- Filtrar por IP: En el caso de las búsquedas de IP, podemos, por ejemplo, buscar por dirección de origen (
ip.src
) y dirección de destino (ip.dst
).
¿Qué sucede si el usuario desea excluir solo una determinada IP de la búsqueda? Para hacer esto, simplemente usa el operador:
ip.src!=8.8.4.4
- Filtrar por puerto: Filtrar por puerto es similar a los ejemplos anteriores. Simplemente podemos filtrar a través de un puerto TCP (por ejemplo,
tcp.port
) pero también podemos ser más específicos y filtrar por puerto de origen (tcp.srcport
) o puerto de destino (tcp.dstport
).
Como podemos ver en la siguiente imagen, el protocolo BitTorrent tiene una tasa de ocupación del orden del 0,50% (valor relacionado con el período de captura).
Si queremos saber la dirección IP de todas las máquinas que funcionan como pares, simplemente dirígete a Statistics
> Endpoints
y luego haz clic en la pestaña IPv4
.
6. Protocolo de enlace de tres vías
TCP es el protocolo más utilizado porque proporciona una garantía en la entrega de todos los paquetes entre una PC emisora y una PC receptora. Dentro de un segmento TCP hay varios campos y destacaré los campos ACK y SYN que se utilizan al comienzo de una comunicación TCP.
- SYN: si está activo, indica una solicitud para establecer una conexión y la confirmación de la conexión;
- ACK: si está activo, se debe interpretar el campo Número de confirmación;
Pero, ¿qué es el apretón de manos de tres vías (Three Way Handshake)?
Cuando se establece una conexión entre el emisor y el receptor, hay un “acuerdo previo” llamado Three Way Handshake (SYN, SYN-ACK, ACK).
- La sesión entre un cliente y un servidor siempre es iniciada por el cliente, quien envía una solicitud de conexión de paquetes con el indicador SYN habilitado.
- El cliente también envía un número secuencial aleatorio.
- El servidor responde con un paquete SYN–ACK con su propio número secuencial aleatorio y un número de confirmación (igual al número secuencial del cliente +1)
- Finalmente, el cliente responde con un paquete ACK con el número de confirmación (igual que el número de secuencia del servidor +1)
En la práctica, tenemos más o menos esto …Tomemos un ejemplo práctico. Luego consideraremos un enlace desde nuestra máquina al sitio web de Pplware.
- Primera fase (SYN): El cliente (192.168.1.102) envía una solicitud de sincronización (SYN) a EsGeeks.com (5.254.44.39). Este segmento tiene un número de secuencia de 0 (cero).
- Segunda fase (SYN, ACK): El servidor responde con un paquete SYN, ACK, donde ACK=1 (igual al número secuencial del cliente +1)
- Tercera fase (ACK): Finalmente, el cliente responde con un paquete ACK=1 y también envía el número de sincronización (Seq=1), igual al número de secuencia +1 del servidor.
Para facilitar la búsqueda de registros, puede usar los siguientes filtros:
Filtro 1: tcp.flags.syn == 1 && tcp.flags.ack == 0
Filtro 2: tcp.flags.syn == 1 && tcp.flags.ack == 1
Filtro 3: tcp.seq == 1 && tcp.ack == 1 && tcp.len == 0 && !(tcp.flags.push == 1)
Espero que hayas disfrutado este tutorial sobre Wireshark. Sólo puedo esperar tus comentarios y sugerencias para los próximos tutoriales.
Artículos recomendados:
- 10+ Comandos de Red para la terminal Linux
- CyberScan: Kit de herramientas forenses para Redes
- Escanear puertos abiertos con: Ss, Netstat, Lsof y Nmap
¿Te ha gustado este artículo? Sigue este blog en su fanpage de Facebook, Twitter, Instagram y/o YouTube para que no te pierdas del mejor contenido informático y hacking!