Las contraseñas en Windows

Todo sobre los distintos SSOO de Windows

Moderador: Moderadores

Las contraseñas en Windows

Notapor neofito » Lun Oct 23, 2006 11:16 pm

Hola a todos

Lo prometido es deuda. Ahora tambien el documento en formato PDF.

Principios de seguridad

En los sistemas Windows los controles de acceso a los recursos, entendiendo por tales los archivos, carpetas y demas objetos, se aplican a los denominados principios de seguridad, incluyendo entre estos los siguientes:

- Usuarios
- Grupos
- Equipos

En principio solo nos interesan los primeros (las cuentas de usuario) por lo que nos centraremos en ellos.

Security Account Manager (SAM)

Un usuario habitualmente se identifica en Windows proporcionando el nombre de una cuenta y la contraseña asociada a la misma. Toda esta información, y alguna más, se almacena en el Security Account Manager (SAM).

Las contraseñas, por supuesto, no se almacenan en texto claro, sino que en su lugar lo que alli encontraremos sera el hash de las mismas. Por otra parte, y desde la aparición del Service Pack 3 para Windows NT existe la posibilidad de añadir una nueva capa de cifrado a los hashes del SAM, utilizando para ello una clave aleatoria de 128 bits. Esta clave adicional se conoce como SYSKEY.

El SAM conforma una de las cinco ramas del registro de Windows (HKEY_USERS) y su ubicación varía en función de si el equipo pertenece a un dominio o por contra es un equipo independiente:

- En un dominio se ubica en el archivo %systemroot%\ntds\ntds.dit de los controladores del dominio.

- En un equipo independiente se ubica en el archivo %systemroot%\system32\config\sam.

En ambos casos el acceso a dicho fichero esta vetado durante la ejecución del sistema, por lo que no podremos ni copiarlo, ni borrarlo ni moverlo.

Quedan fuera del alcance de este documento los diferentes métodos que podemos utilizar para obtener/editar el SAM de forma offline, que haberlos haylos.

Almacenamiento de los nombres para las cuentas de usuario

Ademas de lo indicado anteriormente en la SAM la información referente a las cuentas de usuario se almacena utilizando un numero de 48 bits unico denominado Identificador de Seguridad (SID). Un ejemplo para el mismo podría ser el siguiente:

Código: Seleccionar todo
   
S-1-5-21-117609710-1343024091-842925246-500


En dicho número podemos diferenciar dos partes:

La primera de ellas es única para cada instalación o dominio y se correspondería con S-1-5-21-117609710-1343024091-842925246 en el ejemplo anterior.

La segunda parte es compartida por todas las instalaciones de Windows y se conoce como RID. Seria el 500 del ejemplo anterior.

Sirvan como ejemplo los siguientes numeros RID "bien conocidos" (para conocer el resto visitar el enlace mencionado en las Referencias):

500 -> Administrador
501 -> Invitado
512 -> Administradores del Dominio
513 -> Usuarios del Dominio

Por otra parte, a la primera cuenta de usuario creada en un sistema local o dominio se le asigna un RID igual a 1000, aumentando este en 1 para cada una de las subsiguientes.

Almacenamiento de los hashes para las contraseñas de los usuarios

Por defecto los sistemas Windows permiten contraseñas de una longitud máxima igual a 14 caracteres. En el SAM se almacenan dos versiones para cada una de las contraseñas:

1) Hash LanMan o LM (cifrado mediante el algoritmo DES).
2) Hash NT (cifrado mediante el algoritmo MD4).

Estos algoritmos de cifrado se dice que son unidireccionales ya que una vez cifrada la contraseña no puede realizarse el proceso inverso, es decir, a partir de un hash no puede obtenerse la contraseña original.

¿Entonces como funcionan los programas de crackeo de contraseñas? Básicamente funcionan cifrando textos y comparando el hash obtenido con el de una cuenta determinada. Si ambos coinciden habremos dado con la contraseña original.

El método de generación de los textos puede ser mediante fuerza bruta (dado un conjunto de caracteres el programa genera de forma aleatoria todas las combinaciones posibles de los mismos) o un ataque por diccionario (listas de palabras proporcionadas a priori).

Particularidades de la generación del hash LanMan

Para generar el hash LM de una contraseña determinada Windows utiliza un metodo ampliamente conocido y que precisamente constituye la debilidad de este tipo de hashes.

Independientemente de la longitud de la contraseña original esta se divide en dos mitades de 7 caracteres cada una, se convierten a mayusculas todos los caracteres y se generan los hashes de manera independiente. Esto implica que la generación de la segunda parte del hash no utiliza ninguna información relacionada con la primera mitad por lo que, a todos los efectos, estaríamos tratando con dos contraseñas de 7 caracteres.

Vamos a hacer algunas pruebas para comprobar esto. Para ello crearemos 3 usuarios diferentes y volcaremos los hashes de las contraseñas de cada uno de ellos estudiando a continuación los resultados obtenidos. Para realizar el volcado de las contraseñas deberemos contar con privilegios de administrador en la máquina utilizada para las pruebas. Obtendremos igualmente el SID de cada una de las cuentas.

Abramos una consola y creemos los usuarios con la siguiente información:

- Cuenta numero 1:

Usuario: wadalberto1
Contraseña: wadalbertia

Código: Seleccionar todo
C:\>net user wadalberto1 wadalbertia /add
Se ha completado el comando correctamente.


- Cuenta numero 2:

Usuario: wadalberto2
Contraseña: wadal1

Código: Seleccionar todo
C:\>net user wadalberto2 wadal1 /add
Se ha completado el comando correctamente.


- Cuenta numero 3:

Usuario: wadalberto3
Contraseña: wadal2

Código: Seleccionar todo
     
C:\>net user wadalberto3 wadal2 /add
Se ha completado el comando correctamente.


Volcaremos a continuación la información relacionada con el SID de cada una de las cuentas anteriores. Para ello utilizaremos el programa user2sid:

Código: Seleccionar todo
C:\>user2sid.exe wadalberto1

S-1-5-21-117609710-1343024091-842925246-1005

Number of subauthorities is 5
Domain is ANUBIS
Length of SID in memory is 28 bytes
Type of SID is SidTypeUser


Código: Seleccionar todo
     
C:\>user2sid.exe wadalberto2

S-1-5-21-117609710-1343024091-842925246-1006

Number of subauthorities is 5
Domain is ANUBIS
Length of SID in memory is 28 bytes
Type of SID is SidTypeUser


Código: Seleccionar todo
   
C:\>user2sid.exe wadalberto3

S-1-5-21-117609710-1343024091-842925246-1007

Number of subauthorities is 5
Domain is ANUBIS
Length of SID in memory is 28 bytes
Type of SID is SidTypeUser


En los tres casos podemos comprobar como la información de las tres cuentas tiene los rasgos ya mencionados:

La primera parte que compone el SID coincide en todos los casos. En mi maquina se corresponderia con: S-1-5-21-117609710-1343024091-842925246

El RID para los tres es mayor que 1000 y los numeros son sucesivos. En mi caso: 1005, 1006 y 1007 (correspondiente, respectivamente, a la quinta, sexta y septima cuenta de usuario creada en el sistema).

Ahora pasaremos a obtener el volcado de los hashes de las contraseñas. Para ello utilizaremos el programa pwdump6. Para ello copiaremos en la raiz de la unidad C tanto el binario pwdump.exe como la libreria LsaExt.dll y el servicio:

Código: Seleccionar todo
   
C:\>PwDump.exe 127.0.0.1 | findstr wadalberto

pwdump6 Version 1.0 by fizzgig and the mighty group at foofus.net
Copyright 2005 foofus.net

This program is free software under the GNU General Public License Version 2 (GNU GPL), you can redistribute it and/or modify it under the terms of the GNU GPL, as published by the Free Software Foundation. NO WARRANTY, EXPRESSED OR IMPLIED, IS GRANTED WITH THIS PROGRAM.  Please see the COPYING file included with this program and the GNU GPL for further details.

wadalberto1:1005:C1AD280AF36D87E4C623D0E1A0B0936D:61E93A89F1D140440F227D1EA0D38DE6:::
wadalberto2:1006:C0597095BBBA4445AAD3B435B51404EE:6D557BA9B6A2BB193FEACCA3F732A809:::
wadalberto3:1007:43C4FCAC46A6159BAAD3B435B51404EE:CECD722E8E59FD0683236F814F261F4B:::


He filtrado la salida mediante el comando findstr para mostrar unicamente la información de las cuentas utilizadas para nuestro experimento. El formato utilizado en la salida es el siguiente:

Código: Seleccionar todo
usuario:RID:HashLM:HashNT:::


Por lo que, y dado que estamos estudiando los hashes LM, deberemos fijarnos en la cadena mostrada en la tercera columna utilizando como separados el signo ':'. Ademas dividiremos la cadena en dos mitades de 16 bits cada una:

Código: Seleccionar todo
wadalberto1 C1AD280AF36D87E4 C623D0E1A0B0936D
wadalberto2 C0597095BBBA4445 AAD3B435B51404EE
wadalberto3 43C4FCAC46A6159B AAD3B435B51404EE


No es dificil observar como la segunda mitad del hash de la contraseña para los dos ultimos usuarios es equivalente, y esto es debido a que ambos tienen una contraseña de menos de 8 caracteres. ¡Y esto sera igual para cualquier usuario independientemente del valor asociado a su contraseña!

Como impedir el almacenamiento del hash LanMan

Ahora que ya conocemos la debilidad de los hashes LanMan seguro que nos gustaría encontrar una forma para que estos hashes no se almacenen. Pues la buena noticia es que este método existe, y la mala que aplicándolo perderemos la compatibilidad con sistemas Windows 9x/Me.

Desde el Service Pack 2 para Windows 2000 puede impedirse el almacenamiento del hash LanMan de las contraseñas de los usuarios, además de permitir a partir del momento de su implantación la creación de contraseñas de 15 caracteres o mas.

Para ello deberemos buscar en el registro la siguiente clave:

Código: Seleccionar todo
HKLM\SYSTEM\CurrentControlSet\Control\Lsa


Allí econtraremos el valor DWORD nolmhash, establecido a 0 por defecto. Para activarlo solo tendremos que cambiarlo a 1 y volver a generar las contraseñas de todos los usuarios para que la modificacion tenga efecto.

Referencias

Hackers en Windows 2000
Editorial: McGraw-Hill

Well-known security identifiers in Windows operating systems

How to prevent Windows from storing a LAN manager hash of your password in Active Directory and local SAM databases

How to use the SysKey utility to secure the Windows Security Accounts Manager database

Herramientas user2sid y sid2user

Windows NT/2000/XP/2003 password crackers - recovery, auditing, and PWDUMP tools

An experiment with Lepton's Crack - LM password cracking refinement

Espero que os guste.

Saludos
Última edición por neofito el Jue Nov 02, 2006 11:25 pm, editado 1 vez en total
La verdad nos hara libres

http://neosysforensics.blogspot.com
http://www.wadalbertia.org
@neosysforensics
-<|:-P[G]
Avatar de Usuario
neofito
Wadalbertita
Wadalbertita
 
Mensajes: 1799
Registrado: Dom Ene 30, 2005 7:16 am
Ubicación: En algun lugar

Notapor okahei » Mar Oct 24, 2006 9:37 am

gracias Neo, bien explicado.

No es dificil observar como la segunda mitad del hash de la contraseña para los dos ultimos usuarios es equivalente, y esto es debido a que ambos tienen una contraseña de menos de 8 caracteres. ¡Y esto sera igual para cualquier usuario independientemente del valor asociado a su contraseña!
:shock: :shock: estos de windows siempre dando pistas.

un saludo.
-<|:·)
Avatar de Usuario
okahei
-<|:·þ
-<|:·þ
 
Mensajes: 3715
Registrado: Sab Ene 29, 2005 12:12 pm

Notapor Bebbop » Mar Oct 24, 2006 9:47 am

Estoy con Okahei... muy bien explicado a mas que es un tema un poco complejo.
Avatar de Usuario
Bebbop
Gran Wadalbertita
Gran Wadalbertita
 
Mensajes: 3424
Registrado: Mié Dic 14, 2005 2:46 pm
Ubicación: El Inframundo

Notapor Cyathogoku » Mar Oct 24, 2006 2:16 pm

Neofito muy bien mira a ver si puedes pasarlo a pdf para que sea mas limpio y poder llevarlo a cualquier sitio.

GRACIAS

Saludos
Cyathogoku
:-D
:-D
 
Mensajes: 142
Registrado: Lun May 15, 2006 3:31 am

Notapor disturb » Mar Oct 24, 2006 3:19 pm

Gracias neo, no sabía que se podía deshabilitar el LanMan.
disturb
Gran Wadalbertita
Gran Wadalbertita
 
Mensajes: 2253
Registrado: Mié Ene 26, 2005 5:30 pm
Ubicación: Málaga

Notapor NeTTinG » Mar Oct 24, 2006 4:41 pm

Interesante. Gracias ;)
| Blog NeTTinG | Proyecto Destripando iOS |
_____________________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. (Albert Einstein)
Todos recaerán en la necesidad de conocer la única y presumible verdad que el gran embudo emana. (Sire Netting)
Avatar de Usuario
NeTTinG
Wadalbertita
Wadalbertita
 
Mensajes: 6272
Registrado: Mar Sep 20, 2005 5:54 pm
Ubicación: Bajo la trampilla del décimo primer piso.

Notapor okahei » Mar Oct 24, 2006 5:27 pm

Hola

Estoy probando a deshabilitar el hash-lm

1- modifico la clave de registro
2- vuelvo a generar la password
3- reinicio y....

Código: Seleccionar todo
Administrador:500:aad3b445b51414eeaad2b465b51404ef:fe97b12332ecad1f92d5d0c60bda438e4:::


sigue apareciendo el hash :shock:

algo hago mal...

un saludo.

PD: ni os molestéis en crakear el hash que aparece aquí :p
-<|:·)
Avatar de Usuario
okahei
-<|:·þ
-<|:·þ
 
Mensajes: 3715
Registrado: Sab Ene 29, 2005 12:12 pm

