文書の表示以前のリビジョンバックリンク文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== Get-Acl ====== ファイルやレジストリキーなどのリソースのセキュリティ記述子を取得する。\\ ===== ディレクトリのセキュリティ記述子を取得する ===== <WRAP prewrap 100%> <code powershell> $ Get-Acl C:\Windows </code> </WRAP> <WRAP prewrap 100% #result> <code powershell> Directory: C:\ Path Owner Access ---- ----- ------ Windows NT SERVICE\TrustedInstaller CREATOR OWNER Allow 268435456… </code> </WRAP> ===== ディレクトリの PowerShell パスと SDDL を取得する ===== <WRAP prewrap 100%> <code powershell> $ Get-Acl C:\Windows | Format-List -Property PSPath, Sddl </code> </WRAP> <WRAP prewrap 100% #result> <code powershell> 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) </code> </WRAP> ===== SDDL の内容は GetSecurityDescriptorSddlForm('All') と同様である ===== <WRAP prewrap 100%> <code powershell> $ (Get-Acl C:\Windows).GetSecurityDescriptorSddlForm('All') </code> </WRAP> <WRAP prewrap 100% #result> <code powershell> 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) </code> </WRAP> ===== Get-Acl でディレクトリから取得できる情報は Format-List で確認できる ===== <WRAP prewrap 100%> <code powershell> $ Get-Acl C:\Windows | Format-List </code> </WRAP> <WRAP prewrap 100% #result> <code powershell> 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) </code> </WRAP> ===== SID のユーザー名を調べる ===== PowerShell (pwsh) をシステムアカウント (psexec -s) で実行する。\\ **psexec** は [[windows:scoop|Scoop]] で [[windows:sysinternals|Windows Sysinternals]] をインストールする。\\ <WRAP prewrap 100%> <code powershell> $ sudo psexec -s -i pwsh </code> </WRAP> **-s** システムアカウントでリモートプロセスを実行します。\\ **-i** リモートシステム上の指定されたセッションのデスクトップと対話するようにプログラムを実行します。セッションが指定されていない場合、プロセスはコンソールセッションで実行されます。\\ <html><span style="color:red;">※システムアカウントでの操作は、システムに重大な影響を与える可能性があるので、十分に注意すること!!</span></html> <WRAP prewrap 100% #result> <code powershell> PsExec v2.2 - Execute processes remotely Copyright (C) 2001-2016 Mark Russinovich Sysinternals - www.sysinternals.com </code> </WRAP> ここでは **C:\Program Files\WindowsApps** ディレクトリを **NT AUTHORITY\SYSTEM** アカウントで参照する。\\ <WRAP prewrap 100%> <code powershell> $ Get-Acl "C:\Program Files\WindowsApps" | Format-List </code> </WRAP> <WRAP prewrap 100% #result> <code powershell> 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) </code> </WRAP> <WRAP prewrap #mintbl> **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 の指定 | </WRAP> **SDDL:**\\ <WRAP prewrap 100% #mincode> <code powershell> 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) </code> </WRAP> [[https://www.atmarkit.co.jp/ait/articles/0603/25/news016.html|Windowsのセキュリティ設定を記述するSDDL文字列とは?:Tech TIPS - @IT]] より\\ **SID: S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464** のユーザー名を取得する。\\ <WRAP prewrap 100%> <code powershell> $ (New-Object System.Security.Principal.SecurityIdentifier('S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464')).Translate([System.Security.Principal.NTAccount]).Value </code> </WRAP> <WRAP prewrap 100% #result> <code powershell> NT SERVICE\TrustedInstaller </code> </WRAP> ===== 参考文献 ===== [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/get-acl|Get-Acl - Microsoft | Docs]]\\ [[https://superuser.com/questions/1288014/reset-default-acls-for-c-program-files-windowsapps|windows - Reset default ACLs for C:\Program Files\WindowsApps - Super User]]\\ windows/powershell/commands/get-acl.txt 最終更新: 2020/09/11 17:26by ともやん