windows:powershell:commands:get-acl

Get-Acl

ファイルやレジストリキーなどのリソースのセキュリティ記述子を取得する。

$ Get-Acl C:\Windows
    Directory: C:\
 
Path    Owner                       Access
----    -----                       ------
Windows NT SERVICE\TrustedInstaller CREATOR OWNER Allow  268435456
$ Get-Acl C:\Windows | Format-List -Property PSPath, Sddl
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Windows
Sddl   : O:S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464G:
         S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464D:PA
         I(A;OICIIO;GA;;;CO)(A;OICIIO;GA;;;SY)(A;;0x1301bf;;;SY)(A;OICIIO;G
         A;;;BA)(A;;0x1301bf;;;BA)(A;OICIIO;GXGR;;;BU)(A;;0x1200a9;;;BU)(A;
         CIIO;GA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271
         478464)(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-185329263
         1-2271478464)(A;;0x1200a9;;;AC)(A;OICIIO;GXGR;;;AC)(A;;0x1200a9;;;
         S-1-15-2-2)(A;OICIIO;GXGR;;;S-1-15-2-2)
$ (Get-Acl C:\Windows).GetSecurityDescriptorSddlForm('All')
O:S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464G:S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464D:PAI(A;OICIIO;GA;;;CO)(A;OICIIO;GA;;;SY)(A;;0x1301bf;;;SY)(A;OICIIO;GA;;;BA)(A;;0x1301bf;;;BA)(A;OICIIO;GXGR;;;BU)(A;;0x1200a9;;;BU)(A;CIIO;GA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;;0x1200a9;;;AC)(A;OICIIO;GXGR;;;AC)(A;;0x1200a9;;;S-1-15-2-2)(A;OICIIO;GXGR;;;S-1-15-2-2)
$ Get-Acl C:\Windows | Format-List
Path   : Microsoft.PowerShell.Core\FileSystem::C:\Windows
Owner  : NT SERVICE\TrustedInstaller
Group  : NT SERVICE\TrustedInstaller
Access : CREATOR OWNER Allow  268435456
         NT AUTHORITY\SYSTEM Allow  268435456
         NT AUTHORITY\SYSTEM Allow  Modify, Synchronize
         BUILTIN\Administrators Allow  268435456
         BUILTIN\Administrators Allow  Modify, Synchronize
         BUILTIN\Users Allow  -1610612736
         BUILTIN\Users Allow  ReadAndExecute, Synchronize
         NT SERVICE\TrustedInstaller Allow  268435456
         NT SERVICE\TrustedInstaller Allow  FullControl
         APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES Allow  Read
         AndExecute, Synchronize
         APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES Allow  -161
         0612736
         APPLICATION PACKAGE AUTHORITY\制限されたすべてのアプリケーション
         パッケージ Allow  ReadAndExecute, Synchronize
         APPLICATION PACKAGE AUTHORITY\制限されたすべてのアプリケーション
         パッケージ Allow  -1610612736
Audit  :
Sddl   : O:S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464G:
         S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464D:PA
         I(A;OICIIO;GA;;;CO)(A;OICIIO;GA;;;SY)(A;;0x1301bf;;;SY)(A;OICIIO;G
         A;;;BA)(A;;0x1301bf;;;BA)(A;OICIIO;GXGR;;;BU)(A;;0x1200a9;;;BU)(A;
         CIIO;GA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271
         478464)(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-185329263
         1-2271478464)(A;;0x1200a9;;;AC)(A;OICIIO;GXGR;;;AC)(A;;0x1200a9;;;
         S-1-15-2-2)(A;OICIIO;GXGR;;;S-1-15-2-2)

PowerShell (pwsh) をシステムアカウント (psexec -s) で実行する。
psexecScoopWindows Sysinternals をインストールする。

$ sudo psexec -s -i pwsh

-s システムアカウントでリモートプロセスを実行します。
-i リモートシステム上の指定されたセッションのデスクトップと対話するようにプログラムを実行します。セッションが指定されていない場合、プロセスはコンソールセッションで実行されます。
※システムアカウントでの操作は、システムに重大な影響を与える可能性があるので、十分に注意すること!!

PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

ここでは C:\Program Files\WindowsApps ディレクトリを NT AUTHORITY\SYSTEM アカウントで参照する。

$ Get-Acl "C:\Program Files\WindowsApps" | Format-List
Path   : Microsoft.PowerShell.Core\FileSystem::C:\Program Files\WindowsApps
Owner  : NT SERVICE\TrustedInstaller
Group  : NT SERVICE\TrustedInstaller
Access : NT AUTHORITY\RESTRICTED Allow  ReadAndExecute, Synchronize
         NT AUTHORITY\SYSTEM Allow  FullControl
         NT AUTHORITY\SYSTEM Allow  268435456
         NT AUTHORITY\LOCAL SERVICE Allow  ReadAndExecute, Synchronize
         NT AUTHORITY\NETWORK SERVICE Allow  ReadAndExecute, Synchronize
         BUILTIN\Administrators Allow  ReadAndExecute, Synchronize
         BUILTIN\Users Allow  ReadAndExecute, Synchronize
         NT SERVICE\TrustedInstaller Allow  268435456
         NT SERVICE\TrustedInstaller Allow  FullControl
         S-1-15-3-1024-3635283841-2530182609-996808640-1887759898-3848208603-33
         13616867-983405619-2501854204 Allow  -1610612736
         S-1-15-3-1024-3635283841-2530182609-996808640-1887759898-3848208603-33
         13616867-983405619-2501854204 Allow  ReadAndExecute, Synchronize
Audit  :
Sddl   : O:S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464G:S-1-
         5-80-956008885-3418522649-1831038044-1853292631-2271478464D:PAI(A;OICI
         ;0x1200a9;;;RC)(A;;FA;;;SY)(A;OICIIO;GA;;;SY)(A;OICI;0x1200a9;;;LS)(A;
         OICI;0x1200a9;;;NS)(A;CI;0x1200a9;;;BA)(XA;;0x1200a9;;;BU;(Exists WIN:
         //SYSAPPID))(A;OICIIO;GA;;;S-1-5-80-956008885-3418522649-1831038044-18
         53292631-2271478464)(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-
         1853292631-2271478464)(A;OICIIO;GXGR;;;S-1-15-3-1024-3635283841-253018
         2609-996808640-1887759898-3848208603-3313616867-983405619-2501854204)(
         A;;0x1200a9;;;S-1-15-3-1024-3635283841-2530182609-996808640-1887759898
         -3848208603-3313616867-983405619-2501854204)

SDDL の表記

表記 用途
O:ユーザーSID オブジェクト所有者の SID の指定
G:グループSID オブジェクトのプライマリグループの SID の指定
D:DACLフラグ(ACE文字列1)(ACE文字列2)……(ACE文字列n) DACL の指定
S:SACLフラグ(ACE文字列1)(ACE文字列2)……(ACE文字列n) SACL の指定

SDDL:

O:S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
G:S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
D:PAI(A;OICI;0x1200a9;;;RC)(A;;FA;;;SY)(A;OICIIO;GA;;;SY)
(A;OICI;0x1200a9;;;LS)(A;OICI;0x1200a9;;;NS)(A;CI;0x1200a9;;;BA)(XA;;0x1200a9;;;BU;(Exists WIN://SYSAPPID))(A;OICIIO;GA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;OICIIO;GXGR;;;S-1-15-3-1024-3635283841-2530182609-996808640-1887759898-3848208603-3313616867-983405619-2501854204)
(A;;0x1200a9;;;S-1-15-3-1024-3635283841-2530182609-996808640-1887759898-3848208603-3313616867-983405619-2501854204)

Windowsのセキュリティ設定を記述するSDDL文字列とは?:Tech TIPS - @IT より

SID: S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464 のユーザー名を取得する。

$ (New-Object System.Security.Principal.SecurityIdentifier('S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464')).Translate([System.Security.Principal.NTAccount]).Value
NT SERVICE\TrustedInstaller
  • windows/powershell/commands/get-acl.txt
  • 最終更新: 2020/09/11 17:26
  • by ともやん