Quale account di Windows viene utilizzato quando nessuno ha effettuato l'accesso?


25

Quando nessuno è connesso a Windows (viene visualizzata la schermata di accesso) con quale utente sono in esecuzione i processi correnti? (I driver video / audio, la sessione di accesso, qualsiasi software server, i controlli di accessibilità, ecc. Non possono essere utenti o utenti precedenti perché nessuno ha effettuato l'accesso. Che dire dei processi che sono stati avviati da un utente ma continuano a eseguito dopo la disconnessione (ad esempio HTTP, server FTP e altri elementi di rete). Passano all'account SYSTEM? Se un processo avviato dall'utente passa a SYSTEM, ciò indica una vulnerabilità molto grave. Il processo viene eseguito come quell'utente continuare a funzionare come quell'utente dopo che si sono disconnessi?

È per questo che l'hack SETHC ti permette di usare CMD come SYSTEM?


"Cambiare utente" in realtà non è un'operazione in bianco e nero su Windows. Un servizio può impersonare più utenti contemporaneamente e utilizzare comunque anche l'account originale. Ciò è utile per i servizi che devono agire per conto di utenti specifici, ad esempio i visitatori del sito Web autenticati.
Salterio

3
Windows è un sistema operativo multiutente, il che significa che processi diversi possono appartenere a utenti diversi contemporaneamente . Non è così quando si accede all'intero computer "passa" al proprio account.
el.pescado,

Risposte:


40

Quando nessuno è connesso a Windows (viene visualizzata la schermata di accesso) con quale utente sono in esecuzione i processi correnti? (I driver video / audio, sessione di accesso, qualsiasi software server, controlli di accessibilità, ecc.

Quasi tutti i driver funzionano in modalità kernel ; non hanno bisogno di un account, a meno che non avviino i processi di userspace. I pochi driver dello spazio utente vengono eseguiti in SISTEMA.

La sessione di accesso, non riesco a controllare in questo momento, ma sono sicuro che utilizza anche SYSTEM. Puoi vedere logonui.exe in Process Hacker o SysInternals ProcExp . In effetti, puoi vedere tutto in quel modo.

"Software server", vedere i servizi Windows di seguito.

Che dire dei processi che sono stati avviati da un utente ma continuano a essere eseguiti dopo la disconnessione? (Ad esempio HTTP, server FTP e altri elementi di rete). Passano all'account SYSTEM?

Ci sono tre tipi qui:

  1. Semplici vecchi processi di "background". Quelli vengono eseguiti con lo stesso account di chiunque li abbia avviati e non vengono eseguiti dopo la disconnessione. Il processo di disconnessione li uccide tutti.

    "HTTP, server FTP e altri elementi di rete" non vengono eseguiti come normali processi in background. Funzionano come servizi.

  2. Processi "di servizio" di Windows. Questi non vengono avviati direttamente, ma tramite Service Manager. Per impostazione predefinita, i servizi vengono eseguiti come LocalSystem (che secondo isanae equivale a SISTEMA), sebbene possano avere account dedicati configurati.

    (Naturalmente, praticamente nessuno si preoccupa. Installano semplicemente XAMPP o WampServer o qualche altra schifezza e lo fanno funzionare come SISTEMA, per sempre senza patch.)

    Sui recenti sistemi Windows, penso che i servizi possano anche avere i propri SID, ma ancora una volta non ho ancora studiato questo.

  3. Attività pianificate. Questi vengono avviati dal servizio "Utilità di pianificazione" in background "e vengono sempre eseguiti con l'account configurato nell'attività (in genere chiunque abbia creato l'attività).

Se un processo avviato dall'utente passa a SISTEMA, ciò indica una vulnerabilità molto grave

Non è una vulnerabilità perché è già necessario disporre dei privilegi di amministratore per installare un servizio. Avere i privilegi di amministratore ti consente già di fare praticamente tutto.

(vedi anche varie altre non vulnerabilità dello stesso tipo)



2
Vale la pena notare che gran parte di IIS viene eseguita con account con privilegi inferiori creati appositamente per i processi IIS. (Questo coprirebbe molti server Windows HTTP, FTP, ecc.) Vedi qui per alcuni dettagli. Quindi spesso dipende dalle impostazioni predefinite di qualunque programma tu stia usando.
jpmc26,

1
SYSTEM e Local Administrator sono essenzialmente la stessa cosa. Una volta che ne hai uno, puoi ottenere l'altro e il sistema operativo crea solo blocchi stradali intesi principalmente a prevenire errori. (Nota: The Old New Thing non è la documentazione ufficiale di Microsoft.)
un CVn

3
Al giorno d'oggi molti servizi funzionano come NetworkService o LocalService, non LocalSystem.
Ben Voigt,

2
A partire da Windows 7 e 2008 R2, gli account dei servizi gestiti e gli account virtuali consentono l'esecuzione di servizi con le proprie identità, quindi non si dispone di un gruppo di servizi che condividono LocalService / NetworkService / LocalSystem, limitando l'accesso se un servizio ha una vulnerabilità.
Afrazier

2

I processi di login e pre-login sono tutti eseguiti come SYSTEM (anche chiamato LocalSystem). In effetti, un modo per ottenere una shell (come un prompt CMD) in esecuzione come SISTEMA su alcune versioni di Windows è quello di sostituire un programma di accessibilità, come il lettore di schermo, la lente di ingrandimento o la tastiera su schermo, con una copia di (o collegamento a) CMD.EXE, quindi utilizzare il collegamento per abilitare tale funzionalità di accessibilità prima dell'accesso. Verrà visualizzato un prompt dei comandi, anche se non ci sono utenti connessi e CMDverrà eseguito come SISTEMA.

(Nota: questo è pericoloso, ovviamente, poiché consente alle persone di ignorare il processo di accesso a Windows. Non dovresti mai configurare un computer in questo modo e quindi lasciarlo così.)


1
Funziona su Windows 7, ha sostituito sethc.exe con cmd.exe in C: \ Windows \ System32 \

1

Non "passano" a nulla; tali processi non vengono mai eseguiti nel contesto dell'utente corrente.
Sono di proprietà SYSTEMdell'utente.

Tutti i processi e i servizi di proprietà di un singolo utente vengono chiusi al logout.
Questo è ciò che significa disconnettersi .


Non sono sicuro ... In primo luogo, ho trovato un post di MS Technet in cui (non come questo significa molto) una risposta accettata dal personale ha dichiarato che i servizi non sono terminati al logout. Non sono sicuro che questa sia una definizione accurata del logout più in generale: ho visto diversi demoni su Linux rimanere in giro dopo aver disconnesso un utente e poi psun altro
underscore_d

1
Non è corretto I servizi possono essere avviati come un altro utente e verranno avviati e continueranno a essere eseguiti senza che l'utente sia "connesso". Inizieranno la propria sessione con le credenziali di tali utenti, quindi in realtà l'utente verrà registrato mentre il servizio è in esecuzione, ma i programmi desktop / di avvio automatico ecc. Non verranno eseguiti e questo è ciò che gli utenti normali intendono come "connesso". Il servizio verrà comunque eseguito con le credenziali dell'utente e avrà accesso ai file di tali utenti.
Josef,

@Josef: il tuo argomento sembra ridursi a "alcune persone abusano del termine 'loggato'". Il vero contenuto del tuo commento concorda con la mia risposta: quell'utente è considerato loggato fintanto che ha servizi / processi in esecuzione sul proprio account.
Corse di leggerezza con Monica il

@LightnessRacesinOrbit no, c'è una differenza reale. Se si crea un servizio con il proprio account e che viene eseguito all'avvio, non verrà avviato alcun processo per mostrare il desktop (quindi non è in esecuzione dwm.exe o explorer.exe), tutti i programmi di avvio automatico non funzioneranno essere in esecuzione ecc. Quindi, se si dispone di una sessione di accesso interattiva, sono attive molte più cose rispetto a se è in esecuzione solo una sessione di servizio. Ciò che è esattamente "registrato" è aperto al dibattito. Anche se un servizio viene eseguito con le tue credenziali, devi comunque accedere per utilizzare Windows da solo!
Josef,

1
Bene, "tali processi non vengono mai eseguiti nel contesto dell'utente attuale" è ancora errato. I servizi vengono eseguiti nel contesto dell'utente impostato per loro. Per i servizi Windows integrati, questo è uno degli account di sistema. Per altri servizi, può essere qualsiasi account. Soprattutto il software server dovrebbe creare un nuovo account utente ed eseguire con quelle credenziali.
Josef,
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.