¿Qué es PCAP?
PCAP (Packet CAPture) es el formato de archivo estándar de facto para registrar tráfico de red. Un archivo PCAP es una captura binaria de paquetes de red sin procesar — cada trama que cruzó una interfaz de red durante una sesión de grabación, con marcas de tiempo precisas medidas en resolución de microsegundos (PCAP) o nanosegundos (PCAPNG).
Los archivos PCAP son generados por herramientas como Wireshark, tcpdump, tshark y las bibliotecas libpcap/WinPcap/Npcap que las sustentan. Son el lenguaje universal del análisis de red: los ingenieros de seguridad capturan tráfico buscando intrusiones, los desarrolladores depuran implementaciones de protocolos, los ingenieros de red diagnostican problemas de conectividad, y los investigadores académicos reproducen tráfico realista en entornos de laboratorio — todos usando archivos PCAP.
PCAP vs PCAPNG
Existen dos formatos relacionados: el PCAP original y el más nuevo PCAPNG (PCAP Next Generation, estandarizado como RFC 9443 en 2023).
| Característica | PCAP | PCAPNG |
|---|---|---|
| Año introducido | 1988 (libpcap) | 2004 (borrador) / 2023 (RFC 9443) |
| Múltiples interfaces | No | Sí |
| Comentarios por paquete | No | Sí |
| Estadísticas de interfaz | No | Sí |
| Resolución de tiempo | Microsegundos | Nanosegundos |
| Extensión | .pcap |
.pcapng o .npcap |
PCAP sigue siendo el formato más ampliamente soportado. PCAPNG es el formato preferido cuando necesitas los metadatos más ricos (múltiples interfaces, comentarios por paquete, timestamps de alta resolución, estadísticas de captura).
Estructura de un archivo PCAP
Un archivo PCAP tiene una estructura simple:
Cabecera Global (24 bytes)
├── Número mágico (4 bytes) — 0xA1B2C3D4
├── Versión Mayor (2 bytes) — siempre 2
├── Versión Menor (2 bytes) — siempre 4
├── Longitud de instantánea (4 bytes) — bytes máx. capturados por paquete
└── Tipo de capa de enlace (4 bytes) — ej. 1=Ethernet, 105=IEEE 802.11 WiFi
Registro de paquete (longitud variable)
├── Segundos de marca de tiempo (4 bytes)
├── Microsegundos de marca de tiempo (4 bytes)
├── Longitud capturada (4 bytes) — bytes almacenados en el archivo
├── Longitud original (4 bytes) — tamaño real del paquete
└── Datos del paquete (bytes de Longitud capturada)
Capturar tráfico con tcpdump
tcpdump es la herramienta CLI estándar para capturar archivos PCAP en Linux/macOS:
# Capturar todo el tráfico en eth0 y escribir en archivo
tcpdump -i eth0 -w captura.pcap
# Capturar con filtro (solo HTTP y HTTPS)
tcpdump -i eth0 -w trafico_web.pcap 'port 80 or port 443'
# Capturar solo los primeros 1000 paquetes
tcpdump -i eth0 -c 1000 -w muestra.pcap
# Capturar solo consultas DNS
tcpdump -i any -w dns.pcap 'udp port 53'
# Tráfico hacia/desde una IP específica
tcpdump -i eth0 -w host.pcap 'host 192.168.1.100'
# Leer un archivo PCAP existente
tcpdump -r captura.pcap -n 'tcp port 80'
Analizar archivos PCAP con tshark
tshark es el equivalente de línea de comandos de Wireshark:
# Listar todas las conversaciones (pares de IP)
tshark -r captura.pcap -q -z conv,ip
# Extraer todos los hosts HTTP visitados
tshark -r captura.pcap -Y 'http.request' -T fields -e http.host -e http.request.uri
# Extraer nombres de consultas DNS
tshark -r captura.pcap -Y 'dns.qry.name' -T fields -e dns.qry.name | sort -u
# Contar paquetes por protocolo
tshark -r captura.pcap -q -z io,phs
# Filtrar por IP y guardar subconjunto
tshark -r captura_grande.pcap -Y 'ip.addr == 10.0.0.5' -w filtrado.pcap
Análisis en Python con Scapy
# pip install scapy pyshark
# Scapy — análisis de paquetes
from scapy.all import rdpcap, IP, TCP
paquetes = rdpcap('captura.pcap')
for pkt in paquetes:
if IP in pkt and TCP in pkt:
print(f"{pkt[IP].src}:{pkt[TCP].sport} -> {pkt[IP].dst}:{pkt[TCP].dport}")
# PyShark — interfaz Python para tshark
import pyshark
cap = pyshark.FileCapture('captura.pcap', display_filter='http')
for pkt in cap:
if hasattr(pkt, 'http'):
print(pkt.http.host)
cap.close()
Casos de uso en seguridad
Los archivos PCAP son fundamentales en las operaciones de seguridad:
Reproducción para detección de intrusiones: el tráfico capturado se reproduce contra motores IDS/IPS (Snort, Suricata) para probar conjuntos de reglas sin tráfico real.
Análisis de malware: capturar el tráfico de red mientras se ejecuta una muestra de malware en un sandbox revela servidores C2 (comando y control), destinos de exfiltración y protocolos utilizados.
Análisis forense de red: reconstruir lo que ocurrió en una red durante un incidente de seguridad usando capturas históricas. Zeek (antes Bro) analiza archivos PCAP y produce resúmenes de registro de alto nivel.
CTF Forense: las competiciones Capture the Flag casi siempre incluyen retos de análisis PCAP donde los participantes extraen mensajes ocultos o credenciales de capturas de red.
Convertir y reducir archivos PCAP
# Convertir PCAP a PCAPNG
editcap -F pcapng captura.pcap captura.pcapng
# Convertir PCAPNG a PCAP
editcap -F pcap captura.pcapng captura.pcap
# Dividir una captura grande en fragmentos de 25 MB
editcap -c 100000 grande.pcap fragmento_.pcap
# Eliminar paquetes duplicados
editcap -d captura.pcap sin_duplicados.pcap
# Combinar múltiples archivos PCAP ordenados por marca de tiempo
mergecap -w combinado.pcap captura1.pcap captura2.pcap captura3.pcap
Consideraciones de privacidad y legales
Los archivos PCAP capturan todo — contraseñas transmitidas por protocolos sin cifrar (HTTP, FTP, Telnet), contenidos de correos electrónicos, valores de cookies y cualquier dato personal sin cifrar que fluya por la red.
- Nunca captures tráfico en redes que no posees o administras sin autorización — es ilegal en la mayoría de jurisdicciones bajo leyes de fraude informático e interceptación de comunicaciones.
- Sanear antes de compartir: usa filtros BPF de
editcapotcpdumppara eliminar datos sensibles antes de compartir capturas para depuración. - RGPD: en Europa, almacenar archivos PCAP con tráfico de usuarios puede constituir tratamiento de datos personales. Se aplican políticas de retención y salvaguardias apropiadas.
Consideraciones de tamaño
Los archivos PCAP crecen rápidamente. Un enlace de 1 Gbps completamente capturado produce aproximadamente 7,5 GB por minuto. Estrategias prácticas:
- Usa filtros BPF para capturar solo el tráfico relevante
- Usa longitudes de instantánea cortas (ej. 96 bytes para capturas de solo cabeceras)
- Rota los archivos de captura con división basada en tiempo o tamaño
- Comprime con gzip — PCAP se comprime 10:1 o mejor para tráfico típico
Conversiones relacionadas
Conversiones frecuentes del catálogo: