UACME y dí adiós al mensaje “¿Desea permitir que este programa realice cambios en el equipo?”

El Control de Cuentas de Usuario (UAC) en Windows es un componente de seguridad que permite a los usuarios realizar algunas tareas sin tener que cambiar de usuario, cerrar sesión, o utilizar "Ejecutar como".

Las cuentas de usuario que son miembros del grupo Administradores locales ejecutan la mayoría de las aplicaciones como un usuario estándar. Es decir, al separar las funciones de usuario y administrador, UAC permite usar por defecto privilegios estándar y sólo "elevarlos" cuando sea necesario.

Cuando un administrador inicia sesión en un equipo que ejecuta Windows, al usuario se le asignan dos tokens de acceso independientes. Los tokens de acceso, que contienen la pertenencia a grupos de un usuario y los datos de autorización y control de acceso, son utilizados por el sistema operativo para controlar cuáles son los recursos y tareas a los que tiene acceso.

Anteriormente el modelo de control de acceso en los sistemas Windows anteriores no requería ningún token de acceso administrativo. Como resultado, se podía instalar software malicioso sin notificar a los usuarios (instalación "silenciosa"). O peor, si el usuario era administrador, el software malicioso podía llegar a infectar archivos del kernel convirtiéndolo en casi imposible de eliminar. Sin embargo la alerta o prompt "mágico" de UAC da al usuario la oportunidad de detener la amenaza antes de que llegue a materializarse.


Pero el malware siempre va un paso adelante y desarrolla continuamente nuevos métodos para evadir UAC y poder propagarse por el sistema de la víctima sin que se percate. Para ver las técnicas más populares la herramienta de facto es sin duda UACME, escrita en C y de código abierto que, a día de publicación de esta entrada, implementa 23 métodos distintos de los cuales, los cuatro últimos, todavía no han sido corregidos y funcionan desde Windows 7 a 10rs1 14393:

20 - Método híbrido, abusa de la Microsoft Management Console y un incorrecto esquema de carga de dlls
21 - Método híbrido, abusa de SxS DotLocal con sysprep
22 - Método híbrido, abusa de SxS DotLocal con el consentimiento para ganar privilegios de sistema
23 - Método híbrido, abusa del Package Manager y DISM

Su ejecución es tan sencilla como llamar al programa correspondiente a la arquitectura del sistema (32 o 64 bits) con el parámetro del método a probar y opcionalmente otro programa a lanzar después del bypass. Por ej.:

    akagi32.exe 1
    akagi64.exe 3
    akagi32 1 c:\windows\system32\calc.exe
    akagi64 3 c:\windows\system32\charmap.exe


No obstante y avisados estáis, es recomendable ejecutarlo en un entorno de pruebas ya que algunos métodos persisten incluso después de reiniciar y requieren su corrección manual.

Proyecto: https://github.com/hfiref0x/UACME

Comentarios