我用了对象管理器获取命名管道的权限\\.\pipe\InitShutdown
:
PS C:\WINDOWS\system32> $a = Get-NtFile("\Device\NamedPipe\InitShutdown")
PS C:\WINDOWS\system32> $a.SecurityDescriptor.Dacl
Type User Flags Mask
---- ---- ----- ----
Allowed Everyone None 0012019B
Allowed NT AUTHORITY\ANONYMOUS LOGON None 0012019B
Allowed BUILTIN\Administrators None 001F01FF
PS C:\WINDOWS\system32> $a.SecurityDescriptor.Dacl[0].Mask | fl
IsEmpty : False
HasAccess : True
HasGenericAccess : False
HasSpecificAccess : True
Access : 1180059
命名管道1180059
对每个人都有访问掩码。
下面是MSDN 访问掩码格式指南:
转换1180059
为二进制:
00000000 00010010 00000001 10011011
位 0、1、3、4、7、8、17、20 已启用,但没有描述“标准访问权限”或“对象特定访问权限”的具体权限。
使用 ProcessHacker 我们可以看到确切的权限:
有没有关于“标准访问权限”和“特定对象访问权限”含义的文档?
我尝试寻找答案“访问控制列表Acl”和“.NET 中未包含权限”
我发现文档关于“标准访问权限”,但它只显示五条规则,而图片显示它有 8 位标志:
DELETE
READ_CONTROL
SYNCHRONIZE
WRITE_DAC
WRITE_OWNER
答案1
这 访问掩码 格式为:
位 | 权利 |
---|---|
位 0 - 15 [16 位]: | 特定对象的权利 |
位 16 - 23 [ 8 位]: | 标准访问权限 |
位 24: [ 1 位]: | 访问 SACL 的权限(ACCESS_SYSTEM_SECURITY) |
位 25 - 27 [ 3 位]: | 预订的 |
位 28 - 31 [ 4 位]: | 通用访问权限 |
这通用访问权限高四位分别指定一组标准和对象特定的访问权限。它们可以称为“宏”,其中每个位都映射到一组标准和对象特定的权限,具体取决于对象类型。
例如,对于文件和文件夹, 映射是 :
访问权 | 描述 |
---|---|
FILE_GENERIC_EXECUTE | 文件执行、文件读取属性、标准权限执行、同步 |
文件_通用_读取 | 文件读取属性、文件读取数据、文件读取EA、标准权限读取、同步 |
文件_通用_写入 | 文件附加数据、文件写入属性、文件写入数据、文件写入EA、标准权限写入、同步 |
但映射会有所不同 流程安全和访问权限。
这 标准访问权限 之所以被称为标准,是因为它们几乎适用于所有对象类型。它们是(如您所发现的):DELETE、READ_CONTROL、SYNCHRONIZE、WRITE_DAC、WRITE_OWNER。
这特定对象的权利正如其名称所示,它们是特定的,并且仅在其对象类型的上下文中被理解。
如果我们看一下对象类型的过程,我们有 流程安全和访问权限 具有进程的独特权限,例如 PROCESS_SUSPEND_RESUME。
获取 Windows 中所有对象类型的权限列表是一项艰巨的任务,而且我不确定微软的文档是否足够详细。
答案2
我进入了我创建的简单文件的权限,每次添加\删除一个高级权限,然后我从运行以下命令对象管理器:
PS C:\tmp\permissions> $a.Dispose()
PS C:\tmp\permissions> $a = get-ntfile("a.txt")
PS C:\tmp\permissions> $a.SecurityDescriptor.Dacl
Type User Flags Mask
---- ---- ----- ----
Allowed Everyone None 00140000
通过这种方式,我能够映射每个单独权限的掩码,这可能不会准确显示每一位是什么,但可以提供一个很好的理解:
Read: 00000000 00010010 00000000 10001001 : 00120089
Read & Execute: 00000000 00010010 00000000 10101001 : 001200A9
Write: 00000000 00010000 00000001 00010110 : 00100116
Read & Write 00000000 00010010 00000001 10011111 : 0012019F
Read & Write & Execute 00000000 00010010 00000001 10111111 : 001201BF
Modify 00000000 00010011 00000001 10111111 : 001301BF
Full 00000000 00011111 00000001 11111111 : 001F01FF
All advanced permissions separated:
List folder / Read data 00000000 00010000 00000000 00000001 : 00100001
Read Attribute 00000000 00010000 00000000 10000000 : 00100080
Read Extended Attributes 00000000 00010000 00000000 00001000 : 00100008
Read permissions 00000000 00010010 00000000 00000000 : 00120000
Traverse folder / execute 00000000 00010000 00000000 00100000 : 00100020
Create files / write data 00000000 00010000 00000000 00000010 : 00100002
Create folders / append data 00000000 00010000 00000000 00000100 : 00100004
Write attributes 00000000 00010000 00000001 00000000 : 00100100
Write Extended attributes 00000000 00010000 00000000 00010000 : 00100010
Delete 00000000 00010001 00000000 00000000 : 00110000
Change permissions 00000000 00010100 00000000 00000000 : 00140000
Change ownership 00000000 00011000 00000000 00000000 : 00180000