Lista ukrytych / wirtualnych kont użytkowników Windows

44

Próbuję znaleźć sposób na uzyskanie pełnej listy kont użytkowników w systemie Windows 7, w tym ukrytych. Konta użytkowników dialog ( >control userpasswords2) pokazuje tylko zwykłych kont użytkowników, a nawet użytkownika i grupy lokalne edytor pokazuje tylko normalnych kont użytkowników i standardowych ukryte / te niepełnosprawne jak Administrator i Gość. Wybieranie: Użytkownicy lub Grupy dialogowe ma Znajdź teraz przycisk, który, która łączy użytkowników i grup, ale niestety, ma taką samą treść jak LUG.

Szukam bardziej kompleksowej listy, która zawiera „super-ukryte” / wirtualne konta użytkowników, takie jak TrustedInstaller (a ściślej NT Service \ TrustedInstaller - zwróć uwagę na inną „domenę”).

Sprawdziłem HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList, ale SpecialAccountsklucz nie istnieje.

Sprawdziłem również HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList, i chociaż ma na liście konta SystemProfile, LocalService i NetworkService, nie ma innych (jak TrustedInstaller i podobne).

TrustedInstaller jest szczególnie mylący, ponieważ jest to użytkownik, usługa i plik wykonywalny. Używam go jako przykładu, ponieważ jest on „super ukryty”, ponieważ nie wydaje się, aby znajdował się na żadnej liście użytkowników. (W ramach eksperymentu próbowałem przeszukać cały rejestr w poszukiwaniu „zaufanego programu instalującego”, aby sprawdzić, czy mogę znaleźć miejsce, w którym jest on wymieniony jako użytkownik, ale nie znalazłem żadnego).

Aby wyjaśnić, szukam listy wszystkich konta, których można użyć w polu wejściowym użytkownika, takim jak okna dialogowe uprawnień lub jako runasargument.

Synetech
źródło

Odpowiedzi:

43

Nie sądzę, że istnieje ostateczna lista wszystkich możliwych kont.

Istnieją różne rodzaje nazw, których można używać w polu wprowadzania użytkownika, na przykład w oknach dialogowych uprawnień.

Najpierw są standardowe konta Win32_Account, aby uzyskać pełną listę, otwórz sesję PowerShell i uruchom:

get-wmiobject -class "win32_account" -namespace "root\cimv2" | sort caption | format-table caption, __CLASS, FullName

Są to zwykli użytkownicy, grupy i wbudowane konta.

Od wersji Vista istnieje nowa klasa kont, zwana kontami wirtualnymi, ponieważ nie pojawiają się one w zwykłych narzędziach do zarządzania. Są też czasami nazywane kontami usług i istnieją co najmniej trzy różne ich rodzaje:

  • Konta usługi Windows

Ponieważ Vista jest powiązana z każdą usługą systemu Windows, konto wirtualne jest nawet powiązane z innym kontem użytkownika i nawet jeśli w ogóle nie działa. To wygląda jakNT Service\MSSQLSERVER

Aby uzyskać listę tych, użyj:

get-service | foreach {Write-Host NT Service\$($_.Name)}
  • Pule aplikacji IIS

Każda pula aplikacji IIS działająca w ramach ApplicationPoolIdentity działa na specjalnym koncie o nazwie IIS APPPOOL\NameOfThePool

Zakładając, że masz zainstalowane narzędzia skryptowe IIS Management, możesz uruchomić:

