La siguiente actividad está pensada para su desarrollo en un bloque de auxiliar y un poco más (~3 horas), en grupos de dos personas como máximo. Sin embargo, se les la posibilidad de entregarla hasta el próximo martes 21 de julio, a las 23:59 hrs, sin descuento por ello (El plazo es un poco mayor a 7 días debido al feriado e interferiado).
Al igual que en el laboratorio anterior, antes de partir, recuerden leer la sección de reglas de laboratorios.
Para el desarrollo completo de este laboratorio, es necesario que se encuentre conectado a la VPN del CEC. Siga las instrucciones de la Auxiliar 5 para esto.
En esta pregunta compararemos tres distintos servicios conocidos por ser propensos a ataques de amplificación, todos corriendo en el dominio lab4.cc5312.xor.cl
:
stats
get
y set
usados en conjunto.(1 punto por servicio) Para cada servicio, realicen las siguientes tareas:
len()
.Para cada servicio y comando, les recomendamos revisar la documentación enlazada en cada nombre para entender los cómo funcionan y contestan. También tienen a su disposición la documentación de la libería de Scapy.
Consejo para Memcached: Entiendan bien para qué sirve y cómo se utiliza el servicio Memcached. Revisen solamente el modo de uso de los comandos stats
y el uso conjunto de los comandos get
y set
, definidos acá (no hay que leer el documento entero, solo hay que entender las definiciones de los comandos mencionados).
Consejo para DNS: Enfóquense en las consultas de los tipos expuestos en la lista de arriba solamente. Consideren tanto los límites máximos de paquetes UDP según el RFC1035 (Sección 4.2.1), así como también las formas de maximizar la cantidad de RRs o el largo de respuestas en el protocolo.
Consejo para NTP: Consideren solamente el comando MONLIST
, tal cual se usa en el código de ejemplo, e investiguen a partir de esta documentación cómo podrían maximizar el tamaño de la respuesta.
En esta pregunta atacaremos a un cliente en la IP 172.17.69.106
que resuelve RRs de tipo A sobre el dominio spoofed.lab4.cc5312.xor.cl
contra un resolver DNS dentro de la red del DCC cada 2 segundos. Sin embargo, las consultas DNS son realizadas siempre con el puerto de origen UDP 55312
, un ID de request DNS entre 1
y 1024
, y sin revisar que la IP de origen sea la correcta. Luego, el cliente se conecta vía HTTP
a la url http://<ip-resuelta>:5312?flag=<f>
, donde f
es un código TOTP.
Su objetivo es robar el código TOTP para un momento determinado. Para demostrar su obtención, necesita adjuntar tanto el código TOTP como el momento exacto de su obtención.
(1 punto) Expliquen la factibilidad de un ataque de tipo DNS Spoofing si cada uno de estos problemas de implementación no existiera (manteniendo los otros problemas de implementación):
(1 punto) Teniendo en cuenta el impacto de cada problema de implementación mencionado anteriormente, creen un script basado en Scapy que permita realizar un ataque de DNS Spoofing sobre las respuestas del cliente al dominio consultado, cambiando la IP del dominio spoofed.lab4.cc5312.xor.cl
por la IP de ustedes en la VPN del CEC.
Consejo: Usen el código de ejemplo (La función de paquetes DNS) enlazado al inicio de este enunciado y modifíquenlo para realizar este ataque. Pueden aprovechar de realizar una sola consulta DNS ) (la pueden reutilizar durante todo el ataque) a un resolver accesible a ustedes (pueden usar 1.1.1.1
(Google), 8.8.8.8
(Cloudflare), 172.17.66.9
(Resolver dentro de la VPN) y luego modificar los campos correspondientes en la respuesta (IP destino, ID de consulta DNS, IP asociada al dominio consultado) para hacer el ataque.
Consejo 3: El código TOTP está compuesto de 6 dígitos y cambia cada 30 segundos, por lo que deben registrar la hora de su obtención lo más cerca posible al momento en el que reciben el mensaje de la víctima. Les recomendamos automatizarlo en su script de Python.