必威电竞|足球世界杯竞猜平台

安全標識符
來源:互聯(lián)網

安全標識符(Security Identifiers,SID),是標識用戶、組和計算機帳戶的唯一的號碼。在第一次創(chuàng)建該帳戶時,將給網絡上的每一個帳戶發(fā)布一個唯一的 SID。Windows 2000 中的內部進程將引用帳戶的 SID 而不是帳戶的用戶或組名。如果創(chuàng)建帳戶,再刪除帳戶,然后使用相同的用戶名創(chuàng)建另一個帳戶,則新帳戶將不具有授權給前一個帳戶的權力或權限,原因是該帳戶具有不同的 SID 號。安全標識符也被稱為安全 ID 或 SID。

構成

一種不同長度的數(shù)據(jù)結構,用來識別用戶、組和計算機帳戶。網絡上每一個初次創(chuàng)建的帳戶都會收到一個唯一的 SID。Windows 中的內部進程將引用帳戶的 SID 而不是帳戶的用戶名或組名。

這個安全標識符可以這樣給你講,它是一串特殊的字符串,在你這臺電腦如果有和它相同的東西,但不會和他一樣的,而這個字串是電腦內部用到的,用戶接觸不到的。一般這種安全標識符是指當你新建一個用戶后,電腦就會為這個用戶生成一個特殊的安全標識符 (SID),如果新建一個用戶組(當然很少用到這個,多是在用到類局域網的域才用到),也會如此;當你把這個用戶或組刪了后,再以同樣用戶名新建一個用戶,而你之前建的那個用戶名和你這個用戶名就不是一回事了,其區(qū)別就是系統(tǒng)為他們關聯(lián)了各自的安全標識符 (SID)!

最明顯的例子就是,先建一個用戶,然后共享一文件夾,為文件夾設置一個高一點的網絡訪問權限。在另一臺局域網中電腦用這個用戶訪問并根據(jù)權限用其最大可操作的操作它,如讀、寫、刪除、新建等。然后把它刪了,再以同樣名新建它。你再在局域網中那臺電腦訪問這個文件夾,你就會發(fā)現(xiàn)問題了!

作用

用戶通過驗證后,登錄進程會給用戶一個訪問令牌,該令牌相當于用戶訪問系統(tǒng)資源的票證,當用戶試圖訪問系統(tǒng)資源時,將訪問令牌提供給 Windows NT,然后 Windows NT 檢查用戶試圖訪問對象上的訪問控制列表。如果用戶被允許訪問該對象,Windows NT將會分配給用戶適當?shù)脑L問權限。訪問令牌是用戶在通過驗證的時候由登錄進程所提供的。所以改變用戶的權限需要注銷后重新登錄,重新獲取訪問令牌。

號碼組成

如果存在兩個同樣SID的用戶,這兩個帳戶將被鑒別為同一個帳戶,原理上如果帳戶無限制增加的時候,會產生同樣的SID,在通常的情況下SID是唯一的,他由計算機名、當前時間、當前用戶態(tài)線程的CPU耗費時間的總和三個參數(shù)決定以保證它的唯一性。一個完整的SID包括:  · 用戶和組的安全描述  · 48-bit的ID authority  · 修訂版本  · 可變的驗證值Variable sub-authority values  例:S-1-5-21-310440588-250036847-580389505-500。我們來先分析這個重要的SID。第一項S表示該字符串是SID;第二項是SID的版本號,對于2000來說,這個就是1;然后是標志符的頒發(fā)機構(identifier authority),對于2000內的帳戶,頒發(fā)機構就是NT,值是5。然后表示一系列的子頒發(fā)機構,前面幾項是標志域的,最后一個標志著域內的帳戶和組。

獲得

開始-運行-regedit32-HKEY_LOCAL_MACHINESAMSAMDomainsBuiltinAliasesMembers,找到本地的域的代碼,展開后,得到的就是本地帳號的所有SID列表。其中很多值都是固定的,比如第一個000001F4(16進制),換算成十進制是500,說明是系統(tǒng)建立的內置管理員帳號administrator,000001F5換算成10進制是501,也就是GUEST帳號了,詳細的參照后面的列表。這一項默認是system可以完全控制,這也就是為什么要獲得這個需要一個System的運行指令的Shell的原因了,當然如果權限足夠的話你可以把你要添加的帳號添加進去。或者使用Support Tools的Reg工具:  reg query "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList  還有一種方法可以獲得SID和用戶名稱的對應關系:  1. Regedit32:  HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersion ProfileList  2. 這個時候可以在左側的窗口看到SID的值,可以在右側的窗口中ProfileImagePath看到不同的SID關聯(lián)的用戶名,比如%SystemDrive%Documents and SettingsAdministrator.momo這個對應的就是本地機器的管理員SID  %SystemDrive%Documents and SettingsAdministrator.domain這個就是對應域的管理員的帳戶  另外微軟的ResourceKit里面也提供了工具getsid,sysinternals的工具包里面也有Psgetsid,其實感覺原理都是讀取注冊表的值罷了,就是省了一些事情。

