OpenSSH User Enumeration Time-Based Attack

A finales de la semana pasada saltó a la luz un ataque por fuerza bruta contra servidores SSH que permite realizar de forma sencilla una enumeración de usuarios activos en el equipo. Aunque no es 100% fiable, sí ofrece una forma rápida, y la verdad que tras probarla, bastante eficaz de enumerar los usuarios de un equipo.
La prueba de concepto (pequeño script en Python), lo podemos descargar desde IT Security Blog. Para saber si un usuario está o no presente en un equipo llega con hacer una conexión contra dicho equipo. En función del tiempo de respuesta (con contraseña no válida), el script hace una pequeña estimación de si el usuario está o no presente en el equipo.
Aunque este ataque realiza una enumeración de usuarios, no de la tupla user+passwd, no deja de ser grave. El fallo afecta a las versiones 5.x y 6.x de OpenSSH (presentes en la mayoría de los equipos actuales).
La prueba de concepto está disponible para descarga y a mayores es necesario el típico fichero de diccionario,
javier:javier
test:test
Para lanzarlo únicamente,
shell> python ssh_time.py user.list 127.0.0.1:22 5
  Connecting test:test@127.0.0.1:22 
  Error:  Authentication failed.
  Connecting javier:javier@127.0.0.1:22 
  Error:  Authentication failed.
***********************************************************
Found:  ('javier:javier', '127.0.0.1', 22)
***********************************************************
Y efectivamente el usuario javier que existe en el equipo sale en la lista de usuarios.
Mientras esperamos una solución a nivel del servidor SSH para el control de esos tiempos de respuesta, lo mejor es asegurarse de tener claves SEGURAS en las máquinas expuestas, pues la enumeración de usuarios reduce considerablemente el tiempo en ataques por fuerza bruta.




No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios