php小編草莓為您介紹如何取得TrustedInstaller權限。 TrustedInstaller是Windows作業系統中的重要權限,擁有該權限可以對系統檔案進行修改和刪除。取得此權限可以解決一些無法刪除或修改系統檔案的問題。在本文中,我們將提供建議的操作步驟,協助您取得TrustedInstaller權限,以便更好地管理和維護您的系統。跟著以下步驟,您將能夠輕鬆取得TrustedInstaller權限,解決相關問題。
這篇文章將帶你了解TI的本質是什麼,進一步探索如何在powershell和NtObjectManager模組的幫助下取得TI權限,以便在作業系統中完成任何你想要的操作。
如果你曾經管理過Windows系統,那麼你應該熟悉trustedInstaller(TI)群組的概念。 TI群組在系統檔案和登錄的操作上具有重要的權限。舉個例子,你可以查看System32資料夾下檔案的屬性,在安全性選項中,TI群組和檔案擁有者俱有刪除和修改檔案的權限,甚至管理員也無法直接修改安全選項。因此,對於系統檔案和登錄的操作,需要取得TI組的權限。
然而,如果你查看本機使用者和群組選項,你是找不到TI使用者或群組的。這篇文章將帶你了解TI組的本質,並介紹如何利用Powershell和NtObjectManager模組來取得TI組權限,以便在作業系統中完成你想要的任何操作。
什麼是TrustedInstaller
如果TI既不是使用者又不是群組那它又是什麼?查詢ACL會給我們一些啟示。你可以使用Get-Acl指令來讀取一個檔案的安全描述,同時我們可以列出TI資訊。
從上圖可以看到在IdentityReference項目中我們看到了TI組,而且它有一個NT SERVICE的前綴。因此,它是一個Windows 服務SID,這是在Vista中加入的特性,這個特性允許作業系統上執行的每一項服務都有一個用來進行權限檢查的群組。透過這種機制,作業系統不必承擔增加獨立真實的群組的額外開銷。
SID本身是服務名稱的大寫表示的SHA1值,下面這段程式碼就可以計算真實的SID值:
1
2
3
4
5
6
7
8
9
#$name = "TrustedInstaller"
# Calculate service SID
$bytes = [Text.Encoding]::Unicode.GetBytes( $name.ToUpper())
$sha1 = [System.Security.Cryptography.SHA1]::Create()
$hash = $sha1.ComputeHash($bytes)
$rids = New-Object UInt32[] 5
[Buffer]::BlockCopy( $hash, 0, $rids, 0, $hash.Length)
#[string]::Format("S-1-5-80-{0}-{1} -{2}-{3}-{4}", `
$rids[0], $rids[1], $rids[2], $rids[3] , $rids[4])
當然,你大可不必自己去實作這個方法,NTDLL中有一個RtlCreateServiceSid方法可以做到這一點,同時LSASS中也能把服務名稱轉換成SID。也就是說,當系統資源被更改時,一個名為TrustedInstall的系統服務一定會被運作。我們使用SC模組也能發現這一點。
如果開啟TI服務並且檢視Access Token,我們可以看到TI群組啟用。
以上是trustedinstaller權限怎麼獲得「推薦取得TrustedInstaller權限操作步驟」的詳細內容。更多資訊請關注PHP中文網其他相關文章!