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