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):


 


User and computer accounts


 


Threats and Countermeasures. Chapter 5: Security Options


 


Microsoft Security: Windows 2000 Server Baseline Security Checklist


 


 


      Paula Tomás Galed

Comments (1)