線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1670
推到 Plurk!
推到 Facebook!

完全剖析"安全識別字"--SID

 
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-06 22:02:42 IP:218.175.xxx.xxx 未訂閱
完全剖析"安全識別字"--SID
http://www.pconline.com.cn/pcjob/system/microsoft/article/0407/416200.html
前言       SID也就是安全識別字(Security Identifiers),是標識用戶、組和電腦帳戶的唯一的號碼。在第一次創建該帳戶時,將給網路上的每一個帳戶發佈一個唯一的 SID。Windows 2000 中的內部進程將引用帳戶的 SID 而不是帳戶的用戶或組名。如果創建帳戶,再刪除帳戶,然後使用相同的用戶名創建另一個帳戶,則新帳戶將不具有授權給前一個帳戶的權力或許可權,原因是該帳戶具有不同的 SID 號。安全識別字也被稱為安全 ID 或 SID。     SID的作用       用戶通過驗證後,登陸進程會給用戶一個訪問權杖,該權杖相當於用戶訪問系統資源的票證,當用戶試圖訪問系統資源時,將訪問權杖提供給 Windows 2000,然後 Windows 2000 檢查用戶試圖訪問物件上的訪問控制列表。如果用戶被允許訪問該物件,Windows 2000將會分配給用戶適當的訪問許可權。       訪問權杖是用戶在通過驗證的時候有登陸進程所提供的,所以改變用戶的許可權需要登出後重新登陸,重新獲取訪問權杖。     SID號碼的組成       如果存在兩個同樣SID的用戶,這兩個帳戶將被鑒別為同一個帳戶,原理上如果帳戶無限制增加的時候,會產生同樣的SID,在通常的情況下SID是唯一的,他由電腦名、當前時間、當前用戶態線程的CPU耗費時間的總和三個參數決定以保證它的唯一性。     一個完整的SID包括:    • 用戶和組的安全描述 
• 48-bit的ID authority 
• 修訂版本 
• 可變的驗證值Variable sub-authority values     例:S-1-5-21-310440588-250036847-580389505-500       我們來先分析這個重要的SID。第一項S表示該字串是SID;第二項是SID的版本號,對於2000來說,這個就是1;然後是標誌符的頒發機構(identifier authority),對於2000內的帳戶,頒發機構就是NT,值是5。然後表示一系列的子頒發機構,前面幾項是標誌域的,最後一個標誌著域內的帳戶和組。     SID的獲得       開始-運行-regedt32-HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Builtin\Aliases\Members,找到本地的域的代碼,展開後,得到的就是本地帳號的所有SID列表。      其中很多值都是固定的,比如第一個000001F4(16進制),換算成十進位是500,說明是系統建立的內置管理員帳號administrator,000001F5換算成10進制是501,也就是GUEST帳號了,詳細的參照後面的列表。      這一項默認是system可以完全控制,這也就是為什麼要獲得這個需要一個System的Cmd的Shell的原因了,當然如果許可權足夠的話你可以把你要添加的帳號添加進去。    或者使用Support Tools的Reg工具:     reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList     還有一種方法可以獲得SID和用戶名稱的對應關係:       1. Regedt32:     HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion \ProfileList       2. 這個時候可以在左側的視窗看到SID的值,可以在右側的視窗中ProfileImagePath看到不同的SID關聯的用戶名,比如%SystemDrive%\Documents and Settings\Administrator.momo這個對應的就是本地機器的管理員SID 
%SystemDrive%\Documents and Settings\Administrator.domain這個就是對應域的管理員的帳戶       另外微軟的ResourceKit裏面也提供了工具getsid,sysinternals的工具包裏面也有Psgetsid,其實感覺原理都是讀取註冊表的值罷了,就是省了一些事情    ////////////////////////////
http://www.pconline.com.cn/pcjob/system/microsoft/article/0407/416200_1.html    SID重複問題的產生       安裝NT/2000系統的時候,產生了一個唯一的SID,但是當你使用類似Ghost的軟體克隆機器的時候,就會產生不同的機器使用一個SID的問題。產生了很嚴重的安全問題。       同樣,如果是重複的SID對於對等網來說也會產生很多安全方面的問題。在對等網中帳號的基礎是SID加上一個相關的識別字(RID),如果所有的工作站都擁有一樣的SID,每個工作站上產生的第一個帳號都是一樣的,這樣就對用戶本身的檔夾和檔的安全產生了隱患。 
  這個時候某個人在自己的NTFS分區建立了共用,並且設置了自己可以訪問,但是實際上另外一台機器的SID號碼和這個一樣的用戶此時也是可以訪問這個共用的。     SID重複問題的解決       下面的幾個試驗帶有高危險性,慎用,我已經付出了慘痛的代價!       微軟在ResourceKit裏面提供了一個工具,叫做SYSPREP,這個可以用在克隆一台工作站以前產生一個新的SID號碼。       但是這個工具並不是把所有的帳戶完全的產生新的SID,而是針對兩個主要的帳戶Administrator和Guest,其他的帳號仍然使用原有的SID。       下面做一個試驗,先獲得目前帳號的SID:     S-1-5-21-2000478354-688789844-839522115       然後運行Sysprep,出現提示視窗,確定以後需要重啟,然後安裝程式需要重新設置電腦名稱、管理員口令等,但是登陸的時候還是需要輸入原帳號的口令。       進入2000以後,再次查詢SID,得到:      S-1-5-21-759461550-145307086-515799519,發現SID號已經得到了改變,查詢註冊表,發現註冊表已經全部修改了,當然全部修改了?。       另外sysinternals公司也提供了類似的工具NTSID,這個到後來才發現是針對NT4的產品,不過,他可不會提示什麼再DC上不能用,接受了就開始,結果導致我的一台DC崩潰,重啟後提示“安全帳號管理器初始化失敗,提供給識別代號頒發機構的值為無效值,錯誤狀態0XC0000084,請按確定,重啟到目錄服務還原模式...”,即使切換到目錄服務還原模式也再也進不去了!       想想自己膽子也夠大的啊,好在是一台額外DC,但是自己用的機器,導致重裝系統半天,重裝軟體N天?,所以再次提醒大家,做以上試驗的時候一定要慎重,最好在一台無關緊要的機器上試驗,否則出現問題我不負責哦?。另外在Ghost的新版企業版本中的控制臺已經加入了修改SID的功能,自己還沒有嘗試,有興趣的朋友可以自己試驗一下,不過從原理上應該都是一樣的。       文章發表之前,又發現了微軟自己提供的一個工具“Riprep”,這個工具主要用做在遠端安裝的過程中,想要同時安裝上應用程式。管理員安裝了一個標準的公司桌面作業系統,並配置好應用軟體和一些桌面設置之後,可以使用Riprep從這個標準的公司桌面系統製作一個Image檔。這個Image檔既包括了客戶化的應用軟體,又把每個桌面系統必須獨佔的安全ID、電腦帳號等刪除了。管理員可以它放到遠端安裝伺服器上,供用戶端遠端啟動進行安裝時選用。但是要注意的是這個工具只能在單硬碟、單分區而且是Professional的機器上面用。       下麵是SID末尾RID值的列表,括弧內為16進制:     Built-In Users 
