Laboratorios: Hacking - Técnicas y contramedidas - Ataques por fuerza bruta (Brute Force) I
Es necesario aclarar el concepto de Ataques por fuerza bruta (Brute Force) antes de comenzar con las prácticas de los laboratorios.
Veamos la defición ofrecida por la Wikipedia:
“En criptografía, se denomina ataque de fuerza bruta a la forma de recuperar una clave probando todas las combinaciones posibles hasta encontrar aquella que permite el acceso.
Dicho de otro modo, define al procedimiento por el cual a partir del conocimiento del algoritmo de cifrado empleado y de un par texto claro/texto cifrado, se realiza el cifrado (respectivamente, descifrado) de uno de los miembros del par con cada una de las posibles combinaciones de clave, hasta obtener el otro miembro del par. El esfuerzo requerido para que la búsqueda sea exitosa con probabilidad mejor que la par será 2n ? 1 operaciones, donde n es la longitud de la clave (también conocido como el espacio de claves).
Otro factor determinante en el coste de realizar un ataque de fuerza bruta es el juego de caracteres que se pueden utilizar en la clave. Contraseñas que sólo utilicen dígitos numéricos serán más fáciles de descifrar que aquellas que incluyen otros caracteres como letras, así como las que están compuestas por menos caracteres serán también más fáciles de descifrar, la complejidad impuesta por la cantidad de caracteres en una contraseña es logarítmica”. (Más información).
Práctica 45 - fuerza bruta a contraseñas de FTP
Herramienta: BrutusAET 2
Prerequisitos: Ninguno
Contramedidas: Securización de servidores FTP, Clientes con SFTP, complejidad de contraseñas.
Descripción: El protocolo de transferencia de archivos (FTP) es usado para transferir constantemente la información entre clientes y servidores. (principalmente web o backups). La gran mayoría de la información transmitida mediante este protocolo de transferencia es llevada a cabo sin ningún método de cifrado (texto plano), es por esto que la interceptación de dichas transmisiones representa un enorme peligro en la confidencialidad e integridad de los datos.
Algunos de los datos que pueden ser interceptados son los siguientes: nombres de usuarios, contraseñas e información.
Procedimiento: Descargar y ejecutar la herramienta.
Veamos:
Desde el enlace descargamos la herramienta Brutus AET (algo viejita pero aún efectiva).
Desde la ruta seleccionada en la descargar ejecutamos el archivo BrutusA2.exe
Para efectos de práctica he habilitado un servidor FTP portable en una máquina “objetivo” (en mi caso, otra máquina de mi laboratorio, para los seguidores de los laboratorios: máquinas virtuales).
Después de configurar el server FTP de pruebas (he creado un usuario “laboratorio” con idéntica contraseña), ejecutamos entonces el archivo Brutus AET2.
Nos encontraremos con la siguiente interfaz gráfica.
La sencilla interfaz gráfica nos permite configurar los siguientes campos:
Target (objetivo): dirección IP de la máquina (servidor) objetivo.
Tipo: Tipo de protocolo a auditar (para nuestro caso FTP).
Puerto: Por defecto trae seleccionado el 80 (comunmente utilizado para servicios Web, para nuestro caso al seleccionar el protocolo FTP se habilitará el puerto 21).
Usar Proxy: Por ahora no utilizaremos ocultación mediante proxy.
Opciones de autenticación: Para este laboratorio utilizaré el método de diccionario (método que hace uso de un archivo con los posibles nombres de usuarios y contraseñas, este método puede ser efectivo dependiendo del nivel de experticia del administrador del servidor FTP, los usuarios “novatos” o ingenuos aún utilizan palabras comunes para sus inicios de sesión: fechas de nacimiento, ciudad, mismos nombres, palabras de uso común, etc.).
Deben ubicarse los dos archivos diccionarios “usuarios” y “palabras”.
Opción de selección del tipo de ataque:
Diccionario, combo, fuerza bruta (para nuestro caso diccionario)
Luego de esta corta configuración pasamos a ejecutar el testeo.
Comienza a probar cada uno de los usuarios contenidos en el archivos users.txt contra cada una de las palabras contenidas en el archivo words.txt
De manera paralela quiero mostrar lo que va ocurriendo en los registros (logs) del servidor FTP, en cuanto a intentos de inicio de sesión se refiere. Esto con el fin de mostrar como cada intento de conexión a un servidor puede quedar registrado según la configuración dada por el administrador, esto sumado a la escasa dedicación en el momento de configurar el servidor, pues es posible restringir mediante IP el número de intentos fallidos en un inicio de sesión (Con dicha restricción se haría necesaría la utilización de servidores proxy como método de ocultación de clientes, aunque algunos servidores restringen el acceso a una determinada IP com usuario admin).
Captura de pantalla auditando el usuario “laboratorio” (en este caso, usuario válido)
Auditoría de password finalizada, remarco en rojo el resultado obtenido (+/- 3 minutos para 410 intentos de inicio - combinaciones)
Captura de pantalla del archivo log del servidor FTP
Verificación de los datos obtenidos (conexión mediante el cliente FlashFXP)
Conexión establecida con el equipo objetivo
Taller individual:
Restringir inicios de sesión
Ocultación mediante proxy
Otros métodos de análisis con la herramienta (fuerza bruta y combo)
Próxima sesión: Ataques por fuerza bruta (brute Force) II