重復問題

安裝NT/2000系統(tǒng)的時候,產生了一個唯一的SID,但是當你使用類似Ghost的軟件克隆機器的時候,就會產生不同的機器使用一個SID的問題。產生了很嚴重的安全問題。同樣,如果是重復的SID對于對等網來說也會產生很多安全方面的問題。在對等網中帳號的基礎是SID加上一個相關的標識符(RID),如果所有的工作站都擁有一樣的SID,每個工作站上產生的第一個帳號都是一樣的,這樣就對用戶本身的文件夾和文件的安全產生了隱患。這個時候某個人在自己的NTFS分區(qū)建立了共享,并且設置了自己可以訪問,但是實際上另外一臺機器的SID號碼和這個一樣的用戶此時也是可以訪問這個共享的。

問題解決

下面的幾個試驗帶有高危險性,慎用,我已經付出了慘痛的代價!微軟在ResourceKit里面提供了一個工具,叫做sysprep,這個可以用在克隆一臺工作站以前產生一個新的SID號碼。下圖是他的參數(shù)  這個工具在DC上是不能運行這個命令的,否則會提示  但是這個工具并不是把所有的帳戶完全的產生新的SID,而是針對兩個主要的帳戶Administrator和Guest,其他的帳號仍然使用原有的SID。下面做一個試驗,先獲得目前帳號的SID: S-1-5-21-2000478354 - 688 78 9 844 - 839 522 115  然后運行Sysprep,出現(xiàn)提示窗口:確定以后需要重啟,然后安裝程序需要重新設置計算機名稱、管理員口令等,但是登陸的時候還是需要輸入原帳號的口令。進入2000以后,再次查詢SID,得到:  S-1-5-21-759461550-1 453 070 86-51 579 9519,發(fā)現(xiàn)SID號已經得到了改變,查詢注冊表,發(fā)現(xiàn)注冊表已經全部修改了,當然全部修改了?。另外sysinternals公司也提供了類似的工具NTSID,這個到后來才發(fā)現(xiàn)是針對NT4的產品,界面如下:他可不會提示什么再DC上不能用,接受了就開始,結果導致我的一臺DC崩潰,重啟后提示“安全賬號管理器初始化失敗,提供給識別代號頒發(fā)機構的值為無效值,錯誤狀態(tài)0XC0000084,請按確定,重啟到目錄服務還原模式...”,即使切換到目錄服務還原模式也再也進不去了!想想自己膽子也夠大的啊,好在是一臺額外DC,但是自己用的機器,導致重裝系統(tǒng)半天,重裝軟件N天?,所以再次提醒大家,做以上試驗的時候一定要慎重,最好在一臺無關緊要的機器上試驗,否則出現(xiàn)問題我不負責哦?。另外在ghost的新版企業(yè)版本中的控制臺已經加入了修改SID的功能,自己還沒有嘗試,有興趣的朋友可以自己試驗一下,不過從原理上應該都是一樣的。文章發(fā)表之前,又發(fā)現(xiàn)了微軟自己提供的一個工具“Riprep”,這個工具主要用做在遠程安裝的過程中,想要同時安裝上應用程序。管理員安裝了一個標準的公司桌面操作系統(tǒng),并配置好應用軟件和一些桌面設置之后,可以使用Riprep從這個標準的公司桌面系統(tǒng)制作一個Image文件。這個Image文件既包括了客戶化的應用軟件,又把每個桌面系統(tǒng)必須獨占的安全ID、計算機賬號等刪除了。管理員可以它放到遠程安裝服務器上,供客戶端遠程啟動進行安裝時選用。但是要注意的是這個工具只能在單硬盤、單分區(qū)而且是Professional的機器上面用。

參考資料 >

生活家百科家居網