RV: [HACK] Mas: inseguridad accesos externos a Intranets
David A. Pérez
kamborio at hotmail.com
Tue Feb 13 19:54:32 CET 2001
>porque dices que NT el password es mas dificil de romper con 7 que con 8
>cars? Es la primera vez que oigo algo asi
Por que es cierto :)
Lo que sigue a continuacion no es un texto tecnico, lo escribo a partir de
experiencias y textos que he leido que por desgracia no meti en el bookmark
en su momento. De todos modos, incluyo algunos links al final por si alguien
quiere mas informacion.
Cuando en Redmon estaban trabajando en lo que seria Windows NT, hace de esto
mas de 2 lustros, pensaron en crear un nuevo metodo de autentificacion en
vez de usar lo que ya habia en el mercado. Gran error, como ellos mismos han
reconcido al implementar Kerberos en Windows 2000 en vez de seguir con lo
que ya tenian. De hecho, si hubieran usado Kerberos de aquella (iban por la
Version 4?), ahora se evitarian otros problemas. Por ejemplo, si el puerto
Kerberos de un servidor Windows 2000 es "flodeado", el cliente Windows 2000
intentara autentificarse usando NTLM, dejando circular por la red un hash
debil y echando por tierra la potencia de Kerberos. Aunque es posible
modificar en las "politicas" que un cliente Windows 2000 nunca use NTLM para
evitar esto.
De aquella, se les ocurrio un metodo para evitar que el hash completo
circulara por toda la red y pudiera ser "sniffado", usar solo la mitad del
hash (el hash es una funcion sobre el password que garantiza un hash para
cada passsword y la posibilidad de no poder sacar el password a partir del
hash, tambien conocido algoritmo de una via).
Decia, que decidieron que solo circulara la mitad del hash por la red, asi
que dividieron el hash en dos partes. De este modo, nunca podrias sniffar el
hash entero, y no podrias aplicar un crackeador sobre el. Cada parte se
consigue a partir de una "semilla", y el identificador de usuario. Ademas,
como la longitud maxima de un password de Windows NT (que no Windows 2000)
es 14 caracteres, decidieron:
a) Si el password tiene 7 o menos caracteres, los dos hashes seran iguales
b) Si el password es mayor de 7 caracteres, los 7 primeros se usan para el
primer hash y los restantes para el ultimo.
Asi que si empezamos un ataque de fuerza fruta sobre los hashes. Si tenemos
un password de 7 caracteres, vamos a necesitar potencia para hacerlo. Pero
si el pass es de 8 caracteres, y atacamos la segunda mitad del hash, que
solo esta usando un caracter, pues solo hay que probar con todas las
minusculas, mayusculas, numeros y signos. No se cuantos son, pero seguro que
menos de 100. Cuanto tardas en hacer eso? *Segundos*
Una vez que has atacado el segundo hash, es muy facil atacar el primero (no
tan facil como fue atacar el segundo), por que ya conoces la semilla.
Por eso en Windows NT es mas seguro un password de 7 caracteres que de 8, y
por eso tambien, l0pth es capaz de averiguar el final de los passwords antes
que el principio.
Los programadores de Microsoft tuvieron buena idea, pero una mala
implementacion. Claro que de aquella no pensaban en sistemas de 4
procesadores a 1 Ghz que pudieran romper los hashes en horas.
Lo mejor, en un sistema NT, es proteger las cuentas de administrador con los
14 caracteres, eso nos garantiza dificultad a la hora de atacar cualquier
parte del hash, y dos hashes diferentes a la hora de autentificarnos contra
un dominio.
Mas o menos, asi es como funciona la cosa, aunque seguro que he cometido
algun error tecnico al explicarlo. Perdoname por ello. Mas info en:
http://www.dataguard.no/bugtraq/1997_2/0170.html
http://www.clark.net/pub/kts/WinSec.html
kamborio
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
More information about the hacking
mailing list