Gizli / Sanal Windows Kullanıcı Hesapları Listesi


44

Gizli hesaplar da dahil olmak üzere Windows 7 sisteminde kapsamlı bir kullanıcı hesabı listesi almanın bir yolunu bulmaya çalışıyorum. Kullanıcı Hesapları (iletişim >control userpasswords2) sadece normal bir kullanıcı hesaplarını gösterir ve hatta Yerel Kullanıcı ve Gruplar editörü sadece normal bir kullanıcı hesaplarını ve Yönetici ve Konuk gibi standart gizli / devre dışı olanları gösterir. Kullanıcı veya Grup Seç iletişim bir sahiptir Şimdi Bul birleştirir kullanıcı ve gruplar, ama ne yazık ki, bu LKG'deki ile aynı içerikte olan düğmeyi.

TrustedInstaller gibi “süper gizli” / sanal kullanıcı hesaplarını içeren daha kapsamlı bir liste arıyorum (veya daha doğru olması için, NT Service \ TrustedInstaller — farklı “etki alanını” fark edin).

Kontrol ettim HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserListama SpecialAccountsanahtar mevcut değil.

Ayrıca kontrol ettim HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileListve listelenen SystemProfile, LocalService ve NetworkService hesaplarına sahipken, başkaları yok (TrustedInstaller ve ilk gibi).

TrustedInstaller özellikle bir kullanıcı, hizmet ve çalıştırılabilir bir dosya olduğu için biraz kafa karıştırıcıdır. Ben bunu bir örnek olarak kullanıyorum çünkü “süper gizli” olduğundan herhangi bir kullanıcı listesinde görünmüyor. (Bir deneme olarak, ben bir kullanıcı olarak listelenen bir yer bulmak olmadığını görmek için “TrustedInstaller” için tüm kayıt arama çalıştı, ama hiçbiri bulundu.)

Açık olmak gerekirse, ne arıyorum tüm listesi Bir kullanıcı giriş alanında izinler iletişim kutuları gibi veya bir runasargüman olarak kullanılabilecek hesaplar .


Yanıtlar:


43

Muhtemel tüm hesapların nihai bir listesi olduğunu sanmıyorum.

Kullanıcı giriş alanında izinler iletişim kutuları gibi kullanabileceğiniz farklı ad türleri vardır.

İlk önce standart bir Win32_Accounts vardır, tam listeyi PowerShell oturumu açıp çalıştırmak için

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

Bunlar normal kullanıcılar, gruplar ve yerleşik hesaplardır.

Vista'dan beri, sanal yönetim adı verilen yeni bir hesap sınıfı var çünkü bunlar genel yönetim araçlarında görünmüyor. Bazen servis hesapları da denir ve bunlardan en az üç farklı türü vardır:

  • Windows Hizmet Hesapları

Vista'dan beri, her pencere servisinin kendisiyle ilişkili bir sanal hesabı var, hatta farklı bir kullanıcı hesabı altında çalışıyor ve hiç çalışmasa bile. BenziyorNT Service\MSSQLSERVER

Bu kullanımların bir listesini almak için:

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

ApplicationPoolIdentity altında çalışan her IIS uygulama havuzu, adı verilen özel bir hesap altında çalışır. IIS APPPOOL\NameOfThePool

IIS Yönetimi komut dosyası araçlarının yüklü olduğunu varsayarak, aşağıdakileri çalıştırabilirsiniz:

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

Server 2008+ ve Windows 8+ işletim sistemlerinde Hyper-V'niz vardır, her sanal makine kendi sanal hesabını oluşturur ve şöyle görünür: NT VIRTUAL MACHINE\1043F032-2199-4DEA-8E69-72031FAA50C5

Liste kullanımı için:

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

Bu hesaplar izinler iletişim kutusunda kabul edilmese de, izinleri ayarlamak için icacls.exe ile birlikte kullanabilirsiniz.

NT Virtual Machine\Virtual MachinesBaşka bir yerde görünmeyen özel bir grup da var . Sanal makine hesaplarının tümü bu grubun üyesi olduğundan, tüm VM dosyalarının izinlerini ayarlamak için bunu kullanabilirsiniz.

Bu isimler dile özgüdür, örneğin Almanca olarak isimlendirilir. NT Virtual Machine\Virtuelle Computer

  • Masaüstü Pencere Yöneticisi

Dvm.exe işlemi (Masaüstü Pencere Yöneticisi) bir kullanıcı altında çalışır Windows Manager\DWM-1

