Jakie konto Windows jest używane, gdy nikt nie jest zalogowany?

25

Kiedy nikt nie jest zalogowany do systemu Windows (wyświetlany jest ekran logowania), który użytkownik jest uruchomiony jako bieżący proces? (Sterowniki wideo / dźwięku, sesja logowania, dowolne oprogramowanie serwera, kontrola dostępu itp. Nie mogą być żadnym użytkownikiem ani poprzednim użytkownikiem, ponieważ nikt nie jest zalogowany. Co z procesami uruchomionymi przez użytkownika, ale nadal uruchomić po wylogowaniu? (Na przykład HTTP, serwery FTP i inne elementy sieciowe). Czy przełączają się na konto SYSTEM? Jeśli proces rozpoczęty przez użytkownika przełącza się na SYSTEM, oznacza to bardzo poważną lukę. Czy proces działa jako ten użytkownik kontynuować działanie jako ten użytkownik po wylogowaniu?

Czy dlatego hack SETHC pozwala ci używać CMD jako SYSTEMU?

Kunal Chopra
źródło
„Przełączanie użytkowników” nie jest w rzeczywistości operacją czarno-białą w systemie Windows. Usługa może podszywać się pod wielu użytkowników jednocześnie i nadal korzystać z oryginalnego konta. Jest to przydatne w przypadku usług, które muszą działać w imieniu określonych użytkowników, powiedzmy uwierzytelnionych użytkowników witryny.
MSalters
3
Windows to system operacyjny dla wielu użytkowników, co oznacza, że ​​różne procesy mogą należeć do różnych użytkowników jednocześnie . To nie jest tak, że po zalogowaniu się cały komputer „przełącza się” na twoje konto.
el.pescado,

Odpowiedzi:

40

Kiedy nikt nie jest zalogowany do systemu Windows (wyświetlany jest ekran logowania), który użytkownik jest uruchomiony jako bieżący proces? (Sterowniki wideo / dźwięku, sesja logowania, dowolne oprogramowanie serwera, kontrola dostępu itp.

Prawie wszystkie sterowniki działają w trybie jądra ; nie potrzebują konta, chyba że rozpoczną procesy w przestrzeni użytkownika. Nieliczne sterowniki przestrzeni użytkownika działają w systemie SYSTEM.

Sesja logowania, nie mogę teraz sprawdzić, ale jestem pewien, że również używa SYSTEM. Można zobaczyć Logonui.exe w Hacker Process lub SysInternals ProcExp . W rzeczywistości, można zobaczyć wszystko w ten sposób.

„Oprogramowanie serwera”, patrz usługi Windows poniżej.

Co z procesami, które zostały uruchomione przez użytkownika, ale nadal działają po wylogowaniu? (Na przykład HTTP, serwery FTP i inne rzeczy sieciowe). Czy przechodzą na konto SYSTEM?

Istnieją tutaj trzy rodzaje:

  1. Proste stare procesy „w tle”. Te działają na tym samym koncie, co ktokolwiek je założył i nie działają po wylogowaniu. Proces wylogowania zabija ich wszystkich.

    „HTTP, serwery FTP i inne funkcje sieciowe” nie działają jako zwykłe procesy w tle. Działają jako usługi.

  2. Procesy „usługowe” systemu Windows. Nie są one uruchamiane bezpośrednio, ale za pośrednictwem Service Managera. Domyślnie usługi działają jako LocalSystem (co isanae oznacza SYSTEM), chociaż mogą mieć skonfigurowane dedykowane konta.

    (Oczywiście, praktycznie nikt się nie przejmuje. Po prostu instalują XAMPP, WampServer lub inne bzdury i pozwalają mu działać jako SYSTEM, na zawsze niezałatany.)

    Wydaje mi się, że w najnowszych systemach Windows usługi mogą mieć także własne identyfikatory SID, ale znowu nie zbadałem jeszcze zbyt wiele.

  3. Zaplanowane zadania. Są one uruchamiane przez usługę „Harmonogram zadań” w tle i zawsze działają na koncie skonfigurowanym w zadaniu (zwykle ten, kto utworzył zadanie).

Jeśli proces rozpoczęty przez użytkownika przełączy się na SYSTEM, oznacza to bardzo poważną lukę

To nie jest usterka, ponieważ trzeba już mieć uprawnienia administratora, aby zainstalować usługę. Posiadanie uprawnień administratora pozwala już robić praktycznie wszystko.

(patrz także różne inne tego typu luki w zabezpieczeniach )

grawitacja
źródło
2
Warto zauważyć, że duża część usług IIS działa na mniej uprzywilejowanych kontach utworzonych specjalnie dla procesów IIS po wyjęciu z pudełka. (Obejmuje to wiele serwerów Windows HTTP, FTP itp.). Zobacz tutaj, aby uzyskać szczegółowe informacje. Często zależy to od ustawień domyślnych używanego programu.
jpmc26,
1
SYSTEM i lokalny administrator są w zasadzie jednym i tym samym. Kiedy już je masz, możesz zdobyć drugie, a system operacyjny stawia tylko blokady na drodze przede wszystkim w celu zapobiegania błędom. (Uwaga: Stara Nowa Rzecz nie jest oficjalną dokumentacją Microsoftu.)
CVn
3
Obecnie wiele usług działa jako NetworkService lub LocalService, a nie LocalSystem.
Ben Voigt,
2
Począwszy od systemu Windows 7 i 2008 R2, konta usług zarządzanych i konta wirtualne pozwalają na uruchamianie usług pod własną tożsamością, więc nie masz wielu usług udostępniających LocalService / NetworkService / LocalSystem, ograniczając dostęp, jeśli jedna usługa ma lukę.
afrazier
2

Procesy logowania i wstępnego logowania działają jako SYSTEM (zwany także LocalSystem). W rzeczywistości jednym ze sposobów uruchomienia powłoki (takiej jak monit CMD) jako SYSTEM w niektórych wersjach systemu Windows jest zastąpienie programu ułatwień dostępu, takiego jak czytnik ekranu, lupa lub klawiatura ekranowa, kopią (lub link do) CMD.EXE, a następnie użyj skrótu, aby włączyć tę funkcję ułatwień dostępu przed zalogowaniem. Otrzymasz wiersz polecenia, nawet jeśli nie ma zalogowanych użytkowników i CMDbędzie działał jako SYSTEM.

(Uwaga: jest to oczywiście niebezpieczne, ponieważ pozwala ludziom ominąć proces logowania do systemu Windows. Nigdy nie należy konfigurować komputera w ten sposób, a następnie pozostawić go w ten sposób).

CBHacking
źródło
1
Działa w systemie Windows 7, zastąpił sethc.exe programem cmd.exe w C: \ Windows \ System32 \
1

Nie „przełączają się” na nic; takie procesy nigdy nie działają w bieżącym kontekście użytkownika.
Są własnością SYSTEMużytkownika.

Wszelkie procesy i usługi należące do indywidualnego użytkownika są usuwane po wylogowaniu.
To właśnie oznacza wylogowanie .

Lekkość Wyścigi z Moniką
źródło
Nie jestem pewien ... Po pierwsze, znalazłem post MS Technet, w którym (nie w ten sposób wiele to znaczy) przyjęta przez pracowników odpowiedź stwierdzała, że ​​usługi nie są przerywane po wylogowaniu. Nie jestem pewien, czy jest to dokładna definicja wylogowania bardziej ogólnie: widziałem kilka demonów w Linuksie, które pozostały po wylogowaniu jednego użytkownika, a potem psdrugiego
underscore_d
1
To nie jest poprawne Usługi można uruchomić jako inny użytkownik, a one będą się uruchamiać i będą działać bez tego „zalogowanego” użytkownika. Rozpoczną własną sesję z tymi poświadczeniami użytkowników, więc w rzeczywistości użytkownik zostanie zalogowany podczas działania usługi, ale programy pulpitu / autostartu itp. Nie zostaną uruchomione, i to jest to, co zwykli użytkownicy rozumieją jako „zalogowany”. Mimo to usługa będzie działać z poświadczeniami tego użytkownika i ma dostęp do plików tego użytkownika.
Josef
@Josef: Twój argument wydaje się sprowadzać do „niektórych osób niewłaściwie używa terminu„ zalogowany ””. Rzeczywiste treści komentarza są zgodne z moją odpowiedzią: użytkownik jest uważany za zalogowanego tak długo, jak długo na jego koncie działają usługi / procesy.
Lekkość ściga się z Monicą
@LightnessRacesinOrbit nie, istnieje rzeczywista różnica. Jeśli utworzysz usługę przy użyciu swojego konta i będzie ona uruchamiana podczas uruchamiania, nie zostanie uruchomiony żaden proces wyświetlania pulpitu (więc nie będzie uruchomiony dwm.exe ani explorer.exe), wszystkie programy autostartu nie będą być uruchomionym itp. Więc jeśli masz interaktywną sesję logowania, aktywnych jest o wiele więcej rzeczy, niż gdyby działała tylko sesja serwisowa. To, co dokładnie jest „zalogowane”, jest przedmiotem dyskusji. Nawet jeśli usługa działa przy użyciu poświadczeń, nadal musisz się zalogować, aby samodzielnie korzystać z systemu Windows!
Josef,
1
Cóż, „takie procesy nigdy nie są uruchamiane w bieżącym kontekście użytkownika” jest nadal błędne. Usługi działają w kontekście kontekstu użytkownika dla nich. W przypadku wbudowanych usług systemu Windows jest to jedno z kont systemowych. W przypadku innych usług może to być dowolne konto. W szczególności oprogramowanie serwera powinno utworzyć nowe konto użytkownika i uruchomić je z tymi poświadczeniami.
Josef