轉殖windows系統SID重複的問題

2021-09-30 07:01:07 字數 3929 閱讀 8611

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號已經得到了改變,查詢登錄檔,發現登錄檔已經全部修改了,當然全部修改了。

下面是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

sid也就是安全識別符號(security identifiers),是標識使用者、組和計算機帳戶的唯一的號碼。在第一次建立該帳戶時,將給網路上的每乙個帳戶發布乙個唯一的 sid。windows 2000 中的內部程序將引用帳戶的 sid 而不是帳戶的使用者或組名。如果建立帳戶,再刪除帳戶,然後使用相同的使用者名稱建立另乙個帳戶,則新帳戶將不具有授權給前乙個帳戶的權力或許可權,原因是該帳戶具有不同的 sid 號。安全識別符號也被稱為安全 id 或 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號碼和這個一樣的使用者此時也是可以訪問這個共享的。

轉殖windows系統SID重複的問題

轉殖windows系統sid重複的問題 2010年04月09日 星期五 下午 08 44 sid重複問題的解決 下面的幾個試驗帶有高危險性,慎用,我已經付出了慘痛的代價!微軟在resourcekit裡面提供了乙個工具,叫做sysprep,這個可以用在轉殖一台工作站以前產生乙個新的sid號碼。下圖是他...

轉殖系統後如何重新清除SID

sid security identifiers,安全識別符號 是windows中標識使用者 組和計算機的唯一的號碼,windows作業系統通過sid對計算機和使用者進行識別。使用者的許可權設定也是通過sid來記錄,更改計算機名或使用者名稱並不會更改它們的sid,因此可以保留與之前一樣的許可權,而刪...

Windows系統預設的SID 值

許多使用者帳戶 本地的組和全域性組已跨所有安裝的 windows nt 的預設安全識別符號 sid 或相對識別符號 rid 值。可以通過使用該實用程式從 windows nt 資源工具包 getsid.exe 顯示這些值。下面的資訊來自名為網域名稱的域控制器。在 windows nt 工作站或伺服器...