Yine bu tür kullanıcıları izinler iletişim kutularında kullanamazsınız. Bunları sıralamak da gerçekten mümkün değil, çünkü her bir 'Masaüstü oturumu' için bir tane var, bu yüzden iki RDP oturumu kullanırken, sizde DWM-2ve bunlara DWM-3ek olarak DVM-1. Yani mevcut masaüstü olduğu kadar çok var.

  • Bilgisayar İsimleri

Bazı durumlarda, izinleri iletişim kutusunda, genellikle bir Active Directory etki alanının parçası olurken bilgisayar adlarını da kullanabilirsiniz.

  • Windows Uzaktan Sanal Kullanıcıları

PowerShell ve 'JEA (Sadece yeterli Yönetim)' kullanırken ve bir PS uzaktan oturumuyla bir sunucuya bağlandığınızda, geçici bir sanal kullanıcı oluşturulabilir.

bunlar aşağıdaki formata sahiptir:

winrm virtual users\winrm va_x_computername_username

ve ile başlayan bir SID S-1-5-94-

'x' bir tam sayıdır.

Bu hesaplar NTFS izinleri atanırken kullanılabilir, ancak bu olası tüm sanal kullanıcıları nasıl listeleyeceğimi bilmiyorum.

Bir JEA oturumunda whoami, mevcut hesap adını bulmak için kullanabilirsiniz .

  • en sonunda:

Bu listeler bile size her olası hesabı vermez.

Örneğin, bir uygulama havuzu oluşturabilir, FooBarPoolardından tekrar silebilir IIS APPPOOL\FooBarPool, izinler iletişim kutusunda yine de kullanabilirsiniz , bu nedenle bir yerde bir iç liste olmalıdır.


Çok hoş! İlk sorgu gibi özel “kullanıcıları” döndü everyone, restrictedvb ve sizin tartışma NT Service\*hesapları gibi diğerlerini açıklar TrustedInstaller. Aynı zamanda daha egzotik özel vakalar için de yer aldınız, ancak ortak durumların hepsi açık gözüküyor.
Synetech

@Ahmed - hangi kullanıcılar? Bir probleminiz varsa, yeni bir soru yaratmalı ve probleminizi burada ayrıntılı olarak tanımlamalısınız. Burası onun için bir yer değil.
Peter Hahndorf

Özür dilerim, görevimi sildim. İşte benim sorum meraklı eğer olduğunu.
Ahmed,

3
Merhaba, IIS App Pool kullanıcılarının listelenmesi için PowerShell kodu benim için işe yaramadı, ben de Get-WebConfiguration system.applicationHost/applicationPools/addyerine kullandım.
Tahir Hassan

1
Mükemmel cevap. Servis Hesapları hakkında MS'den ek bilgi var: docs.microsoft.com/en-us/windows/security/identity-protection/…
CJBS

10

Bunun nedeni TrustedInstaller'ın bir "kullanıcı" nesnesi değil bir hizmet olmasıdır. Vista ile, Hizmetler şimdi güvenlik sorumlusu ve izinleri atanabilir.

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


Evet; Ben de tam olarak bunun hakkında konuşuyorum. Kullanıcılar, hizmetler veya sahip olduklarınız için izin verilebilecek şeylerin kapsamlı bir listesini arıyorum. Tam bir “güvenlik sorumlusu” listesi var mı?
Synetech

ACL'lere dokunmanın ve bir TAM güvenlik müdürü listesi bulmanın bir yolu olduğunu sanmıyorum. Neden her şeyden önce tam bir güvenlik sorumlusu listesi istediğinizi bilmiyorum. Teknik olarak, Windows Modül Yükleyicisi (TRUSTEDINSTALLER'in hizmet adı) Yerel SİSTEM hesabı altında çalışır.
surfasb

4
> Neden her şeyden önce tam bir güvenlik sorumlusu listesi istediğinizden emin değilim. Merak. (Bugünlerde buna sahip olan var mı…?)
Synetech

Bu merakı MSDN kütüphanesine yönlendirebilirsiniz.
surfasb

7
  1. Sabit sürücünüzdeki herhangi bir dosyaya gidin, sağ tıklayın ve özellikleri seçin.
  2. Güvenlik sekmesine gidin ve tıklayın Edit

    güvenlik ayarlarını düzenle

  3. tık Add...
  4. tık Advanced...

    kullanıcıları veya grupları seçin

  5. Tıkla Object Types...ve işaretini kaldır Groups, ardından TamamOK

    nesne türleri

  6. Tıklayın Find Now. Bu, tüm düzenli kullanıcıları ve yerleşik sistem kullanıcılarını listeler (Windows onları çağırdığı için "yerleşik güvenlik ilkeleri").

    şimdi bul

