SID 相關資訊
1. SID是什麼
SID (security identifier )是一串由不同長度數字組成的唯一識別碼,被使用在使用者帳戶、群組帳戶、電腦帳戶及服務上作為當用戶存取相關的系統資源時,系統會使用在存取權杖(Access Token)中的SID檢查該項資源的存取控制清單(ACL),並提供用戶該系統資源的適當存取權限。每個安全主體(security Principals),就是以上提到的使用者帳戶、群組帳戶、電腦帳戶及服務,在它們被建立時就會同時被分配到一個唯一的SID。2. 電腦或使用者的SID格式 (常見的 SID 架構)、(常見的 SID)
使用者SID範例: S-1-5-21-4197956092-2019137781-999546546-1001由”-“分隔開的每段都有其代表的意義
- S代表的是security identifier的意思
- 1是版本號
- 5是識別碼頒發機構,為1個48bit 的identifier authority value
- 21-4197956092-2019137781-999546546 代表網域或本機電腦識別碼,其中21是固定值,4197956092-2019137781-999546546為96bit隨機產生的值,由3個32bit 的subauthority所組成。
- 1001 這欄位是RID (relative identifier),1001代表這是第二個被建立的帳號,除預設內建使用者或群組外,新建使用者由1000起跳。常見的RID為administrator的500跟guest的501
3. 如何查詢SID
- 透過regedit查詢登錄值裡的帳號對應SID
- 透過微軟免費工具psgetsid查詢SID (建議使用這個)
- 查詢本機電腦SID: psgetsid
- 查詢遠端主機SID: psgetsid \\hostname
- 查詢遠端所有主機SID: psgetsid \\*
- 在DC上查詢Domain SID: psgetsid
- 在DC上查詢網域成員Computer Account psgetsid hostname$
- 透過查詢網域帳號SID
- Get-ADUser -Identity 網域帳號 | FT Name,SID -Autosize
- 透過指令whoami /user查詢SID
- 查詢本機電腦SID: whoami /user (去掉RID即為電腦SID)
- 查詢現在登入帳戶 SID whoami /user
- 透過指令 WMIC 查詢SID
- 查詢本機電腦所有帳號SID: WMIC useraccount get name,sid (去掉RID即為電腦SID)
- 查詢現在登入帳戶 SID: wmic useraccount where name="user" get sid (去掉RID即為電腦SID)
4. SID重複的影響
- 網域成員不可以跟網域控制站有相同的Machine SID,這樣會造成安全性問題。
- 在內接硬碟或外接可移除式磁碟(如USB Disk)上的NTFS權限,會因其他電腦有相同SID的群組而能夠存取。(經測試,該目錄或檔案安全性權限會變成其他電腦上有相同SID使用者或群組名稱)
- 單靠Machine SID 來識別電腦的分佈式軟體。
5. Sysprep 做了什麼?
- 產生一個新的 SID、新的 SUSClientID。
- 啟動隨插即用硬體偵測
- 重設產品啟用時鐘
- 刪除組態資料檔、紀錄檔、電腦特定組態
6. 是否一定要使用 sysprep?
- 解決不能與第一台 Domain Controller 有相同SID的問題。
- 避免所有電腦都擁有同一個SUSClientID。
- 避免使用可移除式磁碟時發生有相同SID的使用者能存取受限的檔案或目錄。
- 解決使用BizTalk Server 時, Windows 的 MSDTC 必須獲派唯一的 CID 值。
7. EFS解密問題,實測可行方式
- 使用Advanced EFS Data Recovery之類的軟體解密,必須滿足下列條件才有機會解密
- 原有的使用者設定檔有保留
- 機器SID不能有改變
- 如果機器格式化重灌,可利用原先備出的master key跟private key及簽章救回加密資料
- 需備份master key跟private key及簽章
- 需有可變更SID的程式
- 需記得原帳戶密碼
private key: %UserProfile%\Application Data\Microsoft\Protect\SID
簽章位置: %UserProfile%\Application Data\Microsoft\SystemCertificates\My\Certificates
簡單說,如果master key跟private key、簽章,帳戶密碼及本機電腦SID沒有保留或記錄下來就肯定沒救。
8. Q&A
Q1. 不做SYSPREP導致電腦SID重複,是否會造成電腦無法加入網域?
A1. 不會,加入網域時電腦會取得該網域配發的電腦帳戶SID,而這組SID跟本機電腦SID是不一樣的。電腦帳戶SID必須從網域控制站才查得到。
Q2. 工作群組裡兩台電腦上的使用者有相同的SID,如果其中一台電腦上的使用者開資料夾共享給自己,另一台上相同SID的使用者是否能直接存取該共享資料夾?
A2. 不行,因為SID只作用在本機端,所有連線到遠端資源的存取都不會用到SID,都必須使用其他的驗證方式。
Q3. 正常狀態下,誰會跟網域控制站有相同的Domain SID?
A3. 其他的網域控制站。在一台成員伺服器升級成網域控制站時,它會將自己的Domain SID改成跟原本的網域控制站一樣。但電腦帳戶SID還是不一樣。
Q4. 如果使用Windows 的EFS加密檔案後,格式化重灌系統或使用映像檔重灌系統,原本的加密檔打不開了。是否可利用相同SID的電腦及使用者將這些檔案解密?
A4. 不行。如果master key跟private key沒了,即使是相同SID的電腦及使用者也無法產生一樣的master key跟private key。
Q5. 如果要加入網域的成員伺服器跟網域控制站有一樣的本機電腦SID,能加入網域嗎?
A5. 能夠加入網域,也沒有任何錯誤訊息。此時成員伺服器的本機電腦SID和網域的SID會是一樣,但網域裡的電腦帳戶SID不一樣,不過由於成員伺服器的本機電腦SID和網域的SID一致會造成資安問題。
留言