El caso del usuario deshabilitado que se valida (por LDAP)
Hola a todos,
Soy Paula, del equipo de Directorio Activo. Recientemente tuvimos un caso en el que un usuario deshabilitado podía realizar una conexión a LDP y no recibía ningún error (aunque posteriormente no podía navegar por el árbol de la partición del dominio).
A la hora de realizar el BIND mediante la herramienta LDP.EXE, el mensaje recibido era el siguiente (indicando aparentemente que se había realizado la autenticación con las credenciales del usuario deshabilitado user1):
res = ldap_bind_s(ld, NULL, &NtAuthIdentity, 1158); // v.3 {NtAuthIdentity: User='user1'; Pwd= <unavailable>; domain = 'haledomain'.} Authenticated as dn:'user1'. |
Si obtenemos unas trazas de red de dicha conexión, se muestra un BIND exitoso:
Hora |
Origen |
Destino |
Prot |
Detalles |
12:59:07.370 |
192.168.1.1 |
192.168.1.2 |
LDAP |
LDAP:Search Request, MessageID: 32, BaseObject: NULL, SearchScope: base Object, SearchAlias: neverDerefAliases |
12:59:07.380 |
192.168.1.2 |
192.168.1.1 |
LDAP |
LDAP:Search Result Entry, MessageID: 32 |
12:59:14.269 |
192.168.1.1 |
192.168.1.2 |
LDAP |
LDAP:Search Request, MessageID: 33, BaseObject: NULL, SearchScope: base Object, SearchAlias: neverDerefAliases |
12:59:14.280 |
192.168.1.2 |
192.168.1.1 |
LDAP |
LDAP:Search Result Entry, MessageID: 33 |
12:59:14.770 |
192.168.1.1 |
192.168.1.2 |
LDAP |
LDAP:Bind Request, MessageID: 35, Version: 3 |
12:59:14.780 |
192.168.1.2 |
192.168.1.1 |
LDAP |
LDAP:Bind Response, MessageID: 35, Status: Sasl Bind In Progress |
12:59:14.790 |
192.168.1.1 |
192.168.1.2 |
LDAP |
LDAP:Bind Request, MessageID: 36, Version: 3 |
12:59:14.981 |
192.168.1.2 |
192.168.1.1 |
LDAP |
LDAP:Bind Response, MessageID: 36, Status: Success |
En condiciones normales, un usuario deshabilitado no puede realizar una conexión LDAP a Directorio Activo ya que se deniega su acceso indicando que sus credenciales son inválidas:
res = ldap_bind_s(ld, NULL, &NtAuthIdentity, 1158); // v.3 {NtAuthIdentity: User='user1'; Pwd= <unavailable>; domain = 'haledomain'.} Error <49>: ldap_bind_s() failed: Invalid Credentials. Server error: 8009030C: LdapErr: DSID-0C09043E, comment: AcceptSecurityContext error, data 0, vece |
Este mensaje de red se puede observar también en la respuesta obtenida del DC (servidor LDAP) en las trazas de red:
Hora |
Origen |
Destino |
Prot |
Detalles |
13:12:04.417 |
192.168.1.1 |
192.168.1.2 |
LDAP |
LDAP:Search Request, MessageID: 73, BaseObject: NULL, SearchScope: base Object, SearchAlias: neverDerefAliases |
13:12:04.417 |
192.168.1.2 |
192.168.1.1 |
LDAP |
LDAP:Search Result Entry, MessageID: 73 |
13:12:12.208 |
192.168.1.1 |
192.168.1.2 |
LDAP |
LDAP:Bind Request, MessageID: 76, Version: 3 |
13:12:12.208 |
192.168.1.2 |
192.168.1.1 |
LDAP |
LDAP:Bind Response, MessageID: 76, Status: Sasl Bind In Progress |
13:12:12.208 |
192.168.1.1 |
192.168.1.2 |
LDAP |
LDAP:Bind Request, MessageID: 77, Version: 3 |
13:12:12.278 |
192.168.1.2 |
192.168.1.1 |
LDAP |
LDAP:Bind Response, MessageID: 77, Status: Invalid Credentials |
Revisando el visor de sucesos de Seguridad del DC de nuestro entorno de pruebas tras realizar el intento de conexión con el usuario deshabilitado user1, observamos la siguiente secuencia de eventos:
Event Type: Failure Audit Event Source: Security Event Category: Account Logon Event ID: 672 Date: 8/14/2008 Time: 1:09:24 PM User: NT AUTHORITY\SYSTEM Computer: HALEDC01 Description: Authentication Ticket Request: User Name: user1 Supplied Realm Name: haledomain User ID: - Service Name: krbtgt/haledomain Service ID: - Ticket Options: 0x40810010 Result Code: 0x12 Ticket Encryption Type: - Pre-Authentication Type: - Client Address: 127.0.0.1 Certificate Issuer Name: Certificate Serial Number: Certificate Thumbprint: |
Event Type: Success Audit Event Source: Security Event Category: Logon/Logoff Event ID: 552 Date: 8/14/2008 Time: 1:09:24 PM User: HALEDOMAIN\administrator Computer: HALEDC01 Description: Logon attempt using explicit credentials: Logged on user: User Name: administrator Domain: HALEDOMAIN Logon ID: (0x0,0x27F79) Logon GUID: {94b7a00d-5198-8f5c-d90b-566add369611} User whose credentials were used: Target User Name: user1 Target Domain: haledomain Target Logon GUID: - Target Server Name: HALEDC01.haledomain.com Target Server Info: HALEDC01.haledomain.com Caller Process ID: 3256 Source Network Address: - Source Port: - |
Event Type: Failure Audit Event Source: Security Event Category: Account Logon Event ID: 680 Date: 8/14/2008 Time: 1:09:24 PM User: NT AUTHORITY\SYSTEM Computer: HALEDC01 Description: Logon attempt by: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 Logon account: user1 Source Workstation: HALEDC01 Error Code: 0xC0000072 |
Event Type: Failure Audit Event Source: Security Event Category: Logon/Logoff Event ID: 531 Date: 8/14/2008 Time: 1:09:24 PM User: NT AUTHORITY\SYSTEM Computer: HALEDC01 Description: Logon Failure: Reason: Account currently disabled User Name: user1 Domain: haledomain Logon Type: 3 Logon Process: NtLmSsp Authentication Package: NTLM Workstation Name: HALEDC01 Caller User Name: - Caller Domain: - Caller Logon ID: - Caller Process ID: - Transited Services: - Source Network Address: 192.168.1.1 Source Port: 2768 |
En cambio, en el visor de sucesos del DC del entorno que aparentemente autenticaba al usuario deshabilitado se podían ver los siguientes eventos:
Event Type: Failure Audit Event Source: Security Event Category: Account Logon Event ID: 672 Date: 8/14/2008 Time: 1:06:53 PM User: NT AUTHORITY\SYSTEM Computer: HALEDC01 Description: Authentication Ticket Request: User Name: user1 Supplied Realm Name: haledomain User ID: - Service Name: krbtgt/haledomain Service ID: - Ticket Options: 0x40810010 Result Code: 0x12 Ticket Encryption Type: - Pre-Authentication Type: - Client Address: 127.0.0.1 Certificate Issuer Name: Certificate Serial Number: Certificate Thumbprint: |
Event Type: Success Audit Event Source: Security Event Category: Logon/Logoff Event ID: 552 Date: 8/14/2008 Time: 1:06:53 PM User: HALEDOMAIN\administrator Computer: HALEDC01 Description: Logon attempt using explicit credentials: Logged on user: User Name: administrator Domain: HALEDOMAIN Logon ID: (0x0,0x27F79) Logon GUID: {94b7a00d-5198-8f5c-d90b-566add369611} User whose credentials were used: Target User Name: user1 Target Domain: haledomain Target Logon GUID: - Target Server Name: HALEDC01.haledomain.com Target Server Info: HALEDC01.haledomain.com Caller Process ID: 3256 Source Network Address: - Source Port: - |
Event Type: Failure Audit Event Source: Security Event Category: Account Logon Event ID: 680 Date: 8/14/2008 Time: 1:06:53 PM User: NT AUTHORITY\SYSTEM Computer: HALEDC01 Description: Logon attempt by: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 Logon account: user1 Source Workstation: HALEDC01 Error Code: 0xC0000072 |
Event Type: Success Audit Event Source: Security Event Category: Account Logon Event ID: 680 Date: 8/14/2008 Time: 1:06:53 PM User: HALEDOMAIN\Guest Computer: HALEDC01 Description: Logon attempt by: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 Logon account: Guest Source Workstation: HALEDC01 Error Code: 0x0 |
Los tres primeros eventos son iguales en ambos casos:
· El evento 672 indica que se ha intentado realizar una autenticación por KERBEROS con el usuario user1 y se ha devuelto el error 0x12. Este código de error se traduce al siguiente mensaje que indica que el usuario ha sido “revocado” :
KDC_ERR_CLIENT_REVOKED à Clients credentials have been revoked
· El evento 552 indica que se está intentado realizar una conexión al DC utilizando el usuario user1.
· A continuación se muestra el evento 680 indicando que el intento de autenticación del usuario user1 ha resultado fallido y proporciona el código de error 0xC0000072 correspondiente al siguiente mensaje (cuenta de usuario deshabilitada):
STATUS_ACCOUNT_DISABLED à The referenced account is currently disabled and may not be logged on to.
El evento que aparece a continuación de los anteriores es distinto en ambas situaciones:
· En el primer caso (el usuario no puede realizar la conexión LDAP – comportamiento esperado), se recibe el evento 531 indicando que la cuenta de usuario está actualmente deshabilitada: Account currently disabled
· En el entorno que aparentemente permite la conexión del usuario aparece el mismo intento fallido de autenticación pero se observa que, inmediatamente después, existe un intento exitoso de autenticación del usuario Invitado o Guest (evento 680).
Por lo tanto, en realidad no es el usuario user1 el que se está autenticando en el BIND de la conexión LDAP (aunque sea esa la percepción desde el cliente LDAP), sino que su autenticación es denegada y automáticamente se realiza otra autenticación con el usuario Invitado porque dicho usuario se encontraba HABILITADO en el entorno.
La razón de que el usuario posteriormente no pudiera acceder a los datos de la partición del dominio era precisamente por haber realizado la autenticación con la cuenta Invitado, ya que por defecto esta cuenta no tiene permisos de lectura sobre AD.
Es importante resaltar que la recomendación es que la cuenta Invitado permanezca deshabilitada por motivos de seguridad.
Más información sobre la cuenta Invitado (Guest) :
Threats and Countermeasures. Chapter 5: Security Options
Microsoft Security: Windows 2000 Server Baseline Security Checklist
- Paula Tomás Galed
- Anonymous
January 01, 2003
PingBack from http://www.remmrit.com/seguridad