SID和NewSID的詳細說明

來源:互聯網
上載者:User
       
SID和NewSID的詳細說明2009-12-14 19:00
SID也就是安全性識別碼(Security Identifiers),是標識使用者、組和電腦帳戶的唯一的號碼。在第一次建立該帳戶時,將給網路上的每一個帳戶發布一個唯一的 SID。Windows 2000 中的內部進程將引用帳戶的 SID 而不是帳戶的使用者或組名。如果建立帳戶,再刪除帳戶,然後使用相同的使用者名稱建立另一個帳戶,則新帳戶將不具有授權給前一個帳戶的權力或許可權,原因是該帳戶具有不同的 S識別碼。安全性識別碼也被稱為安全性識別碼 或 SID。

SID的作用

使用者通過驗證後,登陸進程會給使用者一個存取權杖,該令牌相當於使用者訪問系統資源的票證,當使用者試圖訪問系統資源時,將存取權杖提供給 Windows NT,然後 Windows NT 檢查使用者試圖訪問對象上的存取控制清單。如果使用者被允許訪問該對象,Windows NT將會分配給使用者適當的存取權限。

存取權杖是使用者在通過驗證的時候有登陸進程所提供的,所以改變使用者的許可權需要登出後重新登陸,重新擷取存取權杖。

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,其實感覺原理都是讀

取註冊表的值罷了,就是省了一些事情。

SID重複問題的產生

安裝NT/2000系統的時候,產生了一個唯一的SID,但是當你使用類似Ghost的軟體複製機器的時候,就會產生不同的機器使用一個SID的問題。產生了很嚴重的安全問題。

同樣,如果是重複的SID對於對等網來說也會產生很多安全方面的問題。在對等網中帳號的基礎是SID加上一個相關的標識符(RID),如果所有的工作站都擁有一樣的SID,每個工作站上產生的第一個帳號都是一樣的,這樣就對使用者本身的檔案夾和檔案的安全產生了隱患。

這個時候某個人在自己的NTFS分區建立了共用,並且設定了自己可以訪問,但是實際上另外一台機器的SID號碼和這個一樣的使用者此時也是可以訪問這個共用的。

SID重複問題的解決

下面的幾個實驗帶有高危險性,慎用,我已經付出了慘痛的代價!

微軟在ResourceKit裡面提供了一個工具,叫做SYSPREP,這個可以用在複製一台工作站以前產生一個新的SID號

碼。 是他的參數

這個工具在DC上是不能運行這個命令的,否則會提示

但是這個工具並不是把所有的帳戶完全的產生新的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)

NewSID ,顧名思義,就是可以利用它來為電腦重建新的SID號。為什麼要重新定義新SID?如果用Ghost的鏡像批量的來安裝系統,那麼它們的SID號必然相同。若內部網路上電腦SID相同就會造成許多衝突,加入域也會有很大問題,甚至造成客戶機無法加入到域。對於什麼是SID?2樓已經有很詳細的介紹。

Windows 安裝光碟片不是已經提供了Sysprep嗎?什麼還要用NewSID呢?

1、 凡用過Sysprep的朋友都應該知道,如果用Sysprep來重新封裝系統,在重啟之後會要求我們重新輸入產品序號和重新添加使用者,對於企業來說很多時候是不希望員工得到產品ID的,讓非IT職員來完成系統任務也很有可能造成一些不必要的麻煩。

2、 正是基於我們這些迫切需求,NewSID可謂是一個完美的解決方案。它提供三種方式來讓我們重建SID:a.隨機產生 b.從其它電腦複製 c.手工輸入,以上這三種方式可以滿足大多數使用者的需求。我們還可以選擇是否重新給電腦更名,最後也可以手工指定在SID重定義完成後是否重啟電腦。

3、 電腦重啟之後不會讓我們再次輸入產品序號,也不會讓我們重新添加使用者,這為我們減少了很多不必要的麻煩。

總結:NewSID是一個相當Cool的小工具,大家一定要將其收到自己的工具箱中,以備不時之需。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.