UAC e servizi Windows

8

Un utente ha uno script PowerShell che esegue alcune operazioni che richiedono l'accesso amministrativo su Windows Server 2012 con UAC abilitato.

Quando eseguono lo script come amministratore locale, falliscono con l'accesso negato. Ma se elevano le loro autorizzazioni ed eseguono lo script come amministratore, funziona. Fin qui tutto bene.

Ora hanno un servizio Windows personalizzato che esegue lo script PowerShell. Il servizio Windows è configurato per l'esecuzione con lo stesso account di amministratore locale (ad esempio, non su Sistema locale / Servizio di rete / ecc.). Lo script fallisce con l'accesso negato, come se l'account non fosse un amministratore. Nelle versioni precedenti di Windows, lo script funziona correttamente.

Come si applica UAC nel mondo dei servizi di Windows? Supponevo che un servizio di Windows eseguito con un account di amministratore locale personalizzato fosse sempre "elevato", ma in questo caso sembra che non sia vero.

    
posta Paul Stovell 28.02.2013 - 12:21
fonte

4 risposte

4

When they run the script as a Local Administrator, it fails with access denied.

Quindi questo significa che essere un "Amministratore locale" non è sufficiente per eseguire lo script. Ciò dimostra che "Amministratore locale" non copre l'intera serie di diritti sulla macchina. Nel contesto di UAC , un "Amministratore locale" fa non ha i pieni diritti di un "amministratore" (come visto dal sistema operativo), ma, quando chiede di fare qualcosa che richiede diritti amministrativi, l'UAC intercetta la chiamata e invece di rifiutare senza cerimonie la richiesta con un codice di errore, richiede all'utente . Se l'utente dice "sì, vai avanti", allora al processo vengono concessi diritti elevati. Dal punto di vista del processo, tutto funziona come se fosse sempre stato un "vero amministratore".

I servizi non vengono eseguiti in una sessione, ma "come servizio". Ciò significa che non c'è nessun utente da richiedere. Pertanto, l'UAC, come configurato per impostazione predefinita, non può concedere diritti di "amministratore vero" su richiesta.

Apparentemente, puoi configurare UAC per non richiedere mai, e invece concedere i diritti (che sostanzialmente annulla i benefici di sicurezza, se ce ne sono, di UAC); vedere ad esempio questo post del blog ) . Una soluzione migliore sarebbe quella di eseguire il servizio come un account che è già un vero amministratore, non l'imitazione economica che va sotto il pomposo nome di "Amministratore locale".

    
risposta data 28.02.2013 - 19:57
fonte
1

Controllo dell'account utente non dovrebbe influire sui servizi di sistema. Oltre a questa domanda, non riesco a trovare alcuna prova che abbia mai fatto e ho provato su Windows 7, Windows 10v1607 e Windows 10v1803 senza poter riprodurre il problema.

Concludo che o c'è qualcosa di insolito nella tua particolare macchina che sta causando questo, o che il tuo problema è causato da qualcos'altro, ad esempio il tipo di servizio SID è impostato su limitato, o stai correndo in un ACL che concede l'accesso solo a INTERACTIVE.

I futuri lettori che riscontrano questo problema sono invitati a inviarmi un'e-mail se desiderano assistenza per risolvere il problema. Il mio indirizzo email è nel mio profilo.

    
risposta data 16.07.2018 - 23:31
fonte
-1

Se esistesse una scorciatoia per ottenere l'accesso amministrativo, sarebbe una vulnerabilità. Un servizio Windows richiede l'accesso amministrativo per l'installazione. C'era una volta sotto Windows tutto il processo funzionava con diritti amministrativi, e nessuno dovrebbe usare questi vecchi sistemi. Un sistema NT4 "completamente aggiornato" può essere posseduto in remoto . Quindi anche gli utenti non autenticati remoti hanno diritti amministrativi sui vecchi sistemi Windows!

    
risposta data 28.02.2013 - 19:41
fonte
-1

Quando si appartiene a un gruppo di amministratori locali su Windows Server o Windows 7 0r 8 per impostazione predefinita non viene fornito il token di amministrazione completo, ad esempio nemmeno come amministratore sulla macchina quando si esegue cmd.exe e si fa clic su Esegui come amministratore devi passare UAC (desktop sicuro) quando dici di sì al prompt UAC ti viene dato un token di amministrazione completo per il processo.Even explorer.exe su Windows non viene eseguito con i diritti di amministratore completi, se non credi aprire il prompt dei comandi amministrativo e nel task manager kill explorer.exe e utilizzare questo comando psexec -h explorer.exe nella shell di amministrazione (cmd.exe), quindi quando si fa clic su cmd in questo nuovo explorer.exe verrà eseguito automaticamente con diritti di amministratore senza coinvolgere UAC, lasciando questo esempio la domanda precedente può essere risolta semplicemente eseguendo il servizio in Account di sistema locale, poiché questo account non appartiene a nessun sottosistema di sicurezza e UAC non ti chiederà mai, ma rende il tuo servizio non interattivo e funziona su Service-0x0-3e7 $ stazione di Windows, è t hat winstation che possiede qualsiasi servizio che carichi in Local System e non è interattivo, quindi sei in qualche modo al sicuro da manomissioni dell'utente

    
risposta data 30.07.2014 - 12:40
fonte

Leggi altre domande sui tag