Identificación de ACLs vulnerables

Primero para poder explotar las ACLs tendremos que identificar cuales pueden ser vulnerables para poder ser explotadas:

Listado de ACLs vulnerables

A continuación os indico un listado de ACEs que debemos tener en cuenta desde el punto de vista de seguridad de cara a su explotación:

  • ForceChangePassword: Proporciona la capacidad de cambiar la contraseña del usuario objetivo sin conocer el valor actual. Abusado con Set-DomainUserPassword

  • AddMembers: Proporciona la capacidad de añadir usuarios, grupos o equipos arbitrarios al grupo de destino. Abusado con Add-DomainGroupMember

  • GenericAll: Proporciona control total del objeto, incluyendo la capacidad de añadir otros usuarios a un grupo, cambiar una contraseña de usuario sin conocer su valor actual, registrar un SPN con un objeto de usuario, etc. Abusado con Set-DomainUserPassword o Add-DomainGroupMember

  • GenericWrite: Proporciona la capacidad de actualizar cualquier valor de parámetro de objeto de destino no protegido. Por ejemplo, actualizar el valor del parámetro "scriptPath" en un objeto de usuario de destino para hacer que ese usuario ejecute los comandos/ejecutables especificados la próxima vez que se conecte. Abusado con Set-DomainObject

  • WriteOwner: Proporciona la capacidad de actualizar el propietario del objeto de destino. Una vez que el propietario del objeto ha sido cambiado a un usuario que el atacante controla, el atacante puede manipular el objeto de la manera que crea conveniente. Abusado con Set-DomainObjectOwner

  • WriteDACL: Proporciona la capacidad de escribir una nueva ACE en la DACL del objeto objetivo. Por ejemplo, un atacante puede escribir una nueva ACE en la DACL del objeto de destino, dándole el "control total" del objeto de destino. Abusado con Add-NewADObjectAccessControlEntry

  • AllExtendedRights: Proporciona la capacidad de realizar cualquier acción asociada con los derechos extendidos de Active Directory contra el objeto. Por ejemplo, añadir usuarios a un grupo y forzar el cambio de la contraseña de un usuario de destino. Se abusa con Set-DomainUserPassword o Add-DomainGroupMember

Por supuesto, esta no es la lista completa de ACEs que pueden vulnerarse, existen decenas de permisos que bajo ciertas circunstancias también pueden llegar a ser explotados.

Ahora que nosotros tenemos un entorno mas realista en nuestro DC con muchisimas DACLs, ACLs, usuarios, grupos, etc... Si nosotros con PowerView intentamos enumerar como haciamos anteriormente vamos a ver que es un locura la de informacion que nos porpociona, por lo que no es muy factible utilizarlo sin filtros, por lo que vamos hacer lo siguiente:

cd .\Desktop\
. .\new_powerview.ps1

Una vez que tengamos cargado el PowerView vamos a añadir filtros para listas todos los grupos y elegir el que nos interese, de ahi podremos elegir un target para poder atacarlo.

Get-DomainGroup | select grouptype,name,description

Info:

grouptype name                                    description
                                      --------- ----                                    -----------
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Administrators                          Administrators have complete...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Users                                   Users are prevented from mak...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Guests                                  Guests have the same access ...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Print Operators                         Members can administer print...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Backup Operators                        Backup Operators can overrid...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Replicator                              Supports file replication in...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Remote Desktop Users                    Members in this group are gr...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Network Configuration Operators         Members in this group can ha...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Performance Monitor Users               Members of this group can ac...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Performance Log Users                   Members of this group may sc...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Distributed COM Users                   Members are allowed to launc...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY IIS_IUSRS                               Built-in group used by Inter...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Cryptographic Operators                 Members are authorized to pe...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Event Log Readers                       Members of this group can re...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Certificate Service DCOM Access         Members of this group are al...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY RDS Remote Access Servers               Servers in this group enable...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY RDS Endpoint Servers                    Servers in this group run vi...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY RDS Management Servers                  Servers in this group can pe...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Hyper-V Administrators                  Members of this group have c...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Access Control Assistance Operators     Members of this group can re...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Remote Management Users                 Members of this group can ac...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Storage Replica Administrators          Members of this group have c...
                         GLOBAL_SCOPE, SECURITY Domain Computers                        All workstations and servers...
                         GLOBAL_SCOPE, SECURITY Domain Controllers                      All domain controllers in th...
                      UNIVERSAL_SCOPE, SECURITY Schema Admins                           Designated administrators of...
                      UNIVERSAL_SCOPE, SECURITY Enterprise Admins                       Designated administrators of...
                   DOMAIN_LOCAL_SCOPE, SECURITY Cert Publishers                         Members of this group are pe...
                         GLOBAL_SCOPE, SECURITY Domain Admins                           Designated administrators of...
                         GLOBAL_SCOPE, SECURITY Domain Users                            All domain users
                         GLOBAL_SCOPE, SECURITY Domain Guests                           All domain guests
                         GLOBAL_SCOPE, SECURITY Group Policy Creator Owners             Members in this group can mo...
                   DOMAIN_LOCAL_SCOPE, SECURITY RAS and IAS Servers                     Servers in this group can ac...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Server Operators                        Members can administer domai...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Account Operators                       Members can administer domai...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Pre-Windows 2000 Compatible Access      A backward compatibility gro...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Incoming Forest Trust Builders          Members of this group can cr...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Windows Authorization Access Group      Members of this group have a...
