ファイルやレジストリキーなどのリソースのセキュリティ記述子を取得する。
$ 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) で実行する。
psexec は Scoop で Windows 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