¿Hay un binario (.exe) en la carpeta System32 responsable de las funcionalidades de Windows UAC? (p uac.exe
. ej .) ¿Qué pasaría si ese archivo se eliminara forzosamente? ¿Windows se rompería o no podría arrancar?
No hay problema XY aquí; Tengo curiosidad por saber qué pasaría si UAC se eliminara por la fuerza de una PC.
Respuestas:
UAC es una arquitectura de múltiples componentes implementada por múltiples binarios
El Control de cuentas de usuario (UAC) se refiere a varios componentes que juntos forman la arquitectura UAC . Revisaré brevemente algunos de ellos junto con los binarios responsables de su implementación, pero primero aquí hay una descripción general de la arquitectura UAC del artículo de Microsoft Docs Cómo funciona el Control de cuentas de usuario :
Autoridad de seguridad local (LSA) / Token filtrado
Conceptualmente, el "primer" componente de UAC es implementado por el subsistema de la Autoridad de Seguridad Local que maneja la creación del Token de acceso de un usuario durante el proceso de inicio de sesión. A partir de Windows Vista, el proceso de inicio de sesión se modificó de modo que cuando un administrador inicia sesión con UAC habilitado, el subsistema LSA genera dos tokens de acceso separados para el usuario:
Como se muestra aquí, este proceso es diferente al de un inicio de sesión de usuario estándar:
El servicio del subsistema LSA vive en el
lsass.exe
proceso.Virtualización
Agregado en Windows 7, la virtualización de archivos y registros es un componente de UAC que calza las aplicaciones más antiguas que no son compatibles con UAC pero solo requieren derechos administrativos para acceder a ciertas áreas protegidas del sistema de archivos o registro:
Fuente
Al redirigir estos intentos de acceso a áreas que no requieren permisos de administrador, estas aplicaciones continúan funcionando a pesar de que UAC está habilitado en el sistema.
Esta virtualización se implementa en el Kernel .
Servicio de información de aplicaciones
El Servicio de información de aplicaciones (AIS) lee el manifiesto de una aplicación y trabaja con la solicitud de consentimiento de UAC para determinar si una aplicación puede ejecutarse con derechos elevados (es decir, comenzar en el contexto del token de acceso de nivel administrativo no filtrado creado al iniciar sesión) . Esta publicación de blog ofrece una buena descripción de su papel en el proceso de UAC:
Aquí hay un gráfico que sigue la cita anterior que detalla el papel de AIS en el proceso de solicitud de consentimiento de UAC:
El AIS se implementa en la DLL
appinfo.dll
ejecutada porsvchost.exe
.Aviso de consentimiento
La respuesta de @ BenN explica el papel clave de la (in) famosa solicitud de consentimiento de UAC. Esto se implementa
consent.exe
y es responsable de obtener el consentimiento del usuario o las credenciales de un usuario administrativo para permitir el lanzamiento de una aplicación que requiera derechos de administrador.Escritorio seguro
El Escritorio seguro es donde se muestra la solicitud de consentimiento de UAC de forma predeterminada. El UACBlog de Microsoft nos dice qué tiene de especial este Escritorio en comparación con el Escritorio del Usuario:
La idea detrás de usarlo cuando se solicita el consentimiento del usuario para ejecutar una aplicación con permisos elevados es que el malware no puede imitar el Escritorio seguro a menos que ya tenga derechos administrativos, en cuyo caso engañar a un usuario para que se los otorgue es discutible.
Conclusión: UAC no es solo un binario. Es un tejido de subsistemas entrelazados.
Todavía hay otros aspectos de la arquitectura UAC que no se tratan aquí, pero esto debería proporcionar evidencia suficiente de los hechos que:
Desde su introducción en Windows Vista, se ha integrado profundamente en partes clave del sistema operativo, por lo que no es factible eliminar todo el código responsable de UAC sin romper otras cosas (como su capacidad para iniciar sesión).
Creo que es seguro decir que si "eliminas por la fuerza" UAC, romperías Windows.
fuente
Como Twisty explicó de manera excelente , hay muchos componentes que ayudan a implementar UAC. La parte de UAC con la que las personas están más familiarizadas es el diálogo de elevación / consentimiento:
Esto lo proporciona
consent.exe
"IU de consentimiento para aplicaciones administrativas". Intenté renombrarlo en una VM y ver qué pasa. Como se esperaba, no aparecen avisos de elevación cuando se usa "ejecutar como administrador"; en su lugar, aparece un error de archivo no encontrado que culpa a lo que está intentando elevar:Intentar utilizar cualquier elemento de la IU del Panel de control que requiera elevación (es decir, que tenga el icono de escudo), incluso si ha iniciado sesión como administrador, falla con errores similares. Intentar iniciar cosas administrativas desde el menú Inicio produce un error ligeramente diferente:
Dependiendo de la ACL establecida al hacer el cambio de nombre que rompió todo, podría ser imposible solucionar esto desde el sistema operativo, ya que las operaciones de archivo pueden requerir elevación (incluso si generalmente no producen el diálogo de consentimiento). Sin embargo, las actividades normales de usuario no parecen estar degradadas.
fuente
consent.exe
, un atacante que puede hacerlo ya está al otro lado de la escotilla hermética y tiene formas más directas de hacer cosas malas.