Esiste un singolo binario UAC?


27

Esiste un file binario (.exe) nella cartella System32 responsabile delle funzionalità UAC di Windows? (ad es uac.exe.). Cosa succederebbe se quel file venisse eliminato forzatamente? Windows si romperebbe o non si avviava?

Non c'è nessun problema XY qui; Sono solo curioso di sapere cosa succederebbe se l'UAC venisse rimosso forzatamente da un PC.


1
Puoi facilmente disabilitare UAC. UAC è una funzione del kernel. Quello che vuoi non è possibile
Ramhound,

Esiste un file win32k.sys technize.net/… e apparentemente quel file in una finestra pre-patchata, può essere manipolato / modificato..per disabilitare UAC. In alternativa, è possibile disabilitare l'UAC in modo normale, sebbene non sia un file EXE
barlop

È possibile disabilitare UAC usando vari metodi, ad esempio superuser.com/questions/1013702/… . Sto pensando che se lo rimuovessi in un altro modo di hackeraggio, otterresti principalmente lo stesso effetto, anche se con gli errori nelle risposte sotto sui binari mancanti.
YetAnotherRandomUser

@barlop, win32k.sys è solo il lato kernel del sottosistema Windows. In altre parole, il codice principale utilizzato da tutto. Non consiglierei di provare a cambiarlo. pasotech.altervista.org/windows_internals/Win32KSYS.pdf
Dark Falcon

@DarkFalcon Probabilmente c'è di più nel "lato kernel del sottosistema Windows". E non stavo avvisando che si "cambia"! Cosa pensi che qualcuno farà? Aprilo nel blocco note? Non ho mai suggerito una cosa del genere! Apri un editor esadecimale? meglio, ma non l'ho nemmeno suggerito! E nessuno lo farebbe e cambierebbe nulla a meno che non avessero idea di cosa volessero cambiare, il che richiederebbe un certo livello di abilità!
barlop

Risposte:


56

UAC è un'architettura multicomponente implementata da più binari

User Account Control (UAC) si riferisce a diversi componenti che insieme formano l' architettura UAC . Esaminerò brevemente alcuni di essi insieme ai file binari responsabili della loro implementazione, ma prima ecco una panoramica dell'architettura UAC dall'articolo di Microsoft Docs Come funziona il controllo dell'account utente :

inserisci qui la descrizione dell'immagine

Autorità di sicurezza locale (LSA) / token filtrato

Concettualmente il "primo" componente di Controllo dell'account utente è implementato dal sottosistema Autorità di sicurezza locale che gestisce la creazione del token di accesso di un utente durante il processo di accesso. A partire da Windows Vista, il processo di accesso è stato modificato in modo tale che quando un amministratore accede con UAC abilitato, il sottosistema LSA genera due token di accesso separati per l'utente:

  1. Uno con accesso completo da amministratore e
  2. Un secondo "token filtrato" con accesso utente standard

Come mostrato qui, questo processo è diverso da quello di un accesso utente standard:

inserisci qui la descrizione dell'immagine

Il servizio del sottosistema LSA vive nel lsass.exeprocesso.

virtualizzazione

Aggiunta in Windows 7, la virtualizzazione di file e registro è un componente di Controllo dell'account utente che elimina le applicazioni meno recenti non conformi al Controllo dell'account utente ma richiedono solo diritti amministrativi per accedere ad alcune aree protette del filesystem o del registro:

Quando un'applicazione amministrativa non conforme a Controllo account utente tenta di scrivere in una directory protetta, ad esempio Programmi, Controllo account utente offre all'applicazione una propria visualizzazione virtualizzata della risorsa che sta tentando di modificare. La copia virtualizzata viene mantenuta nel profilo dell'utente.

fonte

Reindirizzando questi tentativi di accesso ad aree che non richiedono autorizzazioni di amministratore, queste applicazioni continuano a funzionare nonostante l'UAC sia abilitato sul sistema.

Questa virtualizzazione è implementata nel kernel .

Servizio di informazioni sull'applicazione

Application Information Service (AIS) legge il manifest di un'applicazione e collabora con il prompt di consenso UAC per determinare se è possibile eseguire un'applicazione con diritti elevati (ovvero avviare nel contesto del token di accesso a livello amministrativo non filtrato creato all'accesso) . Questo post sul blog offre una buona panoramica del suo ruolo nel processo di controllo dell'account utente:

AIS Facilita l'esecuzione di applicazioni interattive con privilegi amministrativi aggiuntivi. Se questo servizio viene interrotto, gli utenti non saranno in grado di avviare le applicazioni con i privilegi amministrativi aggiuntivi che potrebbero richiedere .... La shell verifica con questo servizio quando avvia un'applicazione. AIS è quello che legge il manifest e la sezione xml "trustInfo" che ha i requisiti per il "requestExecutionLevel" ...

Ecco un grafico che segue la citazione sopra che illustra in dettaglio il ruolo di AIS nel processo del prompt di consenso UAC:

inserisci qui la descrizione dell'immagine

L'AIS è implementato nella DLLappinfo.dll che viene eseguita da svchost.exe.

Consenso rapido

La risposta di @ BenN spiega il ruolo chiave del (in) famoso prompt di consenso UAC. Questo è implementato consent.exeed è responsabile per ottenere il consenso dell'utente o le credenziali di un utente amministrativo al fine di consentire l'avvio di un'applicazione che richiede i diritti di amministratore.

Desktop sicuro

Secure Desktop è il punto in cui viene visualizzato il prompt di consenso UAC per impostazione predefinita. UACBlog di Microsoft ci dice cosa c'è di unico in questo desktop rispetto al desktop dell'utente:

Di solito interagisci con [il desktop sicuro] quando accedi a Windows poiché l'interfaccia utente di accesso viene eseguita sul desktop sicuro. La differenza principale tra Secure Desktop e User Desktop è che solo i processi affidabili in esecuzione come SYSTEM possono essere eseguiti qui (ovvero nulla in esecuzione come livello di privilegio dell'utente) e che il percorso per accedere a Secure Desktop da User Desktop deve essere considerato attendibile anche tramite l'intera catena.

