Apuntes de Wireshark
🔍 Filtrado:
Analizar tráfico sin filtros es imposible. Hay dos tipos de filtros:
Filtros de captura (Capture Filters)
Se aplican antes de empezar a capturar, sirven para reducir el tamaño del archivo de captura, descartando el tráfico que no te interesa. Usan una sintaxis diferente (BPF).
- Capturar solo tráfico de una IP:
host 192.168.1.50 - Capturar solo tráfico de un puerto:
port 443 - Tráfico desde o hacia una red:
net 192.168.1.0/24
Filtros de pantalla (Display Filters)
Se aplican después de capturar, en la barra verde de arriba, no eliminan paquetes, solo ocultan los que no cumplen el criterio. Es lo que más usarás como analista.
Operadores Lógicos
- Igualdad:
==(ej.ip.addr == 1.1.1.1) - Distinto:
!=(ej.tcp.port != 443) - Y Lógico:
ando&& - O Lógico:
oro|| - Contiene:
contains(ej.http.host contains "google")
⚙️ Filtros de pantalla utiles
Por IP
- Tráfico desde o hacia una IP:
ip.addr == 8.8.8.8 - Tráfico desde una IP origen:
ip.src == 8.8.8.8 - Tráfico hacia una IP destino:
ip.dst == 8.8.8.8
Por protocolo
- Mostrar solo un protocolo:
dns,http,smb,ftp,icmp
Por puerto (TCP o UDP)
- Tráfico en un puerto específico:
tcp.port == 80oudp.port == 53 - Tráfico originado en un puerto:
tcp.srcport == 1337
Por flags de TCP (detectar escaneos)
- Paquetes SYN (inicio de conexión):
tcp.flags.syn == 1 and tcp.flags.ack == 0 - Paquetes RST (conexión reseteada):
tcp.flags.reset == 1 - Paquetes FIN (fin de conexión):
tcp.flags.fin == 1
🚀 Trucos prácticos para Analistas
Seguir un flujo (Follow TCP Stream)
Permite reconstruir una conversación completa (ej. una sesión web HTTP).
- En la lista de paquetes, busca una conversación que te interese (ej. un paquete HTTP).
- Haz clic derecho sobre el paquete.
- Selecciona Follow > TCP Stream.
- Se abrirá una nueva ventana con toda la conversación reensamblada en texto plano.
Exportar objetos (Ej. Ficheros de una web)
Si en el tráfico que analizas se ha descargado un fichero a través de HTTP (sin cifrar), puedes extraerlo directamente desde Wireshark.
- Ve al menú File > Export Objects > HTTP...
- Wireshark te mostrará una lista de todos los ficheros (imágenes, ejecutables, etc.) que ha encontrado en el tráfico.
- Selecciona el que te interese y haz clic en "Save As".
Ejemplos para Threat Hunting
1. Buscar peticiones HTTP POST
Útil para ver qué datos se están enviando desde un equipo hacia un servidor web (posible exfiltración de datos).
http.request.method == "POST"
2. Detectar un posible escaneo de puertos (Nmap SYN Scan)
Un atacante envía muchos paquetes SYN a diferentes puertos para ver cuáles están abiertos, un equipo normal no haría esto.
tcp.flags.syn == 1 and tcp.flags.ack == 0 and tcp.window_size <= 1024
3. Ver todas las consultas DNS
Muy útil para detectar comunicaciones C2 de DNS.
dns.qry.name
4. Encontrar credenciales en texto plano (FTP/HTTP Basic Auth)
Busca paquetes que contengan la palabra "password" o "pass", solo funciona en protocolos sin cifrar, algo no tan raro aún.
tcp contains "password" or tcp contains "pass"