Notapor neofito » Mar Oct 24, 2006 5:35 pm

Hola

Prueba a hacerlo al reves, es decir:

1. Modificas registro (esto ya lo has hecho).
2. Reinicias (tambien lo has hecho)
3. Vuelves a generar las password.

Saludos
La verdad nos hara libres

http://neosysforensics.blogspot.com
http://www.wadalbertia.org
@neosysforensics
-<|:-P[G]
Avatar de Usuario
neofito
Wadalbertita
Wadalbertita
 
Mensajes: 1799
Registrado: Dom Ene 30, 2005 7:16 am
Ubicación: En algun lugar

Notapor okahei » Mar Oct 24, 2006 5:42 pm

Hola Neo.

Nada, me sigue mostrando el hash Lm :shock:

Estoy con un w2k3 Sp1 ( sin ser un AD of course )

un saludo.
-<|:·)
Avatar de Usuario
okahei
-<|:·þ
-<|:·þ
 
Mensajes: 3715
Registrado: Sab Ene 29, 2005 12:12 pm

Notapor neofito » Mar Oct 24, 2006 6:47 pm

Hola

Segun Microsoft

This DWORD value prevents new LM hashes from being created on Windows XP-based computers and Windows Server 2003-based computers. The history of all previous LM hashes is cleared when you complete these steps.


No obstante otra solucion posible seria la de crear una contraseña de mas de 14 caracteres:

In this case, Windows stores an LM hash value that cannot be used to authenticate the user.


Saludos
La verdad nos hara libres

http://neosysforensics.blogspot.com
http://www.wadalbertia.org
@neosysforensics
-<|:-P[G]
Avatar de Usuario
neofito
Wadalbertita
Wadalbertita
 
Mensajes: 1799
Registrado: Dom Ene 30, 2005 7:16 am
Ubicación: En algun lugar

Notapor okahei » Mar Oct 24, 2006 9:14 pm

Hola Neo

ya lo ví en la "ayuda de microsoft", de hecho he creado una cuenta nueva para ver si almacenaba el hash-lm, y sí, me sigue almacenando el dichoso hash.

Mañana probaré a ponerle una password de más de 14 caracteres.

un saludo
-<|:·)
Avatar de Usuario
okahei
-<|:·þ
-<|:·þ
 
Mensajes: 3715
Registrado: Sab Ene 29, 2005 12:12 pm

Notapor okahei » Mié Oct 25, 2006 4:26 pm

Hola

Me sigue mostrando el hash-lm aún con password de 19 caracteres.

Peroooo el Cain me dice que no puede encontrar los hash-lm (aunque me los muestra ) cosa rara rara rara :?

Imagen

y cuando lanzo un ataque a los hash lm me suelta esto :

Imagen

Es decir que no tiene el hash... pero el pwdump me los sigue mostrando :shock:

un saludo
-<|:·)
Avatar de Usuario
okahei
-<|:·þ
-<|:·þ
 
Mensajes: 3715
Registrado: Sab Ene 29, 2005 12:12 pm

Notapor neofito » Mié Oct 25, 2006 7:45 pm

Hola

Segun comentan Microsoft y otras fuentes el hash se almacena, pero debido a la limitacion de 14 caracteres que tiene LM este no seria valido.

Saludos
La verdad nos hara libres

http://neosysforensics.blogspot.com
http://www.wadalbertia.org
@neosysforensics
-<|:-P[G]
Avatar de Usuario
neofito
Wadalbertita
Wadalbertita
 
Mensajes: 1799
Registrado: Dom Ene 30, 2005 7:16 am
Ubicación: En algun lugar

Notapor TaU » Jue Oct 26, 2006 10:38 am

Creo que eso ya lo probé un dia, y lo que hacía en realidad el w$ es simplemente eliminar de la pw los caracteres que pasaban del 14 y considerarla una pw normal.


Saludos

pd: Buen curro neo ^^!
"Hay un aliciente tremendo en meter las narices en lo desconocido", Eduardo Chillida.

-<|¡^P Wadalbertia, el sentir que del embudo emana. (Arzobispo de Canterburry dixit)
TaU
<|:-)
<|:-)
 
Mensajes: 604
Registrado: Vie Feb 25, 2005 2:44 am

Notapor neofito » Jue Nov 02, 2006 11:26 pm

Hola a todos

Acabo de modificar el mensaje que inicia el hilo para incluir el enlace al documento en formato PDF.

Saludos y espero os guste
La verdad nos hara libres

http://neosysforensics.blogspot.com
http://www.wadalbertia.org
@neosysforensics
-<|:-P[G]
Avatar de Usuario
neofito
Wadalbertita
Wadalbertita
 
Mensajes: 1799
Registrado: Dom Ene 30, 2005 7:16 am
Ubicación: En algun lugar

Siguiente

Volver a Windows

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados

cron