Inseguridades de UUID

tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Informaci贸n B谩sica

Los Identificadores 脷nicos Universales (UUID) son n煤meros de 128 bits utilizados para identificar informaci贸n de manera 煤nica en sistemas inform谩ticos. Los UUID son esenciales en aplicaciones donde se requieren identificadores 煤nicos sin coordinaci贸n central. Se utilizan com煤nmente como claves de base de datos y pueden referirse a varios elementos como documentos y sesiones.

Los UUID est谩n dise帽ados para ser 煤nicos y dif铆ciles de adivinar. Est谩n estructurados en un formato espec铆fico, divididos en cinco grupos representados como 32 d铆gitos hexadecimales. Existen diferentes versiones de UUID, cada una con diferentes prop贸sitos:

  • UUID v1 es basado en el tiempo, incorporando la marca de tiempo, la secuencia de reloj y el ID del nodo (direcci贸n MAC), pero puede potencialmente exponer informaci贸n del sistema.
  • UUID v2 es similar a v1 pero incluye modificaciones para dominios locales (no ampliamente utilizado).
  • UUID v3 y v5 generan UUID utilizando valores hash de espacio de nombres y nombre, siendo v3 el que utiliza MD5 y v5 el que utiliza SHA-1.
  • UUID v4 se genera casi completamente de manera aleatoria, proporcionando un alto nivel de anonimato pero con un ligero riesgo de duplicados.

tip

Tenga en cuenta que la versi贸n y subversi贸n del UUID generalmente aparece en la misma posici贸n dentro del UUID. Por ejemplo en:
12345678 - abcd - 1a56 - a539 - 103755193864
xxxxxxxx - xxxx - Mxxx - Nxxx - xxxxxxxxxxxx

  • La posici贸n de la M indica la versi贸n del UUID. En el ejemplo anterior, es UUID v1.
  • La posici贸n de la N indica la variante del UUID.

Ataque Sandwich

El "Ataque Sandwich" es un tipo espec铆fico de ataque que exploita la predictibilidad de la generaci贸n de UUID v1 en aplicaciones web, particularmente en caracter铆sticas como restablecimientos de contrase帽a. UUID v1 se genera en funci贸n del tiempo, la secuencia de reloj y la direcci贸n MAC del nodo, lo que puede hacerlo algo predecible si un atacante puede obtener algunos de estos UUID generados cerca en el tiempo.

Ejemplo

Imagina una aplicaci贸n web que utiliza UUID v1 para generar enlaces de restablecimiento de contrase帽a. As铆 es como un atacante podr铆a explotar esto para obtener acceso no autorizado:

  1. Configuraci贸n Inicial:
  • El atacante tiene control sobre dos cuentas de correo electr贸nico: `attacker1@acme.com` y `attacker2@acme.com`.
  • La cuenta de correo electr贸nico del objetivo es `victim@acme.com`.
  1. Ejecuci贸n:
  • El atacante inicia un restablecimiento de contrase帽a para su primera cuenta (`attacker1@acme.com`) y recibe un enlace de restablecimiento de contrase帽a con un UUID, digamos `99874128-7592-11e9-8201-bb2f15014a14`.
  • Inmediatamente despu茅s, el atacante inicia un restablecimiento de contrase帽a para la cuenta de la v铆ctima (`victim@acme.com`) y luego r谩pidamente para la segunda cuenta controlada por el atacante (`attacker2@acme.com`).
  • El atacante recibe un enlace de restablecimiento para la segunda cuenta con un UUID, digamos `998796b4-7592-11e9-8201-bb2f15014a14`.
  1. An谩lisis:
  • El atacante ahora tiene dos UUID generados cerca en el tiempo (`99874128` y `998796b4`). Dada la naturaleza secuencial de los UUID basados en el tiempo, el UUID para la cuenta de la v铆ctima probablemente caer谩 entre estos dos valores.
  1. Ataque de Fuerza Bruta:
  • El atacante utiliza una herramienta para generar UUID entre estos dos valores y prueba cada UUID generado intentando acceder al enlace de restablecimiento de contrase帽a (por ejemplo, `https://www.acme.com/reset/<generated-UUID>`).
  • Si la aplicaci贸n web no limita adecuadamente la tasa o bloquea tales intentos, el atacante puede probar r谩pidamente todos los UUID posibles en el rango.
  1. Acceso Obtenido:
  • Una vez que se descubre el UUID correcto para el enlace de restablecimiento de contrase帽a de la v铆ctima, el atacante puede restablecer la contrase帽a de la v铆ctima y obtener acceso no autorizado a su cuenta.

Herramientas

Referencias

tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks