Syn*_*ech 47 windows-7 user-accounts
我试图找到一种方法来获取 Windows 7 系统上用户帐户的完整列表,包括隐藏的帐户。该用户帐户对话框(>control userpasswords2
)只显示正常的用户帐户,甚至是本地用户和组编辑器只显示正常的用户帐户和标准隐藏/禁用的像Administrator和Guest。在选择用户或组对话框中有一个立即查找按钮,它结合了用户和组,但很可惜,它具有相同的内容LUG。
我正在寻找一个更全面的列表,其中包括“超级隐藏”/虚拟用户帐户,例如 TrustedInstaller(或者更准确地说,NT Service\TrustedInstaller —注意不同的“域”)。
我检查过HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList
,但SpecialAccounts
密钥不存在。
我还检查了HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
,虽然它确实列出了 SystemProfile、LocalService 和 NetworkService 帐户,但它没有其他帐户(例如 TrustedInstaller 及其同类)。
TrustedInstaller 具体来说有点令人困惑,因为它是一个用户、一个服务和一个可执行文件。我以它为例,因为它是“超级隐藏”的,因为它似乎没有列在任何类型的用户列表中。(作为实验,我尝试在整个注册表中搜索“trustedinstaller”以查看是否可以找到将其列为用户的位置,但没有找到。)
明确地说,我正在寻找的是所有可以在用户输入字段中使用的帐户,例如在权限对话框中或作为runas
参数。
Pet*_*orf 50
我认为没有所有可能帐户的最终列表。
您可以在用户输入字段中使用不同类型的名称,例如在权限对话框中。
首先是标准的 Win32_Accounts,要获取完整列表,请打开 PowerShell 会话并运行:
get-wmiobject -class "win32_account" -namespace "root\cimv2" | sort caption | format-table caption, __CLASS, FullName
Run Code Online (Sandbox Code Playgroud)
这些是通常的用户、组和内置帐户。
从 Vista 开始,出现了一类新的帐户,称为虚拟帐户,因为它们不会出现在通常的管理工具中。有时也称为服务帐户,其中至少有三种不同类型:
由于 Vista 每个 Windows 服务都有一个与之关联的虚拟帐户,即使它在不同的用户帐户下运行,即使它根本不运行。看起来像NT Service\MSSQLSERVER
要获取这些使用的列表:
get-service | foreach {Write-Host NT Service\$($_.Name)}
Run Code Online (Sandbox Code Playgroud)
在 ApplicationPoolIdentity 下运行的每个 IIS 应用程序池都在一个名为 IIS APPPOOL\NameOfThePool
假设您安装了 IIS 管理脚本工具,您可以运行:
Get-WebConfiguration system.applicationHost/applicationPools/* /* | where {$_.ProcessModel.identitytype -eq 'ApplicationPoolIdentity'} | foreach {Write-Host IIS APPPOOL\$($_.Name)}
Run Code Online (Sandbox Code Playgroud)
在 Server 2008+ 和 Windows 8+ 上,您有 Hyper-V,每个虚拟机都会创建自己的虚拟帐户,如下所示:
NT VIRTUAL MACHINE\1043F032-2199-4DEA-8E69-72031FAA50C5
获取列表使用:
get-vm | foreach {Write-Host NT VIRTUAL MACHINE\$($_.Id) - $($_.VMName)}
Run Code Online (Sandbox Code Playgroud)
尽管权限对话框中不接受这些帐户,但您可以将它们与 icacls.exe 一起使用来设置权限。
还有一个特殊的 group NT Virtual Machine\Virtual Machines
,它不会出现在其他地方。所有虚拟机帐户都是该组的成员,因此您可以使用它来设置所有 VM 文件的权限。
这些名称是特定于语言的,例如在德语中它被命名为 NT Virtual Machine\Virtuelle Computer
dvm.exe 进程(桌面窗口管理器)在一个用户下运行 Windows Manager\DWM-1
同样,您不能在权限对话框中使用此类用户。这是不是真的有可能因为一个存在于每一个“桌面会话”要么列举这些,所以使用两个RDP会话时,你也有DWM-2
和DWM-3
除DVM-1
。所以有多少桌面可用。
在某些情况下,您还可以在权限对话框中使用计算机名称,通常是在属于 Active Directory 域时。
当使用 PowerShell 和“JEA(恰到好处的管理)”并通过 PS 远程会话连接到服务器时,可能会创建一个临时虚拟用户。
它们具有以下格式:
winrm virtual users\winrm va_x_computername_username
和一个以 S-1-5-94-
'x' 是一个整数。
这些帐户可以在分配 NTFS 权限时使用,但我不知道如何列出所有这些可能的虚拟用户。
在 JEA 会话中,您可以使用它whoami
来查找当前帐户名称。
即使这些列表也不会给您所有可能的帐户。
例如,您可以创建一个应用程序池FooBarPool
然后再次删除它,您仍然可以IIS APPPOOL\FooBarPool
在权限对话框中使用,因此某处必须有一个内部列表。
sur*_*asb 11
这是因为 TrustedInstaller 是一项服务而不是“用户”对象。在 Vista 中,服务现在是安全主体并且可以分配权限。
http://technet.microsoft.com/en-us/magazine/2007.06.acl.aspx
转到安全选项卡并单击 Edit
Add...
点击 Advanced...
单击Object Types...
并取消选中Groups
,然后单击OK
单击Find Now
。这将列出所有普通用户和内置系统用户(Windows 称之为“内置安全原则”)。
请注意,并非出现在此页面上的所有帐户都可以在 Run-As 命令中使用,尽管它们都可以在权限对话框中使用。
从 Windows Vista 开始,服务被视为用户。即,为每个服务分配一个安全标识符 (SID)。这并非特定于TrustedInstaller服务。您可以使用以下sc showsid
命令查看分配给任何服务的 SID :
用法: sc showid [名称]
描述:显示与任意名称对应的服务 SID 字符串。该名称可以是现有或不存在的服务的名称。
请注意,该服务不需要存在于系统上。例子:
C:\> sc showsid TrustedInstaller
NAME: TrustedInstaller
SERVICE SID: S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
Run Code Online (Sandbox Code Playgroud)
或者,对于服务Windows Management Instrumentation ( Winmgmt
):
C:\> sc showsid Winmgmt
NAME: Winmgmt
SERVICE SID: S-1-5-80-3750560858-172214265-3889451188-1914796615-4100997547
Run Code Online (Sandbox Code Playgroud)
最后,对于虚假服务:
C:\> sc showsid FakeService
NAME: FakeService
SERVICE SID: S-1-5-80-3664595232-2741676599-416037805-3299632516-2952235698
Run Code Online (Sandbox Code Playgroud)
请注意,所有 SID 都以 开头S-1-5-80
,其中80
分配给SECURITY_SERVICE_ID_BASE_RID
子权限。此外,此分配是确定性的:不使用 RID,并且所有系统中的 SID 都相同(有关更多信息,请参阅本文末尾的参考资料)。
例如,我将分配NT Service\Winmgmt
服务,对某个文件的写权限:
Windows 在 name 下划线Winmgmt
,确认它是一个有效的身份:
现在,单击“确定”,然后分配写入权限:
这确认了任何服务名称都可以用作用户身份。因此,我不会称它们为“超级隐藏”帐户:D
有关更多信息,请阅读以下文章:
归档时间: |
|
查看次数: |
87538 次 |
最近记录: |