📘Print Operators
Los operadores de impresión son otro grupo con muchos privilegios, que otorga a sus miembros los derechos SeLoadDriverPrivilege
para administrar, crear, compartir y eliminar impresoras conectadas a un controlador de dominio, así como la capacidad de iniciar sesión localmente en un controlador de dominio y apagarlo. Si emitimos el comando whoami /priv
y no vemos el SeLoadDriverPrivilege
desde un contexto no elevado, necesitaremos omitir el UAC.
Explotación con interfaz gráfica
Confirmando privilegios
Comprobando nuevamente los privilegios
El repositorio de UACMe incluye una lista completa de omisiones de UAC, que se pueden utilizar desde la línea de comandos. Alternativamente, desde una GUI, podemos abrir un shell de comandos administrativos e ingresar las credenciales de la cuenta que es miembro del grupo Operadores de impresión. Si examinamos los privilegios nuevamente, SeLoadDriverPrivilege
está visible pero deshabilitado.
Es bien sabido que el controlador Capcom.sys
contiene una funcionalidad que permite a cualquier usuario ejecutar código shell con privilegios de SISTEMA. Podemos usar nuestros privilegios para cargar este controlador vulnerable y escalar privilegios. Podemos usar esta herramienta para cargar el controlador. La PoC habilita el privilegio y también carga el controlador por nosotros.
Descárguelo localmente y edítelo, pegándolo sobre los archivos incluidos a continuación.
A continuación, desde el CMD para desarrolladores de Visual Studio 2019, compílelo usando cl.exe .
Compilar con cl.exe
Agregar referencia al controlador
A continuación, descargue el Capcom.sys
controlador desde aquí y guárdelo en C:\temp
. Ejecute los comandos siguientes para agregar una referencia a este controlador en nuestro árbol HKEY_CURRENT_USER.
La sintaxis extraña \??\
que se utiliza para hacer referencia a la ruta de imagen de nuestro controlador malicioso es una ruta de objeto NT . La API Win32 analizará y resolverá esta ruta para localizar y cargar correctamente nuestro controlador malicioso.
Verificar que el controlador no esté cargado
Usando DriverView.exe de Nirsoft , podemos verificar que el controlador Capcom.sys no esté cargado.
Verificar que el privilegio esté habilitado
Ejecute el binario EnableSeLoadDriverPrivilege.exe
.
Verificar que el controlador de Capcom esté en la lista
A continuación, verifique que el controlador de Capcom ahora aparezca en la lista.
ExploitCapcom para aumentar los privilegios
Para explotar el Capcom.sys, podemos utilizar la herramienta ExploitCapcom después de compilar con Visual Studio.
Esto lanza un shell con privilegios de SYSTEM.
Explotación alternativa: sin interfaz gráfica de usuario
Si no tenemos acceso GUI al objetivo, tendremos que modificar el código de ExploitCapcom.cpp
antes de compilar. Aquí podemos editar la línea 292 y reemplazarla con "C:\\Windows\\system32\\cmd.exe"
, digamos, un binario de reverse shell creado con msfvenom
, por ejemplo: c:\ProgramData\revshell.exe
.
La string CommandLine
en este ejemplo se cambiaría a:
Configuraríamos un receptor en función del payload que generamos con msfvenom
y, con suerte, recibiríamos una conexión de shell reversa al ejecutar ExploitCapcom.exe
. Si una conexión de shell reversa se bloquea por algún motivo, podemos intentar un payload de usuario de bind shell o exec/add.
Automatizar los pasos
Automatización con EopLoadDriver
Podemos utilizar una herramienta como EoPLoadDriver para automatizar el proceso de habilitar el privilegio, crear la clave de registro y ejecutar la carga NTLoadDriver
del controlador. Para ello, ejecutaríamos lo siguiente:
Luego correríamos ExploitCapcom.exe
para abrir un shell de SYSTEM o ejecutaríamos nuestro binario personalizado.
Limpieza
Eliminar clave de registro
Podemos cubrir un poco nuestras huellas eliminando la clave de registro agregada anteriormente.
Nota: Desde Windows 10 versión 1803, el "SeLoadDriverPrivilege
" no se puede explotar, ya que ya no es posible incluir referencias a claves de registro en "HKEY_CURRENT_USER".
Caso práctico
Siga los pasos de esta sección para escalar privilegios a SYSTEM y enviar el contenido del archivo flag.txt del escritorio del administrador. Las herramientas necesarias para ambos métodos se pueden encontrar en el directorio
C:\Tools
, o puede practicar compilándolas y cargándolas por su cuenta.
Comprobar privilegios del usuario
Última actualización
¿Te fue útil?