Usuarios

Propiedades de Usuarios

Identificadores de Usuarios

El objeto de usuario almacena muchos datos diferentes, pero los primeros atributos a tener en cuenta son los que nos permiten identificar a un usuario.

Para identificar a un usuario generalmente se usa el nombre de usuario, que se almacena en el atributo SamAccountName. Además, el SID (Identificador de seguridad) también se puede utilizar para identificar al usuario.

El SID del usuario es similar al SID del dominio y, de hecho, es la combinación del SID del dominio más el RID (Identificador relativo) del usuario, que es el último número que aparece en el SID del usuario

Ademas el valor DistinguishedName lo utiliza la API de LDAP para identificar objetos.

Secretos de Usuarios

Además, la base de datos también necesita almacenar los secretos del usuario para permitir que el controlador de dominio autentique al usuario. La password de usuario no se almacena en texto sin formato, pero se guardan los siguientes secretos derivados de ella:

  • Hash NT (y hash LM para las cuentas mas antiguas)

  • Claves Kerberos

NOTA: Los usuarios que no son administradores no pueden recuperar los secretos de los usuarios. Ni siquiera las computadoras del dominio pueden acceder a ellos. ya que estos secretos se encuentran en "C:\Windows\NTDS\ntds.dit" del Controlador de Dominio

LM/NT Hashes

Los hashes de LM y NT se almacenan en las bases de datos SAM local de Windows y NTDS de Active Directory para autenticar a los usuarios locales y de dominio, respectivamente. Estos hashes, tanto LM como NT, tienen una longitud de 16 bytes.

Muchas herramientas le permiten extraer los hash LM y NT, y normalmente devuelven un resultado con varias líneas, una por usuario, con el formato <username>:<rid>:<LM>:<NT>:::

Es importante que un pentester reconozca los hash de NT ya que, aunque no sean las contraseñas de usuario, se utilizan para autenticarse en máquinas Windows, por lo que son muy útiles. Se pueden utilizar para realizar ataques Pass-the-Hash o Overpass-the-Hash para hacerse pasar por usuarios en máquinas remotas.

Además, puede intentar descifrar los hash de LM y NT con hashcat para recuperar la contraseña original. Si tiene suerte y el hash LM está presente, esto debería ser rápido.

Aparte de los hashes LM/NT, se almacenan las claves Kerberos , derivadas de la contraseña del usuario y utilizadas en el protocolo de autenticación Kerberos.

Las claves de Kerberos se pueden usar para solicitar un vale de Kerberos que represente al usuario en la autenticación de Kerberos. Hay varias claves diferentes, y se usan diferentes para diferentes soportes de cifrado Kerberos:

Estas claves se pueden usar en un ataque Pass-The-Key para recuperar un ticket para el usuario suplantado. Luego, puede usar ese vale de Kerberos para autenticarse en diferentes servicios del dominio en nombre del usuario.

UserAccountControl

Una propiedad interesante de la clase de usuario es UserAccountControlarrow-up-right (UAC) (no lo confunda con el mecanismo de control de cuentas de usuario para evitar la ejecución de programas elevados en máquinas con Windows).

La propiedad UserAccountControl contiene una serie de indicadores que son muy relevantes para la seguridad y el dominio y se utilizan en muchos ataques mencionados en esta publicación. Aquí están los más relevantes:

  • ACCOUNTDISABLE -> La cuenta está deshabilitada y no se puede usar.

  • DONT_REQUIRE_PREAUTH -> La cuenta no requiere autenticación previa de Kerberos.

  • NOT_DELEGATED -> Esta cuenta no se puede delegar a través de la delegación de Kerberos.

  • TRUSTED_FOR_DELEGATION -> La delegación sin restricciones de Kerberos está habilitada para esta cuenta y sus servicios. Se requiere SeEnableDelegationPrivilegearrow-up-right para modificarlo.

  • TRUSTED_TO_AUTH_FOR_DELEGATION -> La extensión Kerberos S4U2Self está habilitada para esta cuenta y sus servicios. Se requiere SeEnableDelegationPrivilegearrow-up-right para modificarlo

Otras propiedades de usuario

Hay otras propiedades que pueden ser útiles en un pentest:

Cuentas de usuario Importantes

El usuario integrado Administratores la cuenta con más privilegios del dominio . Puede realizar cualquier acción en cualquier computadora. Entonces, si puede comprometer esta cuenta, puede tener el control total del dominio(e incluso del bosque mediante the SID history attackarrow-up-right)

La cuenta KRBTGT también es muy importante. Sus secretos (NT hash y claves Kerberos) se utilizan para cifrar los tickets (concretamente los TGT) utilizados por Kerberos que permiten autenticar a los usuarios. Si puede comprometer la cuenta KRBTGT, podrá crear Golden Ticketsarrow-up-right . Por lo general, esta cuenta solo puede verse comprometida al volcar la base de datos del dominio, ya que solo se usa en los controladores de dominio, lo que requerirá que tenga privilegios de administrador en el dominio.

Computer Account

Otra cosa a tener en cuenta es que en una organización, cada persona tiene su propio usuario, e incluso ciertas personas como el departamento de TI pueden tener más de un usuario por persona para realizar diferentes tareas. Además, también cada computadora del dominio tiene su propio usuario , ya que también necesitan realizar sus propias acciones en el dominio, como por ejemplo, actualizar las Políticas de grupo, verificar las credenciales de los usuarios del dominio que iniciaron sesión en la computadora, etc.

La diferencia entre cuentas de usuario y cuentas de computadora es que las primeras se almacenan como instancias de la clase Usuarioarrow-up-right en la base de datos, mientras que las otras se almacenan como instancias de la clase Computadoraarrow-up-right (que es una subclase de la clase Usuario). Además, los nombres de las cuentas de la computadora son el nombre de host de la computadora terminado con un signo de dólar $.

Además, los objetos de la computadora también guardaron información sobre su sistema operativo.

Tambien, muchas organizaciones tienen reglas para elegir el nombre de las computadoras, así como los usuarios, por lo que si puede entender los nombres, puede estar al tanto del uso de la computadora y las cuentas de usuario y cuál de ellos puede ser privilegiados o contienen acceso a información sensible. Además, puede verificar otros atributos de los objetos Descriptionpara encontrar más información allí (e incluso passwords de texto sin cifrar).

Trust Account

Cuando se establece una confianza, se crea un objeto de usuario asociado en cada dominio para almacenar la clave de confianza. El nombre del usuario es el nombre NetBIOS del otro dominio, terminado en $ (similar al nombre de una cuenta de computadora). Por ejemplo, en el caso de la confianza entre los dominios FOO y BAR, el dominio FOO almacenaría la clave de confianza en el usuario BAR$ y el dominio BAR la almacenaría en el usuario FOO$

Este objeto de usuario se usa para almacenar las claves de confianza, que son las claves hash de NT o Kerberos (se usa una u otra dependiendo del contexto).Si puede obtener los secretos de esta cuenta, puede crear tickets de Kerberos entre reinosarrow-up-right(a este ataque se le puede llamar Across Domain using Trust Key).

Last updated