DOMAINNAME\ADMINISTRATOR 
S-1-5-21-917267712-1342860078-1792151419-500 (=0x1F4)     DOMAINNAME\GUEST 
S-1-5-21-917267712-1342860078-1792151419-501 (=0x1F5) 
Built-In Global Groups 
DOMAINNAME\DOMAIN ADMINS 
S-1-5-21-917267712-1342860078-1792151419-512 (=0x200)     DOMAINNAME\DOMAIN USERS 
S-1-5-21-917267712-1342860078-1792151419-513 (=0x201)     DOMAINNAME\DOMAIN GUESTS 
S-1-5-21-917267712-1342860078-1792151419-514 (=0x202) 
Built-In Local Groups 
BUILTIN\ADMINISTRATORS S-1-5-32-544 (=0x220) 
BUILTIN\USERS S-1-5-32-545 (=0x221) 
BUILTIN\GUESTS S-1-5-32-546 (=0x222) 
BUILTIN\ACCOUNT OPERATORS S-1-5-32-548 (=0x224) 
BUILTIN\SERVER OPERATORS S-1-5-32-549 (=0x225) 
BUILTIN\PRINT OPERATORS S-1-5-32-550 (=0x226) 
BUILTIN\BACKUP OPERATORS S-1-5-32-551 (=0x227) 
BUILTIN\REPLICATOR S-1-5-32-552 (=0x228) 
Special Groups 
\CREATOR OWNER S-1-3-0 
\EVERYONE S-1-1-0 
NT AUTHORITY\NETWORK S-1-5-2 
NT AUTHORITY\INTERACTIVE S-1-5-4 
NT AUTHORITY\SYSTEM S-1-5-18 
NT AUTHORITY\authenticated users S-1-5-11 *.(over)
 
系統時間:2024-07-02 13:02:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!