Quick Tips – Fuerza bruta a tokens JWT

Facebooktwitterlinkedinmail

El uso de JSON Web Tokens (JWT) se ha extendido mucho debído a la facilidad que nos ofrecen para identificar y asignar privilegios.

Los tokens están compuestos por 3 partes. La cabecera, el contenido y la firma.

En la cabecera veremos el algoritmo utilizado para la firma, en el contenido la identificación, los permisos y normalmente un timestamp y por último la firma que puede ser generada mediante un secreto o utilizando clave privada/pública.

jwt

En el caso de localizar un JWT durante un pentest, es importante verificar que el token es robusto. Por lo tanto, si descubrimos un token que utiliza un secreto en la firma deberemos realizar un ataque de fuera bruta para comprobar que el secreto no puede ser descubierto. De serlo, seríamos capaces de generar nuestros propios tokens, comprometiendo de este modo la seguridad del sitio que utilice estos tokens.

Para relizar fuerza bruta a tokens JWT podemos utilizar hashcat de la siguiente manera:

.\hashcat64.exe -m 16500 -a 0 .\jwt.txt .\rockyou.txt -r .\kamaji34K.rule.txt

Con el parámetro -m indicaremos que es un token JWT, con el parámetro -a indicaremos que el tipo de ataque es Straight, después en el fichero jwt.txt tendremos nuestro token JWT y utilizaremos como diccionario rockyou y las reglas kamaji34K presentadas en rootedcon.

Además de esta verificación es importante verificar que:

  • El algoritmo NONE no puede ser utilizado.
  • Los tokens no pueden ser robados.
  • Es posible para un usuario invalidar el token.
  • En el payload no se almacena información sensible.
  • El token no es guardado de forma insegura en el navegador.

Quick Tips – Fuerza bruta con Brutespray

Facebooktwitterlinkedinmail

Uno de los pasos fundamentales al realizar un test de intrusión es verificar si los servicios protegidos con contraseña utilizan contraseñas débiles. Cuando esta prueba se debe realizar en una red grande y con muchos servicios esto puede convertirse en un trabajo complicado. Por esto queremos presentar en este post Brutespray, una herramienta que nos ayudará con esta tarea.

Brutespray es una herramienta escrita en python por  Shane Young/@x90skysn3k y Jacob Robles/@shellfail. Esta automatiza ataques de fuerza bruta a diferentes servicios utilizando medusa. Este ataque probará diferentes usuarios y contraseñas y nos indicará si alguna de las combinaciones es correcta.

Leer más