Hola a tod@s en este artículo voy a explicar una de las técnicas para hacer «UAC ByPass» a un Windows 10 relativamente actualizado, se podrá ver como mediante la utilización de herramientas se edita el registro de Windows 10 para poder tener una cmd con privilegios de administrador sin necesidad de que salte UAC.
El concepto de bypass UAC es la consecución por parte de un usuario, que pertenece al grupo de administradores, de lograr ejecutar un proceso o código con privilegio sin tener que dar el consentimiento al UAC. En otras palabras, cuando se consigue ejecutar un proceso que el usuario quiere, sin que el UAC proporcione la aprobación.
Para que un bypass de UAC se pueda llevar a cabo, generalmente, se tienen que cumplir una serie de condiciones:
- El usuario que ejecuta el proceso que se utilizará para el bypass debe formar parte del grupo administradores.
- La política del UAC debe estar ejecutándose, generalmente, con su configuración por defecto.
- El binario que se utilizará para llevar a cabo el bypass debe estar firmado por Microsoft y tener la opción de AutoElevate a true. En este caso, ante la ejecución del UAC, con su configuración por defecto, el proceso se ejecutará y no se solicitará el consentimiento del UAC.
Puede existir casos en los que las condiciones cambien, pero generalmente, el usuario se encontrará con estos casos.
Comenzamos con la prueba de concepto sobre un Windows 10:
Una vez clara la versión del equipo víctima vamos a comprobar que esa versión es vulnerable al bypass que vamos a utilizar, esto lo vamos a comprobar con una de las herramientas de Sysinternals llamada sigcheck, con el cual vamos a ver el manifiesto del ejecutable que vamos a utilizar para ejecutar nuestra cmd con privilegios de administrador.
Como a menudo con UAC, el fallo proviene de un proceso autoelevado. Estos procesos tienen la particularidad de ejecutarse con un alto nivel de integridad sin solicitar al administrador local la ventana habitual de UAC.
En este caso el ejecutable es sdclt.exe, que es utilizado para los mecanismos de copias de seguridad y restauración de Windows, comenzamos comprobando que nuestro ejecutable es autoelevado:
Una vez hemos comprobado que nuestro proceso es autoelevado, vamos a analizar el proceso de ejecución del ejecutable, esto lo haremos con una herramienta de Sysinternals llamada Process Monitor:
Cuando ejecutemos la herramienta, nos da la posibilidad de hacer unos ajustes de filtrado, nosotros vamos añadir las siguientes 3 reglas, ya que Windows 10 puede generar muchísimos cambios en cuestión de segundos y el log se puede hacer demasiado grande:
Tras añadir los filtros, vamos a ejecutar nuestro exe, para analizarlo:
Nos aparecerá la siguiente ventana:
Tras ejecutar sdclt.exe, nos dirigiremos a Process Monitor y podremos confirmar que tendremos los siguientes registros:
Podemos ver que control.exe no puede encontrar un comando abierto para el objeto «carpeta» en el registro de usuarios actual (HKCU). Esta es una señal que debemos aprovechar, ya que no se requieren privilegios de UAC para escribir en ese registro y básicamente podemos hacer que un proceso elevado ejecute el comando que queramos con permisos de administrador.
Procedemos a añadir un valor al registro que hemos comentado:
reg add «HKCU\Software\Classes\Folder\shell\open\command» /d «cmd.exe» /f && reg add HKCU\Software\Classes\Folder\shell\open\command /v «DelegateExecute» /f
Con el comando anterior lo que vamos hacer, es añadir al valor de command «cmd.exe», lo que hará ejecutar una cmd con permisos de adminsitrador, una vez hemos añadido correctamente los valores al registro, procedemos ejecutar el bypass:
Esto nos devolverá una cmd con permisos de administrador:
Está sería la cmd de un usuario estándar:
Espero que os haya gustado este post. Ya sabéis compartir y dar me gusta no cuesta nada. Un saludo, David.
Fuentes:
http://blog.sevagas.com/?Yet-another-sdclt-UAC-bypass
https://github.com/hfiref0x/UACME
https://www.elevenpaths.com/wp-content/uploads/2018/02/whitepaper-uac-a-mola.pdf