📘Grupos Integrados en Windows
Windows Built-In Groups
Como se mencionó en la sección Privilegios de usuario en Windows, los servidores Windows, y especialmente los controladores de dominio, tienen una variedad de grupos integrados que se envían con el sistema operativo o se agregan cuando se instala la función de Servicios de dominio de Active Directory en un sistema para promover un servidor a un controlador de dominio. Muchos de estos grupos otorgan privilegios especiales a sus miembros, y algunos se pueden aprovechar para escalar privilegios en un servidor o un controlador de dominio. Aquí hay una lista de todos los grupos integrados de Windows junto con una descripción detallada de cada uno. Esta página tiene una lista detallada de cuentas y grupos privilegiados en Active Directory.
Es esencial comprender las implicaciones de la membresía en cada uno de estos grupos, ya sea que obtengamos acceso a una cuenta que sea miembro de uno de ellos o notemos una membresía excesiva/innecesaria en uno o más de estos grupos durante una evaluación. Para nuestros propósitos, nos centraremos en los siguientes grupos integrados. Cada uno de estos grupos existe en sistemas desde Server 2008 R2 hasta el presente, excepto los administradores de Hyper-V (introducidos con Server 2012).
Se pueden asignar cuentas a estos grupos para aplicar el mínimo privilegio y evitar la creación de más administradores de dominio y administradores de empresa para realizar tareas específicas, como copias de seguridad. A veces, las aplicaciones de proveedores también requerirán ciertos privilegios, que se pueden otorgar asignando una cuenta de servicio a uno de estos grupos. También se pueden agregar cuentas por accidente o quedar sobrantes después de probar una herramienta o secuencia de comandos específica. Siempre debemos verificar estos grupos e incluir una lista de los miembros de cada grupo como apéndice en nuestro informe para que el cliente la revise y determine si el acceso aún es necesario.
Backup Operators
Después de aterrizar en una máquina, podemos usar el comando whoami /groups para mostrar nuestras membresías de grupo actuales. Examinemos el caso en el que somos miembros del grupo Backup Operators. La membresía de este grupo otorga a sus miembros los privilegios SeBackup y SeRestore. El SeBackupPrivilege nos permite recorrer cualquier carpeta y enumerar el contenido de la carpeta. Esto nos permitirá copiar un archivo de una carpeta, incluso si no hay una entrada de control de acceso (ACE) para nosotros en la lista de control de acceso (ACL) de la carpeta. Sin embargo, no podemos hacer esto usando el comando de copia estándar. En su lugar, necesitamos copiar los datos mediante programación, asegurándonos de especificar el indicador FILE_FLAG_BACKUP_SEMANTICS .
Podemos usar esta PoC para explotar el SeBackupPrivilege y copiar este archivo. Primero, importemos las bibliotecas en una sesión de PowerShell.
Importación de bibliotecas
PS C:\htb> Import-Module .\SeBackupPrivilegeUtils.dll
PS C:\htb> Import-Module .\SeBackupPrivilegeCmdLets.dllVerificar que SeBackupPrivilege esté habilitado
Verifiquemos si SeBackupPrivilege está habilitado invocando whoami /privo Get-SeBackupPrivilegecmdlet. Si el privilegio está deshabilitado, podemos habilitarlo con Set-SeBackupPrivilege.
Nota: Según la configuración del servidor, es posible que sea necesario generar un mensaje de CMD elevado para omitir el UAC y tener este privilegio.
Habilitar SeBackupPrivilege
Si el privilegio está deshabilitado, podemos habilitarlo con Set-SeBackupPrivilege.
Copiar un archivo protegido
Como podemos ver arriba, el privilegio se habilitó correctamente. Ahora se puede aprovechar este privilegio para copiar cualquier archivo protegido.
Los comandos anteriores demuestran cómo se accedió a información confidencial sin poseer los permisos necesarios.
Ataque a un Domain Controller: copia de NTDS.dit
Este grupo también permite iniciar sesión localmente en un controlador de dominio. La base de datos de Active Directory NTDS.dit es un objetivo muy atractivo, ya que contiene los hashes NTLM de todos los objetos de usuario y equipo del dominio. Sin embargo, este archivo está bloqueado y tampoco es accesible para usuarios sin privilegios.
Como el archivo NTDS.dit está bloqueado de forma predeterminada, podemos usar la utilidad Diskshadow de Windows para crear una copia de seguridad de la unidad C y exponerla como unidad E. El sistema no utilizará el archivo NTDS.dit de esta copia de seguridad.
Copiar NTDS.dit localmente
A continuación, podemos usar el cmdlet Copy-FileSeBackupPrivilege para omitir la ACL y copiar NTDS.dit localmente.
Copia de las colmenas de SAM y SYSTEM
El privilegio también nos permite realizar copias de seguridad de las colmenas de registro SAM y SYSTEM, de los cuales podemos extraer credenciales de cuentas locales sin conexión usando una herramienta como Impacket secretsdump.py.
Vale la pena señalar que si una carpeta o archivo tiene una entrada de denegación explícita para nuestro usuario actual o un grupo al que pertenece, esto nos impedirá acceder a él, incluso si se especifica la flag FILE_FLAG_BACKUP_SEMANTICS.
Extracción de credenciales de NTDS.dit
Una vez extraído el archivo NTDS.dit, podemos utilizar una herramienta como impacket-secretsdump o el módulo PowerShell DSInternals para extraer todas las credenciales de la cuenta de Active Directory. Obtengamos el hash NTLM solo para la cuenta administrator del dominio utilizando DSInternals.
Extracción de hashes con SecretsDump
También podemos utilizar el método sin conexión SecretsDump para extraer hashes del archivo ntds.dit obtenido anteriormente. Estos pueden utilizarse para pasar el hash y acceder a recursos adicionales o pueden crackearse sin conexión con Hashcat para obtener más acceso. Si se crackean, también podemos presentar al cliente estadísticas de descifrado de contraseñas para proporcionarle información detallada sobre la solidez general de las contraseñas y su uso dentro de su dominio y brindarle recomendaciones para mejorar su política de contraseñas (aumentar la longitud mínima, crear un diccionario de palabras no permitidas, etc.).
Robocopy
La utilidad incorporada robocopy también se puede utilizar para copiar archivos en modo de copia de seguridad. Robocopy es una herramienta de replicación de directorios de línea de comandos. Se puede utilizar para crear trabajos de copia de seguridad e incluye funciones como copia multiproceso, reintento automático, la capacidad de reanudar la copia y más. Robocopy se diferencia del comando copy en que, en lugar de simplemente copiar todos los archivos, puede verificar el directorio de destino y eliminar los archivos que ya no están en el directorio de origen. También puede comparar archivos antes de copiar para ahorrar tiempo al no copiar archivos que no se han modificado desde la última tarea de copia/copia de seguridad ejecutada.
Copiar archivos con Robocopy
Esto elimina la necesidad de herramientas externas.
Caso práctico
Aproveche los derechos de
SeBackupPrivilegey obtenga la flag ubicada enc:\Users\Administrator\Desktop\SeBackupPrivilege\flag.txt
Comprobar privilegios del usuario
Vemos que aparece el privilegio SeBackupPrivilege pero está deshabilitado.
Importación de bibliotecas
Vamos a importar SeBackupPrivilegeCmdLets.dll y SeBackupPrivilegeUtils.dll
Habilitar SeBackupPrivilege
Copiar el archivo usando NTFS Backup
Ya que SeBackupPrivilege permite leer archivos sin restricciones de permisos NTFS, podemos aprovechar robocopy para crear una copia del archivo.
Parámetro
/b: Usa el modo Backup, ignorando permisos.
Ahora el archivo está en C:\temp\flag.txt.
Leer el contenido del archivo
Una vez copiado, simplemente lo leemos:
Última actualización
¿Te fue útil?