Get-WebConfiguration system.applicationHost/applicationPools/* /* | where {$_.ProcessModel.identitytype -eq 'ApplicationPoolIdentity'} | foreach {Write-Host IIS APPPOOL\$($_.Name)}
  • Maszyny wirtualne Hyper-V

Na serwerze 2008+ i Windows 8+ masz Hyper-V, każda maszyna wirtualna tworzy własne konto wirtualne, które wygląda następująco: NT VIRTUAL MACHINE\1043F032-2199-4DEA-8E69-72031FAA50C5

aby uzyskać listę użyj:

get-vm | foreach {Write-Host NT VIRTUAL MACHINE\$($_.Id) - $($_.VMName)}

Mimo że te konta nie są akceptowane w oknie dialogowym uprawnień, możesz używać ich z programem icacls.exe do ustawiania uprawnień.

Istnieje również specjalna grupa NT Virtual Machine\Virtual Machines, która nie pojawia się gdzie indziej. Wszystkie konta maszyn wirtualnych są członkami tej grupy, więc możesz użyć tego do ustawienia uprawnień dla wszystkich plików VM.

Te nazwy są specyficzne dla języka, np. W języku niemieckim nazywa się NT Virtual Machine\Virtuelle Computer

  • Menedżer okien pulpitu

Proces dvm.exe (Menedżer okien pulpitu) jest uruchamiany przez użytkownika Windows Manager\DWM-1

Ponownie nie można używać tego typu użytkowników w oknach dialogowych uprawnień. Naprawdę nie jest możliwe ich wyliczenie, ponieważ istnieje jedna na każdą „sesję Desktop”, więc gdy używasz dwóch sesji RDP, masz także DWM-2i DWM-3oprócz tego DVM-1. Jest ich tyle, ile jest dostępnych komputerów stacjonarnych.

  • Nazwy komputerów

W niektórych przypadkach możesz także używać nazw komputerów w oknie dialogowym uprawnień, zwykle będąc częścią domeny Active Directory.

  • Windows Remoting Virtual Users

Podczas korzystania z PowerShell i „JEA (Just dosyć Administration)” i łączenia się z serwerem za pomocą zdalnej sesji PS, można utworzyć tymczasowego wirtualnego użytkownika.

mają one następujący format:

winrm virtual users\winrm va_x_computername_username

i identyfikator SID, który zaczyna się od S-1-5-94-

„x” jest liczbą całkowitą.

Z tych kont można korzystać podczas przypisywania uprawnień NTFS, ale nie wiem, jak wyświetlić listę wszystkich możliwych użytkowników wirtualnych.

Podczas sesji JEA możesz użyć, whoamiaby znaleźć nazwę bieżącego konta.

  • Wreszcie:

Nawet te listy nie dają wszystkich możliwych kont.

Na przykład możesz utworzyć pulę aplikacji, FooBarPoola następnie usunąć ją ponownie, nadal możesz jej używać IIS APPPOOL\FooBarPoolw oknie dialogowym uprawnień, więc musi być gdzieś wewnętrzna lista.

Peter Hahndorf
źródło
Bardzo dobrze! Pierwszy zapytanie zwróciło specjalne „użytkowników”, jak everyone, restricteditp, a dyskusja z NT Service\*kont innych jak wyjaśnia TrustedInstaller. Obejmowałeś także bardziej egzotyczne przypadki specjalne, ale wygląda na to, że wszystkie typowe są uwzględnione.
Synetech
@Ahmed - którzy użytkownicy? Jeśli masz problem, powinieneś utworzyć nowe pytanie i szczegółowo opisać tam swój problem. To nie jest na to miejsce.
Peter Hahndorf,
Przepraszam, usunąłem moje przykazanie. Oto moje pytanie, jeśli jestem ciekawy.
Ahmed
3
Cześć, kod PowerShell do listy użytkowników puli aplikacji IIS nie działał dla mnie, więc Get-WebConfiguration system.applicationHost/applicationPools/addzamiast tego użyłem .
Tahir Hassan
1
Świetna odpowiedź. Istnieją dodatkowe informacje od MS na kontach serwisowych tutaj: docs.microsoft.com/en-us/windows/security/identity-protection/…
CJBS
10

Wynika to z faktu, że TrustedInstaller jest usługą, a nie obiektem „użytkownika”. W systemie Vista usługi są teraz podmiotami zabezpieczeń i można im przypisywać uprawnienia.

http://technet.microsoft.com/en-us/magazine/2007.06.acl.aspx

surfasb
źródło
Tak; dokładnie o tym mówię. Szukam wyczerpującej listy rzeczy, którym można nadać uprawnienia, niezależnie od tego, czy są to użytkownicy, usługi czy to, co masz. Czy istnieje pełna lista „podmiotów zabezpieczeń”?
Synetech,
Nie sądzę, że istnieje sposób, aby skorzystać z list ACL i znaleźć PEŁNĄ listę zasad bezpieczeństwa. Nie jestem pewien, dlaczego w ogóle chcesz mieć pełną listę podmiotów zabezpieczeń. Technicznie rzecz biorąc, Instalator modułów systemu Windows (nazwa usługi TRUSTEDINSTALLER) działa na lokalnym koncie SYSTEM.
surfasb
4
> Nie jestem pewien, dlaczego chcesz mieć pełną listę podmiotów zabezpieczeń. Ciekawość. (Czy ktokolwiek ma to obecnie…?)
Synetech 5.12
Możesz skierować tę ciekawość w stronę biblioteki MSDN.
surfasb
7
  1. Przejdź do dowolnego pliku na dysku twardym, kliknij prawym przyciskiem myszy i wybierz właściwości.
  2. Przejdź do zakładki bezpieczeństwa i kliknij Edit

    edytować ustawienia bezpieczeństwa

  3. Kliknij Add...
  4. Kliknij Advanced...

    wybierz użytkowników lub grupy

  5. Kliknij Object Types...i odznacz Groups, a następnie kliknijOK

    typy obiektów

  6. Kliknij Find Now. Spowoduje to wyświetlenie listy wszystkich zwykłych użytkowników i wbudowanych użytkowników systemu („wbudowane zasady bezpieczeństwa”, jak je nazywa Windows).

    Znajdź teraz

Pamiętaj, że nie wszystkie konta pojawiające się na tej stronie mogą być używane w poleceniu Uruchom jako, ale wszystkie mogą być używane w oknie dialogowym uprawnień.

nhinkle
źródło
4
Znam to okno dialogowe i już wspomniałam o nim w pytaniu: „znajdź teraz”. Zauważ, że chociaż „użytkownik” SYSTEMjest tam (a przynajmniej powinien być), TrustedInstaller nie .
Synetech
Niestety, myślałem, że masz na myśli find nowprzycisk w panelu sterowania Użytkownicy i grupy, który jest podobny, ale nieco inny. Według mojej wiedzy jedynym kontem, które nie pojawia się tutaj, jest TrustedInstaller. Wynika to z tego, że Microsoft dokłada wszelkich starań, abyś nigdy nie robił nic z kontem TrustedInstaller. Dam ci znać, jeśli wymyślę inne sposoby na zrobienie tego.
nhinkle
Dlatego pytam; Zastanawiam się, jacy są inni nieudokumentowani użytkownicy…
Synetech
Jest artykuł Microsoft TechNet z informacjami o większości z nich, ale TrustedInstaller tam nie ma. support.microsoft.com/kb/243330
nhinkle
1
nie zapomnij ustawić Locations...na swoim komputerze, jeśli jesteś w domenie (ale chcesz tylko swój komputer).
n611x007,
4

Począwszy od systemu Windows Vista, usługi są traktowane jak użytkownicy. Oznacza to, że do każdej usługi przypisany jest identyfikator bezpieczeństwa (SID). Nie dotyczy to usługi TrustedInstaller . Możesz wyświetlić SID przypisany do dowolnej usługi za pomocą sc showsidpolecenia:

SPOSÓB UŻYCIA: sc showsid [nazwa]

OPIS : Wyświetla ciąg SID usługi odpowiadający dowolnej nazwie. Nazwa może być nazwą istniejącej lub nieistniejącej usługi.

Pamiętaj, że usługa nie musi istnieć w systemie. Przykłady:

C:\> sc showsid TrustedInstaller
NAME: TrustedInstaller
SERVICE SID: S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464

lub, dla usługi Instrumentacja zarządzania Windows ( Winmgmt):

C:\> sc showsid Winmgmt
NAME: Winmgmt
SERVICE SID: S-1-5-80-3750560858-172214265-3889451188-1914796615-4100997547

i wreszcie dla fałszywej usługi:

C:\> sc showsid FakeService
NAME: FakeService
SERVICE SID: S-1-5-80-3664595232-2741676599-416037805-3299632516-2952235698

Zauważ, że wszystkie identyfikatory SID zaczynają się od S-1-5-80, gdzie 80jest przypisane do SECURITY_SERVICE_ID_BASE_RIDpodrzędnych uprawnień. Co więcej, to przypisanie jest deterministyczne: nie stosuje się identyfikatorów RID, a identyfikator SID będzie taki sam we wszystkich systemach (więcej informacji można znaleźć w odnośnikach na końcu tego postu).

Jako przykład przypiszę NT Service\Winmgmtusługę, napiszę zgodę na jakiś plik:

wprowadź opis zdjęcia tutaj

Windows podkreśla nazwę Winmgmt, potwierdzając, że jest to ważna tożsamość:

wprowadź opis zdjęcia tutaj

Teraz kliknij OK, a następnie przypisz uprawnienie do zapisu:

wprowadź opis zdjęcia tutaj

Potwierdza to, że dowolna nazwa usługi może być używana jako tożsamość użytkownika. Dlatego nie nazwałbym ich kontami „ukrytymi na wieczerzy”: D

Aby uzyskać więcej informacji, przeczytaj następujące artykuły:

MS Dousti
źródło
1
Bardzo interesujące. Dzięki za informację!
Synetech,
1

Możesz użyć interfejsu API NetQueryDisplayInformation, w połączeniu z bitowym sprawdzaniem flagi informacji o użytkowniku. Mam dokładnie takie same wymagania, więc gotuję przykładowy kod (zmodyfikowany z zapytania MSDN GROUP).

Flaga użytkownika, której użyłem, to UF_NORMAL_ACCOUNT UF_ACCOUNTDISABLE UF_PASSWD_NOTREQD ---> to zapewnia, że ​​otrzymujemy konto ludzkie, konto ludzkie zawsze wymaga hasła.

działający kod: http://www.cceye.com/list-system-normal-user-account-only/

użytkownik3109641
źródło
Rozwiń swoją odpowiedź, aby bezpośrednio zawierała istotne informacje na temat pytania. Jeśli ten link kiedykolwiek przestanie działać, twoja odpowiedź nie będzie tak przydatna.
Mxx