Değil Not hepsi hepsi izinleri iletişim kutusu kullanılabilir olsa bu sayfada görüntülenir hesapları, bir Run-As komutu kullanılabilir.


4
Bu diyaloga aşina oldum ve zaten “şu an bulun”: SYSTEMOrada “kullanıcı” olduğu halde (veya en azından olması gerektiği gibi) TrustedInstaller bulunmadığını unutmayın .
Synetech

Maalesef, find nowbenzer ancak biraz farklı olan Kullanıcılar ve Gruplar kontrol panelindeki düğmeye baktığınızı sanıyordum . Bildiğim kadarıyla, burada görünmeyen tek hesap TrustedInstaller. Bunun nedeni, Microsoft'un TrustedInstaller hesabına hiçbir zaman / hiçbir şey yapmamanızı engellemek için çok uzun sürmesidir. Bunu yapmanın başka bir yolunu düşünürsem size bildiririm.
nhinkle

Bu yüzden soruyorum; Başka belgelenmemiş kullanıcıların neler olduğunu merak ediyorum…
Synetech

Çoğu hakkında bilgi içeren bir Microsoft TechNet makalesi var, ancak TrustedInstaller orada değil. support.microsoft.com/kb/243330
nhinkle

1
Locations...Etki alanındaysanız, bilgisayarınıza ayarlamayı unutmayın (ancak yalnızca bilgisayarınızı isteyin).
n611x007

4

Windows Vista'dan itibaren, hizmetler kullanıcı olarak kabul edilir. Yani, her hizmete bir Güvenlik Tanımlayıcısı (SID) atanır. Bu TrustedInstaller servisine özgü değildir . sc showsidKomutu kullanarak herhangi bir servise atanan SID'yi görebilirsiniz :

KULLANIM: sc showsid [isim]

AÇIKLAMA : İsteğe bağlı bir isme karşılık gelen hizmet SID dizesini görüntüler. Adı varolan veya varolmayan bir hizmetin adı olabilir.

Hizmetin sistemde varlığına gerek olmadığını unutmayın. Örnekler:

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

veya, Windows Yönetim Araçları ( Winmgmt) hizmeti için :

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

ve son olarak sahte bir servis için:

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

Tüm SID'lerin S-1-5-80, alt otoriteye 80atanan yerle başladığını unutmayın SECURITY_SERVICE_ID_BASE_RID. Dahası, bu atama deterministiktir: Hiçbir RID kullanılmaz ve SID tüm sistemlerde aynı olacaktır (daha fazla bilgi için bu yazının sonundaki referanslara bakın).

Örnek olarak, NT Service\Winmgmtservisi atayacağım, bazı dosyalara izin yazacağım:

görüntü tanımını buraya girin

Windows, adının altını çizerek Winmgmtgeçerli bir kimlik olduğunu onaylar:

görüntü tanımını buraya girin

Şimdi, Tamam'ı tıklatın ve ardından yazma iznini atayın:

görüntü tanımını buraya girin

Bu, herhangi bir hizmet adının bir kullanıcı kimliği olarak kullanılabileceğini onaylar. Bu nedenle, onlara "akşam yemeği gizli" hesaplar demem: D

Daha fazla bilgi için, lütfen aşağıdaki makaleleri okuyun:


1
Çok ilginç. Bilgi için teşekkürler!
Synetech

1

NetQueryDisplayInformation API'sini kullanabilir, kullanıcı bilgisi bayrağını bitsel kontrol ile birleştirebilirsiniz. Tam olarak aynı gereksinim var, bu yüzden bir örnek kod (MSDN GROUP sorgudan değiştirilmiş) pişiriyorum.

Kullandığım kullanıcı bayrağı UF_NORMAL_ACCOUNT UF_ACCOUNTDISABLE UF_PASSWD_NOTREQD --->. Bu, İnsan hesabı aldığımızdan emin olun, İnsan hesabı her zaman şifre gerektirir.

çalışma kodu: http://www.cceye.com/list-system-normal-user-account-only/


Lütfen, eldeki soruya doğrudan ilgili bilgileri içerecek şekilde cevabınızı genişletin. Bu bağlantı hiç çalışmayı durdurursa, cevabınız o kadar yararlı olmayacaktır.
Mxx
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.