Wireshark desde cero:
leer tráfico de red sin ahogarte en paquetes
Análisis de red | unfantasmaenelsistema.com
La primera vez que alguien abre Wireshark en una interfaz activa, la reacción suele ser la misma: una cascada de miles de líneas de colores que avanzan sin parar, con siglas por todas partes y ninguna pista de por dónde empezar. La herramienta más potente para entender lo que pasa en una red también es una de las que más rápido abruma. Y sin embargo, el 90% del trabajo real se hace con cuatro o cinco conceptos y un puñado de filtros.
Este artículo es la introducción que ojalá tuviéramos todos el primer día: qué es capturar frente a analizar, dónde se pone Wireshark para ver algo útil, la diferencia entre los dos tipos de filtro que confunde a todo el mundo, y cómo seguir una conversación de principio a fin sin perderte. Al terminar podrás abrir un archivo de captura y sacar conclusiones, en lugar de mirar la cascada.
Qué aprenderás en este artículo
La diferencia entre capturar tráfico y analizarlo, y por qué importa · Dónde se captura (en tu equipo, en un puerto SPAN, con un TAP) y la línea legal que no se cruza · Filtros de captura (BPF) frente a filtros de visualización: la confusión número uno del principiante · Cómo seguir un flujo TCP o HTTP y leer una conversación completa · Qué miran los analistas en DNS, HTTP y el handshake TLS sin descifrar nada · Las pantallas de Statistics que resumen una captura entera en segundos · tshark y dumpcap para cuando el archivo es demasiado grande para la interfaz gráfica
1. Capturar no es analizar
Son dos fases distintas y conviene separarlas mentalmente desde el principio. Capturar es copiar las tramas que pasan por una interfaz de red y guardarlas, normalmente en un archivo con extensión .pcap o .pcapng. Es una tarea de fontanería: elegir el punto correcto, no perder paquetes, acotar el volumen. Analizar es abrir esa captura y hacerle preguntas: quién habló con quién, qué protocolo usaron, dónde falló la conexión, qué se transfirió.
Wireshark hace las dos cosas, pero son roles diferentes. En muchos entornos la captura la hace otra herramienta o un dispositivo de red, y Wireshark solo se usa para el análisis a posteriori. De hecho es buena práctica: capturar con una herramienta ligera de línea de comandos (dumpcap, tcpdump) y analizar con la interfaz gráfica en tu propio equipo, sin la presión de que la captura se te escape.
El formato pcapng y la portabilidad
Un .pcapng puede llevar dentro comentarios por paquete, varias interfaces y metadatos de captura · Casi cualquier herramienta del ecosistema (Zeek, Suricata, NetworkMiner, Arkime) lee pcap/pcapng, así que una buena captura sirve para muchos análisis distintos, no solo el tuyo
2. Dónde se captura
Una interfaz de red normal solo entrega a Wireshark lo que va dirigido a ese equipo (más el tráfico de difusión y multicast). Para ver el tráfico de otros equipos hay que ponerse en un sitio por el que ese tráfico pase físicamente. Las opciones habituales:
- En el propio host: capturas en tu portátil o en el servidor que te interesa. Es lo más sencillo y lo más frecuente para diagnosticar una aplicación concreta
- Puerto SPAN o mirror del switch: configuras el switch para que copie el tráfico de uno o varios puertos (o de una VLAN entera) hacia un puerto donde conectas la máquina de captura. Puede descartar paquetes si el enlace se satura
- TAP de red: un dispositivo pasivo que se intercala en el cable y duplica el tráfico sin alterarlo ni perder paquetes. Es lo que se usa cuando la captura tiene que ser fiel al 100%
- Modo monitor en wifi: captura tramas 802.11 del aire, incluidas las de otras redes cercanas. Tiene sus propias implicaciones legales y técnicas
Capturar tráfico de una red que no es tuya puede ser delito
Interceptar comunicaciones ajenas sin autorización encaja en los delitos de descubrimiento y revelación de secretos e interceptación de datos informáticos (arts. 197 y siguientes del Código Penal español) · Captura solo en redes de tu propiedad, en equipos que administras, o con autorización escrita y delimitada del responsable de la red (un contrato de auditoría, por ejemplo) · Aunque tengas permiso, el tráfico capturado suele contener datos personales: trátalo como información sensible, guárdalo cifrado y bórralo cuando ya no lo necesites
3. Los dos filtros: captura frente a visualización
Esta es la fuente de confusión más habitual entre quienes empiezan, porque Wireshark tiene dos sistemas de filtrado completamente distintos, con sintaxis distinta, en dos sitios distintos de la ventana.
3.1 Filtros de captura (sintaxis BPF)
Se aplican antes de guardar: deciden qué paquetes entran en la captura y cuáles se descartan para siempre. Usan la sintaxis BPF (Berkeley Packet Filter), la misma de tcpdump. Se escriben en el cuadro que aparece al elegir la interfaz, antes de darle a capturar. Sirven para no llenar el disco cuando solo te interesa una parte del tráfico.
# Sintaxis BPF - filtros de CAPTURA host 192.168.56.10 # solo trafico hacia/desde esa IP net 192.168.56.0/24 # solo esa subred port 53 # solo DNS (puerto 53, TCP o UDP) tcp port 443 # solo HTTPS sobre TCP host 192.168.56.10 and not port 22 # esa IP, excluyendo SSH
3.2 Filtros de visualización (sintaxis de Wireshark)
Se aplican después, sobre una captura ya cargada: no borran nada, solo esconden lo que no coincide para que veas lo que buscas. Usan la sintaxis propia de Wireshark, mucho más rica, que llega hasta cualquier campo de cualquier protocolo. Se escriben en la barra superior de la ventana principal (la que se pone verde cuando el filtro es válido).
# Sintaxis Wireshark - filtros de VISUALIZACION ip.addr == 192.168.56.10 # cualquier paquete con esa IP en origen o destino tcp.port == 443 http.request.method == "POST" dns.qry.name contains "ejemplo" tcp.flags.syn == 1 and tcp.flags.ack == 0 # solo los SYN iniciales tcp.analysis.retransmission # retransmisiones: sintoma de perdida ip.addr == 192.168.56.10 and not tcp.port == 22
| Filtro de captura | Filtro de visualización | |
|---|---|---|
| Cuándo actúa | Antes de guardar | Sobre una captura ya cargada |
| Qué hace | Descarta paquetes para siempre | Oculta, no borra |
| Sintaxis | BPF (la de tcpdump) | Propia de Wireshark |
| Dónde se escribe | Diálogo de selección de interfaz | Barra superior de la ventana principal |
| Ejemplo | tcp port 443 | tcp.port == 443 |
| Para qué sirve | Acotar volumen, no llenar disco | Encontrar la aguja en el pajar |
Regla práctica
En un laboratorio, captura sin filtro (o con un filtro amplio) y luego trabaja con filtros de visualización: siempre puedes afinar más, pero lo que no capturaste no vuelve · Reserva los filtros de captura para cuando el volumen es un problema real: enlaces muy cargados, capturas de días, discos pequeños
4. La ventana: tres paneles y la disección por capas
La ventana principal tiene tres zonas. Arriba, la lista de paquetes: una línea por trama, con columnas de tiempo, origen, destino, protocolo e información resumida. En medio, el detalle del paquete seleccionado: un árbol desplegable que va de la capa de enlace hasta la de aplicación —Ethernet, luego IP, luego TCP o UDP, luego HTTP o DNS o lo que sea—. Abajo, los bytes en crudo de esa trama, en hexadecimal y ASCII.
Ese árbol del panel central es la disección: Wireshark conoce miles de protocolos y descompone cada paquete campo a campo. Si haces clic en un campo del árbol, se resaltan sus bytes exactos abajo. Y cualquier campo se puede convertir en filtro con el botón derecho: Apply as Filter. Así es como se construyen los filtros de visualización sin memorizar la sintaxis: navegando el árbol.
4.1 Columnas y perfiles
Las columnas por defecto se quedan cortas enseguida. Añadir una columna con tcp.stream, con el SNI de TLS o con el nombre consultado en DNS cambia por completo la lectura de una captura. Esas configuraciones —columnas, filtros guardados, reglas de coloreado— se agrupan en perfiles: puedes tener uno para análisis web, otro para VoIP, otro para troubleshooting de TCP, y cambiar entre ellos con un clic en la esquina inferior derecha.
5. Seguir una conversación de principio a fin
Filtrar paquete a paquete está bien para buscar, pero para entender una comunicación lo que se hace es seguir el flujo completo. Botón derecho sobre cualquier paquete de una conexión y Follow -> TCP Stream (o HTTP Stream, o UDP, o TLS). Wireshark abre una ventana con toda la conversación reensamblada y en orden: lo que envió el cliente en un color, lo que respondió el servidor en otro.
- Follow TCP Stream: reconstruye el intercambio de bytes de esa conexión concreta. Para protocolos de texto (HTTP sin cifrar, SMTP, FTP) se lee casi como un chat
- Follow HTTP Stream: además separa cabeceras de cuerpo y descomprime el contenido si venía comprimido con gzip
- Al seguir un flujo, Wireshark pone automáticamente un filtro tcp.stream eq N: quítalo para volver a ver toda la captura
5.1 DNS: casi siempre el primer sitio donde mirar
El filtro dns deja solo las consultas y respuestas de nombres. Cada consulta lleva el nombre pedido (dns.qry.name) y su respuesta, las IPs devueltas. Es la forma más rápida de ver a qué dominios está intentando conectar un equipo, detectar nombres sospechosos, o descubrir por qué una aplicación falla (una resolución que devuelve error o que tarda demasiado).
5.2 HTTP y el handshake TLS
Con http ves peticiones y respuestas sin cifrar: método, URL, código de estado, cabeceras, y a menudo el cuerpo entero. Con tls.handshake.type == 1 aíslas los Client Hello, el primer mensaje de cada conexión cifrada. Ese mensaje va en claro y contiene el SNI (tls.handshake.extensions_server_name): el nombre del servidor al que el cliente quiere conectarse. No descifras nada —el contenido sigue siendo privado— pero sabes con quién habla cada conexión TLS, que muchas veces es toda la información que necesitas.
6. Statistics: la captura entera de un vistazo
Antes de bucear paquete a paquete, el menú Statistics da el mapa general en segundos:
| Herramienta | Para qué sirve |
|---|---|
| Protocol Hierarchy | Qué protocolos hay y qué porcentaje del tráfico ocupa cada uno |
| Conversations | Todos los pares origen-destino, con paquetes y bytes por conversación; ordena por volumen y ves de un golpe quién habla más |
| Endpoints | Lista de equipos que aparecen en la captura, por IP o por MAC |
| IO Graph | Gráfica de tráfico en el tiempo: picos, caídas, patrones periódicos |
| Expert Information | Lo que Wireshark considera anómalo: retransmisiones, conexiones reiniciadas, errores de protocolo, agrupados por severidad |
| HTTP -> Requests | Todas las URLs pedidas, agrupadas por servidor |
File -> Export Objects -> HTTP (o SMB, o FTP-DATA) va un paso más allá: extrae los ficheros que viajaron sin cifrar en la captura —imágenes, documentos, ejecutables— y te los guarda en disco tal cual se transfirieron.
7. Cuando el archivo es demasiado grande: tshark y dumpcap
La interfaz gráfica de Wireshark carga toda la captura en memoria y se atasca con archivos de varios gigabytes. Para esos casos están las herramientas de línea de comandos que vienen en el mismo paquete:
# dumpcap: capturar de forma eficiente, en trozos de 100 MB
dumpcap -i eth0 -b filesize:100000 -w captura.pcapng
# tshark: aplicar un filtro de visualizacion y sacar solo unos campos
tshark -r captura_grande.pcapng -Y "dns" \
-T fields -e ip.src -e dns.qry.name
# Reducir una captura enorme a solo lo relevante antes de abrirla en la GUI
tshark -r captura_grande.pcapng -Y "ip.addr == 192.168.56.10" \
-w captura_filtrada.pcapng
# editcap: partir por tiempo o quedarse con un rango de paquetes
editcap -A "2026-08-27 10:00:00" -B "2026-08-27 10:05:00" \
captura_grande.pcapng ventana.pcapngEl flujo habitual con capturas grandes es: tshark o editcap para recortar a la ventana de tiempo y las IPs que interesan, y solo entonces abrir el resultado en la interfaz gráfica para el análisis fino.
8. Cómo practicar
- Captura tu propio tráfico mientras navegas a un sitio concreto y sigue el rastro: DNS primero, luego el Client Hello con su SNI, luego el flujo TCP
- Descarga capturas de ejemplo del wiki de Wireshark (wiki.wireshark.org/SampleCaptures): hay ejemplos etiquetados de casi cualquier protocolo
- Los retos forenses de red de plataformas como Malware-Traffic-Analysis.net traen un .pcap y preguntas concretas; se resuelven casi enteros con lo de este artículo
- Móntate dos máquinas virtuales en una red aislada (192.168.56.x) y captura el tráfico entre ellas mientras usas servicios de prueba: es tu red, sin problema legal y sin ruido de fondo
Referencias
wireshark.org/docs — Guía de usuario oficial y la Wireshark Certified Analyst como itinerario · wiki.wireshark.org/SampleCaptures — Capturas de ejemplo por protocolo · Malware-Traffic-Analysis.net — Ejercicios de análisis de tráfico con soluciones · ‘Practical Packet Analysis’ (Chris Sanders) — El libro de referencia para empezar · Nuestros artículos de Sysmon y Threat Hunting, para el lado de la detección con esta misma telemetría
Conclusión
Wireshark abruma al principio porque lo enseña todo a la vez, pero el trabajo real cabe en pocas ideas: elegir bien el punto de captura, no confundir el filtro de captura con el de visualización, seguir el flujo en vez de leer paquetes sueltos, y empezar siempre por Statistics para tener el mapa antes de bucear.
Con eso puedes abrir un .pcap desconocido y responder las preguntas que importan —quién habló con quién, qué protocolo, dónde falló, qué se transfirió— sin ahogarte en la cascada. El resto es práctica sobre capturas reales, y ahí es donde de verdad se aprende a leer una red.
unfantasmaenelsistema.com | Seguridad, sistemas y todo lo que no debería funcionar (pero funciona)

