¿Hay un solo binario UAC?

27

¿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.

Kathy
fuente
1
Puede deshabilitar fácilmente UAC. UAC es una función del núcleo. Lo que quieres no es posible
Ramhound
Hay un archivo win32k.sys technize.net/… y aparentemente ese archivo en una ventana previamente parcheada, puede ser manipulado / cambiado ... para deshabilitar UAC. Alternativamente, uno puede deshabilitar UAC de manera normal, aunque no es un archivo EXE
barlop
Puede deshabilitar UAC usando varios métodos, por ejemplo superuser.com/questions/1013702/… . Estoy pensando que si lo eliminas de otra manera, obtendrás el mismo efecto, aunque con los errores en las respuestas a continuación sobre los binarios faltantes.
YetAnotherRandomUser
@barlop, win32k.sys es solo el lado del kernel del subsistema de Windows. En otras palabras, el código central utilizado por todo. No recomendaría intentar cambiarlo. pasotech.altervista.org/windows_internals/Win32KSYS.pdf
Dark Falcon
@DarkFalcon Probablemente hay más en el "lado del kernel del subsistema de Windows" que eso. ¡Y no estaba aconsejando que uno "lo cambiara"! ¿Qué crees que alguien va a hacer? ¿Abrirlo en el bloc de notas? ¡Nunca sugerí tal cosa! ¿Abrir un editor hexadecimal? mejor, ¡pero tampoco sugerí eso! ¡Y nadie haría eso y cambiaría nada a menos que tuvieran alguna idea de lo que querían cambiar, lo que requeriría un cierto nivel de habilidad!
barlop

Respuestas:

56

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 :

ingrese la descripción de la imagen aquí

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:

  1. Uno con acceso de administrador completo, y
  2. Un segundo "token filtrado" con acceso de usuario estándar

Como se muestra aquí, este proceso es diferente al de un inicio de sesión de usuario estándar:

ingrese la descripción de la imagen aquí

El servicio del subsistema LSA vive en el lsass.exeproceso.

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:

Cuando una aplicación administrativa que no es compatible con UAC intenta escribir en un directorio protegido, como Archivos de programa, UAC le da a la aplicación su propia vista virtualizada del recurso que está intentando cambiar. La copia virtualizada se mantiene en el perfil del usuario.

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:

AIS facilita la ejecución de aplicaciones interactivas con privilegios administrativos adicionales. Si se detiene este servicio, los usuarios no podrán iniciar aplicaciones con los privilegios administrativos adicionales que puedan requerir ... El shell verifica con este servicio cuando inicia una aplicación. AIS es el que lee el manifiesto y la sección xml 'trustInfo' que tiene los requisitos para el 'nivel de ejecución solicitado' ...

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:

ingrese la descripción de la imagen aquí

El AIS se implementa en la DLLappinfo.dll ejecutada por svchost.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.exey 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:

Comúnmente interactúa con [el Escritorio seguro] cuando inicia sesión en Windows ya que la IU de inicio de sesión se ejecuta en el Escritorio seguro. La principal diferencia del Escritorio seguro del Escritorio del usuario es que solo los procesos confiables que se ejecutan como SYSTEM se pueden ejecutar aquí (es decir, nada que se ejecute como nivel de privilegio del Usuario) y la ruta para llegar al Escritorio seguro desde el Escritorio del usuario también debe ser confiable a través de Toda la cadena.

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:

  1. UAC no se implementa en un solo binario.
  2. Si está habilitado, es una parte integral de la realización de tareas administrativas.

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.

Yo digo reinstalar a Mónica
fuente
1
FWIW technize.net/… basado en ese enlace, parece que el archivo win32k.sys parece jugar un papel, noto que file.exe lo identifica como "PE32 + ejecutable (nativo) x86-64, para MS Windows"
barlop
win32k.sys es, esencialmente, una gran parte del núcleo. Por supuesto , juega un papel en UAC. Que es de Windows.
Roger Lipscombe
25

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:

extraviado

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:

ninguna aplicación asociada

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.

Ben N
fuente
3
@muru, supongo que consent.exe no solo devuelve verdadero o falso, sino el token para ejecutar bajo. Lo que significa que no puede pasar de un usuario normal a un token de administrador sin realmente autenticarse como administrador.
Joey
66
@muru Windows verifica y reemplaza muchos archivos del sistema, no estoy seguro si este está incluido o no. Sin embargo, desde un punto de vista de seguridad, el punto es discutible: para reemplazar consent.exe, necesita privilegios de administrador en primer lugar, por lo que no hay escalada de privilegios, incluso si fuera posible reemplazar la forma en que lo imagina.
Luaan
3
Solo para incluirlo ya que el pensamiento vino a mi mente. Todavía puede iniciar la máquina en Linux o algo para reemplazar el archivo. Pero eso requiere acceso físico a la máquina, que es básicamente acceso administrativo también. Así que todavía no es un problema de seguridad
DeadChex
1
@EricTowers Sí, pero dado que se requieren privilegios administrativos para alterar 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.
Ben N
1
@TwistyImpersonator ¡Pregunta interesante! La elevación silenciosa también parece desencadenar una ejecución de Consentimiento (por monitoreo de inicio de proceso ) cuando se realiza bajo una cuenta de administrador normal. La cuenta de administrador integrada no está sujeta a UAC, por lo que todos sus programas ya están elevados y el consentimiento no se involucra. Puede cambiar ese comportamiento utilizando esta política de seguridad .
Ben N