Técnicas de Adivinación de Contraseñas y Uso de CUP en Python

Clase 10 de 17Curso de Hacking: Escalada de Privilegios

Resumen

¿Qué es el password guessing?

El password guessing es una técnica utilizada para adivinar contraseñas y así obtener acceso a sistemas o aplicaciones. Existen varias estrategias para llevar a cabo este tipo de ataque, como identificar tecnologías y sus versiones para encontrar contraseñas por defecto, aprovechar las contraseñas no configuradas por los usuarios, realizar ataques de fuerza bruta o diccionario, y utilizar información de la víctima para generar contraseñas más precisas.

¿Qué es un ataque de fuerza bruta?

Un ataque de fuerza bruta consiste en probar todas las combinaciones posibles de una contraseña hasta encontrar la correcta. Aunque es un método efectivo, puede ser extremadamente tardado debido al amplio número de posibilidades. Sin embargo, la rapidez de estos ataques puede mejorar utilizando herramientas que optimicen el proceso.

¿Cómo funciona un ataque de diccionario?

A diferencia del ataque de fuerza bruta, un ataque de diccionario utiliza una lista predefinida de palabras o combinaciones de contraseñas. Esta lista puede generarse a partir de contraseñas comunes o a partir de información de la víctima, lo cual acorta el tiempo necesario para encontrar la contraseña correcta. Estos diccionarios especializados se crean basándose en hábitos o datos personales de los usuarios.

¿Cómo generar contraseñas personalizadas con la herramienta CUP?

La herramienta CUP, desarrollada en Python y disponible en GitHub, permite generar contraseñas personalizadas a partir de datos específicos de la víctima. Este tipo de ataque no garantiza el éxito, pero sí reduce el tamaño del diccionario, haciéndolo más manejable y específico.

Instalación de CUP

  1. Buscar CUP en GitHub y descargar el archivo cup.py.
  2. Clonar el repositorio en el sistema operativo Kali utilizando el comando:
    git clone [enlace del repositorio]
    
  3. Acceder al directorio creado y ejecutar el archivo cup.py:
    cd Cup
    python cup.py --interactive
    

Generación de contraseñas

El modo interactivo de CUP solicita diversos datos de la víctima, como:

  • Nombre, apodos y fecha de nacimiento.
  • Información sobre familiares, mascotas y lugar de trabajo.
  • Palabras clave que describan la víctima.

Además, CUP permite agregar caracteres especiales y activar el modo Lit para convertir letras en números. Combinando esta información, genera un diccionario de contraseñas que puede ser utilizado en ataques de diccionario.

¿Cómo llevar a cabo un ataque de diccionario utilizando Burp Suite?

Burp Suite es una herramienta multifuncional utilizada en el pen testing de aplicaciones web, capaz de interceptar y analizar peticiones HTTP para realizar ataques de diccionario.

Configuración de Burp Suite

  1. Abrir el navegador integrado en Burp Suite, que ya está preconfigurado para interceptar solicitudes.
  2. Capturar las solicitudes enviadas al ingresar datos en un formulario de inicio de sesión.
  3. Identificar el lugar donde se almacenan las credenciales y utilizarlo como plantilla para los ataques.

Realización del ataque

  1. Enviar la solicitud interceptada al módulo Intruder de Burp Suite.
  2. Configurar el ataque para afectar únicamente el campo de contraseña.
  3. Seleccionar el diccionario generado con CUP y ejecutar el ataque.

Mientras se realiza el ataque, las diferencias en la longitud de la respuesta indican un cambio en la página, lo que sugiere que se encontró la contraseña correcta. No obstante, debido a las restricciones de ritmo en la versión comunitaria de Burp Suite, el ataque puede ser más lento comparado con su versión pro.

¿Qué limitaciones existen en ataques de password guessing?

Las plataformas web importantes como Facebook, YouTube o Twitter han implementado mecanismos de seguridad robustos que previenen los ataques de password guessing. Estas incluyen:

  • Bloqueo de usuario tras varios intentos fallidos.
  • Implementación de CAPTCHAs que dificultan los intentos automatizados.

Los ataques de diccionario y fuerza bruta suelen ser más efectivos en aplicaciones web con configuraciones de seguridad laxas. Sin embargo, el uso ético y autorizado es fundamental en el uso de estas técnicas, limitándolas al ámbito educativo o de prueba en entornos controlados. Con el aprendizaje continuo y la práctica supervisada, es posible desarrollar estrategias efectivas y seguras en ciberseguridad.