Hubo algunos desafíos específicos de seguridad cibernética (Cyber Cube 2018, GE). En una de las tareas, el objetivo era obtener acceso a algún archivo específico incluido por el servidor.
Después de resolver con éxito algunos pasos, había una cadena codificada en base64:
bmFtZTogZXRlcm5hbHJvbWFuY2UsIHByb3RvY29sOiBkbnMoNTMvdGNwKQo =
La decodificación de esta cadena dio el siguiente resultado:
'nombre: eternalromance, protocolo: dns (53 / tcp) \ n'
Me di cuenta de que la única forma de acceder al servidor era realizar un ataque de DNS.
Los creadores de este desafío dieron una pista de que elegir un puerto TCP sobre UDP para DNS podría causar ciertas vulnerabilidades.
No tengo experiencia en sistemas de nombres de dominio, pero sé que generalmente el DNS usa el puerto UDP 53 para atender solicitudes: las consultas de DNS requieren una solicitud de datagrama UDP única y requieren una respuesta de datagrama UDP única. Las principales razones para elegir el protocolo TCP es responder con datos que son más grandes que 512 bytes (aunque algunas implementaciones de DNS pueden permitir respuestas de datagramas UDP hasta 4096 bytes por lo que sé), y para las transferencias de zona DNS.
¿Pero qué vulnerabilidades puede tener DNS cuando TCP se usa sobre UDP?
Gracias.