Fuerza bruta determinada por cookies en tecnologías ASP y ASP.NET con la ayuda de Python

Las tecnologías basadas en ASP, ASP.NET y Microsoft (¿Microsoft IIS?), son ampliamente usadas, y las prácticas de desarrollo también. Me ha tocado ver en reiteradas oportunidades, sesiones basadas en cookies de este tipo:

Y bueno, no había tenido el tiempo suficiente para cuestionar tal cosa, así que me fui a Google y encontré esto:

Son referencias antiguas (sorry la ignorancia), pero con esos datos llegué a esto otro:

Mi primera conclusión: no sé programar en ASP (cueck). Pero podría de todas maneras, intentar hacer fuerza bruta, así mato dos pájaros de un tiro; la generación de posibles cookies válidas y consecución de múltiples requests (jejeje, si hay que pegarle, le damos igual, ¿o no?).

Generación aleatoria de cookies con el módulo string de Python

Tengo que ser honesto, no conocía este módulo, pese a que es built-in, un poco de lectura me ayudó:

El módulo random ya lo he ocupado varias veces, así que después de pensar un rato y Googlear, el resultado:

Entonces, ya con esto listo, aumento el rango según la cantidad de cookies aleatorias que deseo generar (10000 por ejemplo), guardo el print en una variable, y agrego unas líneas más para escribir las cookies en un .txt, con el cual ya es posible intentar reproducir un ataque de fuerza bruta con el intruder de Burp Suite:

Fuerza bruta con Python (string+random+requests)

Sin embargo, soy un poco reacio al intruder de Burp Suite, principalmente porque no sé usarlo en profundidad y prefiero invertir tiempo en programar (además, ya tengo varios scripts por ahí que hacen cosas parecidas, sería copiar-pegar-editar).

Después de un rato y terminar de almorzar, el resultado:

Si alguien quiere usarlo, modificarlo, mejorarlo para sus pruebas de seguridad:

Uso del Script (update)

Esto es una actualización, ya que me pidieron detallar lo siguiente:

  • El script está pensado para quienes tienen conocimientos básicos de programación con Python
  • Línea 12: incrementar el rango de 3 a la cantidad de requests que se desea probar
  • Línea 14: la cookie con la cual está basado el script es de 24 caracteres de longitud, se debe modificar según el caso
  • Línea 16: va sólo con un ejemplo de parámetro POST, lo editan ubicando los parámetros que sean necesarios o lo quitan
  • Línea 19 a la 27: las cabeceras originales del request que deben capturar con algún proxy
  • Python3 br_cookie_asp.py
  • En otro momento podría implementar argparse.
  • Si necesitan ayuda, basta con que me contacten y, puedo indicarles cómo editar el script en profundidad.
  • Gracias por solicitar estos detalles, feliz de aportar.