L'idea alla base del suo utilizzo quando si richiede il consenso dell'utente per eseguire un'applicazione con autorizzazioni elevate è che il malware non può imitare il Secure Desktop a meno che non abbia già diritti amministrativi, nel qual caso ingannare un utente nel concederlo è controverso.


Conclusione: UAC non è solo un binario. È un tessuto di sottosistemi intrecciati.

Ci sono ancora altri aspetti dell'architettura di controllo dell'account utente non trattati qui, ma ciò dovrebbe fornire prove sufficienti per i fatti che:

  1. Controllo dell'account utente non è implementato in un singolo binario.
  2. Se abilitato, è parte integrante dell'esecuzione di attività amministrative.

Dalla sua introduzione in Windows Vista è stato profondamente integrato nelle parti chiave del sistema operativo, rendendo impossibile cancellare tutto il codice responsabile di Controllo dell'account utente senza interrompere altre cose (come la possibilità di accedere!)

Penso che sia sicuro di dire che se si "eliminasse forzatamente" l'UAC si romperebbe Windows.


1
FWIW technize.net/… sulla base di quel link, sembra che il file win32k.sys sembri avere un ruolo, noto che file.exe lo identifica come "PE32 + eseguibile (nativo) x86-64, per MS Windows"
barlop

win32k.sys è - essenzialmente - un grosso pezzo del kernel. Ovviamente gioca un ruolo nell'UAC. Si tratta di Windows.
Roger Lipscombe,

25

Come ha spiegato Twisty in modo eccellente , ci sono molti componenti che aiutano a implementare UAC. La parte di controllo dell'account utente con cui le persone hanno più familiarità è la finestra di dialogo elevazione / consenso:

Questo è fornito da consent.exe"UI di consenso per le applicazioni amministrative". Ho provato a rinominarlo in una macchina virtuale e vedere cosa succede. Come previsto, non viene visualizzato alcun prompt di elevazione quando si utilizza "Esegui come amministratore" - si ottiene invece un errore di file non trovato che incolpa la cosa che si sta tentando di elevare:

non trovato

Il tentativo di utilizzare qualsiasi elemento dell'interfaccia utente del Pannello di controllo che richiede l'elevazione (ovvero l'icona di protezione), anche se è stato effettuato l'accesso come amministratore, non riesce con errori simili. Cercare di avviare operazioni amministrative dal menu Start produce un errore leggermente diverso:

nessuna app associata

A seconda del set ACL quando si fa la ridenominazione che ha rotto tutto, potrebbe essere impossibile risolverlo dall'interno del sistema operativo, poiché le operazioni sui file possono richiedere l'elevazione (anche se di solito non producono la finestra di dialogo del consenso). Tuttavia, le attività simili all'utente normale non sembrano essere degradate.


3
@muru, immagino consenso.exe non solo restituisce vero o falso, ma invece il token da eseguire sotto. Ciò significa che non è possibile passare da un utente normale a un token amministratore senza autenticare effettivamente come amministratore.
Joey,

6
@muru Windows verifica e sostituisce molti file di sistema, non sono sicuro che questo sia incluso o meno. Tuttavia, dal punto di vista della sicurezza, il punto è controverso: per sostituire consent.exe, in primo luogo sono necessari i privilegi di amministratore, quindi non c'è escalation di privilegi anche se fosse possibile sostituire il modo in cui lo si immagina.
Luaan,

3
Solo per includerlo da quando mi è venuto in mente il pensiero. Potresti comunque avviare la macchina su Linux o qualcosa per sostituire il file. Ma ciò richiede un accesso fisico alla macchina, che è fondamentalmente anche un accesso amministrativo. Quindi non è ancora un problema di sicurezza
DeadChex,

1
@EricTowers Sì, ma poiché è necessario modificare i privilegi di amministratore consent.exe, un utente malintenzionato che può farlo è già dall'altra parte della botola a tenuta stagna e ha modi più semplici per fare cose cattive.
Ben N

1
@TwistyImpersonator Domanda interessante! L'elevazione silenziosa sembra anche innescare un'esecuzione del consenso (per monitoraggio dell'avvio del processo ) quando eseguita con un normale account amministratore. L'account amministratore incorporato non è soggetto al controllo dell'account utente, quindi tutti i suoi programmi sono già elevati e il consenso non viene coinvolto. È possibile modificare tale comportamento utilizzando questa politica di sicurezza .
Ben N
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.