CREATED_BY_SYSTEM, DOMAIN_LOCAL_SCOPE, SECURITY Terminal Server License Servers         Members of this group can up...
                   DOMAIN_LOCAL_SCOPE, SECURITY Allowed RODC Password Replication Group Members in this group can ha...
                   DOMAIN_LOCAL_SCOPE, SECURITY Denied RODC Password Replication Group  Members in this group cannot...
                         GLOBAL_SCOPE, SECURITY Read-only Domain Controllers            Members of this group are Re...
                      UNIVERSAL_SCOPE, SECURITY Enterprise Read-only Domain Controllers Members of this group are Re...
                         GLOBAL_SCOPE, SECURITY Cloneable Domain Controllers            Members of this group that a...
                         GLOBAL_SCOPE, SECURITY Protected Users                         Members of this group are af...
                         GLOBAL_SCOPE, SECURITY Key Admins                              Members of this group can pe...
                      UNIVERSAL_SCOPE, SECURITY Enterprise Key Admins                   Members of this group can pe...
                   DOMAIN_LOCAL_SCOPE, SECURITY DnsAdmins                               DNS Administrators Group
                         GLOBAL_SCOPE, SECURITY DnsUpdateProxy                          DNS clients who are permitte...
                         GLOBAL_SCOPE, SECURITY Office Admin
                         GLOBAL_SCOPE, SECURITY IT Admins
                         GLOBAL_SCOPE, SECURITY Executives
                         GLOBAL_SCOPE, SECURITY Senior management
                         GLOBAL_SCOPE, SECURITY Project management
                         GLOBAL_SCOPE, SECURITY marketing
                         GLOBAL_SCOPE, SECURITY sales
                         GLOBAL_SCOPE, SECURITY accounting

Vemos varios interesantes y los que mas nos interesan son los grupos en los que lleve la palabra admins, pero el mas importante de todos es el de admins. del dominio por lo que vamos a ver que DACLs tiene incorporado dicho grupo para asi poder saber si es vulnerable por alguna mala configuracion o no.

Info:

Vemos que nos vuelca todos las ACLs de dicho grupo, podremos ir mirando cual es cada una con el SID de cada uno de ellos traduciendolo de la siguiente forma, por ejemplo si quiero ver que significa este SID del ultimo ACL podremos hacerlo asi:

Info:

Por lo que vemos es de CORP\Domain Admins y vemos que pertenece a GenericAll que es uno de los que nos interesaba, tiene el acceso en AccessAllowed y su SecurityIdentifier traducido seria:

Info:

Por lo que vemos ya hemos sacado bastante informaicon de una ACL, esto seria ir viendo una por una, cual es la mas optima para poder escalar privilegios o cual tuviera alguna mala configuracion.

Pero si queremos filtrar para que todo se vea de mejor forma, podremos hacerlo de la siguiente forma:

Info:

Pero si no queremos verlo como SID y queremos verlo como nombre podremos traducirlo directamente con el siguiente comando:

Info:

Si queremos realizar un escaneo de todas las ACLs que tenemos dentro de nuestro dominio filtrandolo por la informacion importante, pero nos muestra aquellas que tienen un valor mayor a 1000 que lo que significa es que esta DACL se ha creado despues, por lo que no es una por defecto, es una que haya creado un administrador lo que puede significar que pueda tener una mala configuracion o algo parecido.

Info:

Pero para no tener que ir en la consola viendo uno por uno todo esto, vamos a utilizar BloodHound mejor ya que es mucho mejor para identificar este tipo de cosas, por lo que vamos a volver a cargar el archivo sh.ps1 y volcar los ficheros nuevamente en el escritorio para pasarlo a nuestro kali.

Y con esto ya lo habremos generado, ahora el ZIP nos lo pasamos a nuestro kali.

Por lo que solo tendremos que arrastrar el archivo en el BloodHound y estaria listo.

En otra terminal.

Y arrastramos el archivo al bloodhound, esto cargara los nuevos archivos de lo que habia anteriormente, por lo que lo actualizaremos.

Ahora vamos a darle a la siguiente opcion en la seccion de Analysis:

Para buscar las rutas mas rapidas para poder ser de dicho grupo y asi poder ser admins.

Vemos algo asi parecido, vemos varias vias por las que tirar para poder ser dicho grupo y ser admins.

Si nosotros pulsamos sobre el objeto de DOMAIN ADMINS y nos vamos abajo del todo, podremos ver estos 2 apartados:

El primero es que privilegios tiene este objeto sobre otros objetos de forma muy resumida, que este apartado no viene en el propio Windows.

El segundo (DACL) es sobre los objetos que tienen control explicito sobre el objeto DOMAIN ADMINS y si le damos a Explicit Object Controllers de forma grafica nos mostrara cuales son esos objetos.

Ya con esto podemos ver de todas esas lineas que estamos viendo la informacion de como pueden ser explotadas, por lo que nos facilita mucho mas el trabajo de explotacion, el cual veremos un poco mas adelante.

Si le damos al objeto llamado ADMINISTRATORS y le damos a la siguiente opcion.

Para ver que usuarios tiene dentro de dicho grupo, veremos lo siguiente:

Por lo que vemos aparece el IT Admins el cual metimos anteriormente al grupo de Administradores, si vemos que usuarios tiene de forma directa:

Vemos los siguientes, por lo que estos podrian delegar los privilegios de administrador, los cuales nos interesa.

Last updated