# Glosario

<details>

<summary>📌 <em><strong>¿Qué es el hive?</strong></em></summary>

*En Windows, un **hive** es un archivo que almacena una porción del **registro del sistema**. El registro de Windows es una base de datos jerárquica donde se guarda información crítica sobre la configuración del sistema operativo, los usuarios, servicios, controladores y más. Un **hive** es simplemente una **unidad estructurada del registro** que se guarda como archivo en el disco.*

📂 *Archivos hive comunes:*

| Hive         | Ruta en disco                         | ¿Qué contiene?                                                             |
| ------------ | ------------------------------------- | -------------------------------------------------------------------------- |
| `SAM`        | `C:\Windows\System32\config\SAM`      | Hashes de contraseñas de cuentas locales.                                  |
| `SYSTEM`     | `C:\Windows\System32\config\SYSTEM`   | Información de arranque, controladores, y claves de cifrado.               |
| `SECURITY`   | `C:\Windows\System32\config\SECURITY` | Políticas locales, secretos LSA.                                           |
| `SOFTWARE`   | `C:\Windows\System32\config\SOFTWARE` | Configuración de software del sistema y programas instalados.              |
| `NTUSER.DAT` | `C:\Users\<usuario>\NTUSER.DAT`       | Configuración individual del usuario (fondo de pantalla, historial, etc.). |

#### *🛠 ¿Por qué los usamos en hacking?*

*Los hives, especialmente `SAM` y `SYSTEM`, pueden ser **extraídos y analizados offline** para recuperar credenciales:*

* *`SAM` contiene los **hashes** de las contraseñas.*
* *`SYSTEM` contiene la **clave de cifrado** usada para cifrar los hashes del `SAM`.*

*Juntos, permiten usar herramientas como `secretsdump.py` para **dumpear las contraseñas sin necesidad de ser admin total (si tenés SeBackupPrivilege)**.*

</details>

<details>

<summary>📌<em><strong>LDAP (Lightweight Directory Access Protocol)</strong></em></summary>

*LDAP es un protocolo de red utilizado para consultar y modificar servicios de directorio, como el **Active Directory** en Windows. En términos simples, LDAP es una forma estructurada de acceder a una base de datos jerárquica de usuarios, grupos, equipos y otros objetos dentro de un dominio corporativo. Cada objeto en el directorio se identifica con un Distinguished Name (DN), y se pueden realizar consultas específicas sobre sus atributos (por ejemplo, nombre de usuario, membresía en grupos, fechas de login, etc.). LDAP opera normalmente sobre el puerto 389 (sin cifrado) o 636 (LDAPS, cifrado con TLS).*

</details>

<details>

<summary>📌<em><strong>¿Qué es un bind anónimo en LDAP?</strong></em></summary>

*Un **bind anónimo** en LDAP es una conexión al servicio sin proporcionar credenciales (usuario y contraseña). En un entorno corporativo seguro, esta operación debería estar deshabilitada, ya que permite a cualquiera consultar el directorio sin autenticación. Si el servidor LDAP acepta binds anónimos, un atacante puede enumerar objetos del dominio (como usuarios y grupos) sin necesidad de acceso autorizado, lo que representa un riesgo de **filtración de información sensible**. Es uno de los primeros vectores que se testean en una evaluación de seguridad sobre Active Directory.*

</details>

<details>

<summary>📌<em><strong>¿Qué es un Exchange?</strong></em></summary>

***Exchange** es la solución de correo empresarial de Microsoft, diseñada para funcionar estrechamente con Active Directory. Exchange utiliza LDAP para gestionar buzones de correo, usuarios, grupos de distribución y permisos. Cuando se instala Exchange en un dominio, se agregan numerosos objetos y grupos especiales al directorio, muchos de ellos con privilegios ampliados (como los grupos Exchange Trusted Subsystem o Exchange Windows Permissions). En contextos de seguridad ofensiva, estos grupos pueden ser aprovechados para escalar privilegios si las configuraciones no han sido adecuadamente restringidas.*

</details>

<details>

<summary>📌<em><strong>¿Qué es Kerberos y que son los TGT (Ticket Granting Ticket)?</strong></em></summary>

*Kerberos es un protocolo de autenticación que se utiliza ampliamente en entornos de Active Directory (AD). Su principal función es permitir que los usuarios se autentiquen de forma segura frente a múltiples servicios sin tener que enviar sus contraseñas cada vez. Para esto, utiliza un sistema de tickets y cifrado simétrico.*

*Un **TGT** es un Ticket de Concesión de Tickets, emitido por el **KDC** (Key Distribution Center), que le permite a un usuario autenticado solicitar tickets de servicio para acceder a distintos recursos en la red (por ejemplo, un servidor de archivos o correo).*

* *Este ticket es **cifrado con la clave del KDC (Kerberos Ticket Granting Service)** y contiene información como:*
  * *El nombre del usuario*
  * *Una marca de tiempo*
  * *Una clave de sesión*
* *El usuario solicita el TGT al KDC y, si proporciona las credenciales correctas, lo recibe como prueba de identidad sin volver a enviar su contraseña en texto claro.*

</details>

<details>

<summary>📌<em><strong>¿Qué es</strong><strong> </strong><strong><code>sAMAccountName</code></strong><strong>?</strong></em></summary>

