
Enumeración de nombres de usuario de OpenSSH - CVE-2016-6210
CVE-2016-6210Publicado por Eddie Harari en Full Disclosure http://seclists.org/fulldisclosure/2016/Jul/51
Al enviar contraseñas grandes, un usuario remoto puede enumerar usuarios en un sistema que ejecuta SSHD. Este problema existe en la mayoría de las configuraciones modernas debido a que calcular el hash SHA256/SHA512 toma mucho más tiempo que el hash BLOWFISH.
Cuando SSHD intenta autenticar a un usuario inexistente, toma una estructura de contraseña falsa codificada en el código fuente de SSHD. En esta estructura de contraseña codificada, el hash de la contraseña se basa en el algoritmo BLOWFISH ($2). Si las contraseñas de usuarios reales se hashean usando SHA256/SHA512, entonces enviar contraseñas grandes (10KB) resultará en un tiempo de respuesta más corto del servidor para usuarios inexistentes.
NOTA: El Sr. Harari probó esto en opensshd-7.2p2, mientras que mis pruebas se realizaron en OpenSSH_6.9p1.
El script actualmente se basa en un rango de desviación del 10-30% para los tiempos de usuario válidos versus inválidos. Actualmente solo >20% son aceptados como nombres de usuario válidos y se agregan a la lista de salida correspondientemente (siéntase libre de ajustar esto dentro del script). Esto ha resultado efectivo para mí.
Trayendo este proyecto de Bitbucket a Github.