Triaje forense del envenenamiento de caché DNS en hardware heredado. Incluye análisis de PCAP de inyecciones no solicitadas de registros de 839 bytes, mapeo con CVE-2025-40778 y mitigación mediante Unbound reforzado (DoT) en Arch Linux.
Un ejercicio educativo de análisis de paquetes y endurecimiento de resolución completado en una estación de trabajo Arch Linux.
Alcance: Este repositorio es un proyecto de aprendizaje. La captura incluida es útil para practicar la inspección de DNS y ARP, pero no demuestra por sí sola un ataque de envenenamiento de caché en vivo, hardware malicioso, la explotación de un CVE específico o una conexión causal con una métrica de enrutamiento de NetworkManager.
Mi primer informe trató varias observaciones como causas confirmadas. Eso era demasiado rotundo. Una trama DNS de 839 bytes no es automáticamente malformada o maliciosa, y DNS sobre TLS protege el tráfico DNS hacia el resolutor upstream configurado; no detiene la suplantación de ARP ni todos los ataques de Capa 2/3.
La versión revisada conserva las partes útiles del laboratorio y, a la vez, separa:
Esa distinción forma parte de un buen trabajo de incidentes. Es mejor acotar una conclusión que afirmar más de lo que la evidencia respalda.
tshark.tsharkdigLas versiones exactas de los paquetes deberían registrarse cuando se reejecute el laboratorio. El repositorio actual no contiene suficientes metadatos de versiones para atribuir el tráfico a una vulnerabilidad de producto.
| Ruta | Propósito |
|---|---|
evidence/incident_triage_snippet.pcap | Pequeña muestra de captura de paquetes utilizada para la inspección de DNS/ARP |
evidence/wireshark_anomoly.png | Nombre de captura de pantalla heredado, conservado por el historial del repositorio; anomaly es la ortografía correcta |
reports/ANALYSIS.md | Revisión basada en evidencia y limitaciones |
scripts/checkdns.sh | Compara la salida del resolutor y etiqueta claramente el transporte |
configs/unbound.conf | Ejemplo de configuración de reenvío de Unbound mediante DNS sobre TLS |
logs/remediation_validation.txt | Ejemplo de salida de validación con conclusiones corregidas |
CVE_RESEARCH.md | Explica por qué la evidencia disponible no respalda una atribución a un CVE |
sha256sum evidence/incident_triage_snippet.pcap
capinfos evidence/incident_triage_snippet.pcap
Guarda el hash y los metadatos de la captura junto con tus notas. No llames a la captura "evidencia completa de incidente"; es un fragmento.
tshark -r evidence/incident_triage_snippet.pcap -Y arp \
-T fields -e frame.number -e frame.time_relative \
-e arp.opcode -e arp.src.proto_ipv4 -e arp.src.hw_mac \
-e arp.dst.proto_ipv4 -e arp.dst.hw_mac
Busca afirmaciones de IP a MAC repetidas o conflictivas. Un conflicto es una pista para investigar, no una prueba automática de un atacante. Verifica si las direcciones son valores sintéticos de laboratorio, si un dispositivo cambió legítimamente y si el momento temporal respalda la hipótesis.
tshark -r evidence/incident_triage_snippet.pcap -Y dns \
-T fields -e frame.number -e frame.time_relative \
-e ip.src -e ip.dst -e udp.srcport -e udp.dstport \
-e dns.id -e dns.flags.response -e dns.qry.name \
-e dns.count.answers -e frame.len
Filtros de seguimiento útiles:
dns && frame.len == 839
dns.flags.response == 1
dns.qry.name == "."
arp.duplicate-address-detected || arp.duplicate-address-frame
El tamaño del paquete por sí solo no es un veredicto. Los tamaños de las respuestas DNS pueden variar por el número de registros, EDNS, DNSSEC y el comportamiento del transporte. Inspecciona los registros decodificados y compáralos con una línea base conocida como buena.
chmod +x scripts/checkdns.sh
./scripts/checkdns.sh example.com
El script etiqueta correctamente una consulta directa dig @1.1.1.1 como DNS en texto plano en el puerto 53. Cuando kdig está disponible, también realiza una prueba TLS separada.
Revisa configs/unbound.conf, adapta las rutas de los certificados para el sistema local y valida antes de usar:
sudo unbound-checkconf configs/unbound.conf
sudo ss -tnp | grep ':853'
dig @127.0.0.1 example.com
Una consulta exitosa más una conexión establecida hacia TCP/853 respalda la conclusión más acotada de que Unbound está reenviando al upstream configurado mediante TLS. No demuestra que un problema no relacionado de ARP o de enrutamiento haya sido eliminado.
Usa herramientas de captura de paquetes y pruebas de red solo en sistemas y redes que sean tuyos o para los que tengas autorización de prueba. Revisa las capturas en busca de direcciones privadas, nombres de host, tokens, credenciales e información personal antes de publicarlas.