*El atributo **`sAMAccountName`** (Security Account Manager Account Name) es el **nombre corto** o **nombre de inicio de sesión compatible con sistemas antiguos**, como Windows NT.*

* *Es único dentro del dominio.*
* *Se usa para iniciar sesión como `DOMINIO\usuario` (por ejemplo: `support\juan`).*
* *Es el atributo que corresponde al clásico "nombre de usuario" que ves en las pantallas de login.*

***Ejemplo:***\
*Para el usuario `juan.perez@support.htb`, su `sAMAccountName` podría ser simplemente `juan.perez`.*

</details>

<details>

<summary>📌<em><strong>¿Qué son las RPC (Remote Procedure Call)?</strong></em></summary>

*Las **llamadas RPC** (Remote Procedure Call) son un mecanismo que permite a un programa ejecutar funciones o procedimientos en **otro sistema remoto** como si se estuviera ejecutando localmente.*

*Una **llamada RPC** es como pedirle a otra máquina:*&#x20;

*“Ejecutá esta función por mí y devolveme el resultado.”*

*En lugar de interactuar con un archivo o servicio local, tu equipo (cliente) envía la solicitud a otra máquina (servidor) que ejecuta el procedimiento y devuelve la respuesta. Todo esto sucede sin que tengas que preocuparte por los detalles de red.*

*¿Cómo se usan en Windows?*

*En sistemas Windows, RPC se utiliza ampliamente para funciones administrativas. Algunos ejemplos:*

* *Gestión de usuarios y grupos (SAMR).*
* *Administración de servicios (Service Control Manager).*
* *Administración de políticas (Group Policy).*
* *Extracción de información del sistema (WMI).*
* *Cambio de contraseñas a través de `impacket-smbpasswd`.*

*Estas funciones viajan encapsuladas dentro de protocolos como **DCERPC** y a menudo se transportan sobre **SMB** (puerto 445) o **named pipes** (`\pipe\samr`, `\pipe\lsarpc`, etc.).*

*¿Por qué es importante en Pentesting?*

*Porque muchas herramientas como `rpcclient`, `impacket-secretsdump`, `smbpasswd`, `lookupsid`, o `samrdump` se basan en RPC para interactuar con controladores de dominio, cambiar contraseñas, enumerar información sensible, o incluso hacer **escaladas de privilegios remotas**.*

*RPC es un vector de ataque habitual cuando:*

* *SMB está expuesto.*
* *Existen cuentas con credenciales válidas.*
* *La política de seguridad del dominio está mal configurada.*

***Ver máquinas:*** [***Raz0rBlack***](https://securitylayer.gitbook.io/securitylayer/maquinas-y-modulos-de-thm/machines/raz0rblack) ***(THM)***

</details>

<details>

<summary>📌<em><strong>¿Qué son los archivo</strong><strong> </strong><strong><code>ntds.dit</code></strong><strong>,</strong><strong> </strong><strong><code>SAM</code></strong><strong> </strong><strong>y</strong><strong> </strong><strong><code>SYSTEM</code></strong><strong>?</strong></em></summary>

*Los archivos **`ntds.dit`**, **`SAM`** y **`SYSTEM`** son componentes críticos de los sistemas operativos Windows, especialmente en el contexto de autenticación, gestión de usuarios y seguridad. A continuación, se explica qué es cada uno y cuál es su función:*

*`ntds.dit`*

*El archivo **`ntds.dit`** (NT Directory Services - Data Information Tree) es la **base de datos del servicio de Active Directory** en controladores de dominio de Windows.*

* *Contiene **toda la información del dominio**, incluyendo cuentas de usuario, contraseñas (en forma de hashes NTLM), grupos, políticas de seguridad y más.*
* *Es el objetivo principal en entornos de Active Directory cuando se busca **extraer y comprometer las credenciales de todo un dominio**.*
* *Solo existe en controladores de dominio.*

*`SAM` (Security Account Manager)*

*El archivo **`SAM`** almacena **las cuentas de usuario locales** de un equipo Windows que **no está unido a un dominio**, o bien para usuarios locales incluso en sistemas unidos a dominio.*

* *Guarda los **hashes de las contraseñas locales**, así como información relacionada con los perfiles de usuario.*
* *Es usado por el servicio `lsass.exe` para autenticación local.*
* *Se encuentra en: `C:\Windows\System32\config\SAM`.*

*`SYSTEM`*

*El archivo **`SYSTEM`** contiene parte del **registro de Windows**, concretamente la **rama HKLM\SYSTEM**, que almacena información crítica sobre la configuración del sistema operativo.*

* *También contiene la **boot key**, que es necesaria para **desencriptar los hashes** almacenados en el archivo `SAM` o en `ntds.dit`.*
* *Se encuentra en: `C:\Windows\System32\config\SYSTEM`.*

#### *Relación entre ellos*

*Cuando se desea extraer hashes de contraseñas, especialmente en el contexto de un CTF o una auditoría de seguridad:*

* *Se necesita el archivo **`SAM`****&#x20;****o****&#x20;****`ntds.dit`** para obtener los hashes.*
* *Se necesita el archivo **`SYSTEM`** para **obtener la clave de cifrado** (boot key) que permite **desencriptar** dichos hashes.*
* *Sin el archivo `SYSTEM`, los hashes no pueden ser desencriptados correctamente*

</details>
