当前位置: 首页 > 工具软件 > Sid > 使用案例 >

安全标识符SID

锺离晗昱
2023-12-01
 
SID 也就是安全标识符( Security Identifiers ),是标识用户、组和计算机帐户的唯一的号码。在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的  SID Windows 2000  中的内部进程将引用帐户的  SID  而不是帐户的用户或组名。如果创建帐户,再删除帐户,然后使用相同的用户名创建另一个帐户,则新帐户将不具有授权给前一个帐户的权力或权限,原因是该帐户具有不同的  SID  号。安全标识符也被称为安全  ID   SID  

SID 的作用
用户通过验证后,登陆进程会给用户一个访问令牌,该令牌相当于用户访问系统资源的票证,当用户试图访问系统资源时,将访问令牌提供给  Windows NT ,然后  Windows NT  检查用户试图访问对象上的访问控制列表。如果用户被允许访问该对象, Windows NT 将会分配给用户适当的访问权限。  
访问令牌是用户在通过验证的时候有登陆进程所提供的,所以改变用户的权限需要注销后重新登陆,重新获取访问令牌。  

SID 号码的组成
如果存在两个同样 SID 的用户,这两个帐户将被鉴别为同一个帐户,原理上如果帐户无限制增加的时候,会产生同样的 SID ,在通常的情况下 SID 是唯一的,他由计算机名、当前时间、当前用户态线程的 CPU 耗费时间的总和三个参数决定以保证它的唯一性。  

一个完整的 SID 包括: 
Code:
•  用户和组的安全描述  
• 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 列表。  
其中很多值都是固定的,比如第一个 000001F 4 16 进制),换算成十进制是 500 ,说明是系统建立的内置管理员帐号 administrator 000001F 5 换算成 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 ,得到:  
  J S-1-5-21-759461550-145307086-515799519 ,发现 SID 号已经得到了改变,查询注册表,发现注册表已经全部修改了,当然全部修改了

另外 sysinternals 公司也提供了类似的工具 NTSID ,这个到后来才发现是针对 NT4 的产品,界面如下:  

他可不会提示什么再 DC 上不能用,接受了就开始,结果导致我的一台 DC 崩溃,重启后提示 安全账号管理器初始化失败,提供给识别代号颁发机构的值为无效值,错误状态 0XC0000084 ,请按确定,重启到目录服务还原模式 ...” ,即使切换到目录服务还原模式也再也进不去了!  
。另外在 Ghost 的新版企业版本中的控制台已经加入了修改 SID 的功能,自己还没有尝试,有兴趣的朋友可以自己试验一下,不过从原理上应该都是一样的。  J ,所以再次提醒大家,做以上试验的时候一定要慎重,最好在一台无关紧要的机器上试验,否则出现问题我不负责哦 L 想想自己胆子也够大的啊,好在是一台额外 DC ,但是自己用的机器,导致重装系统半天,重装软件 N
文章发表之前,又发现了微软自己提供的一个工具 “Riprep” ,这个工具主要用做在远程安装的过程中,想要同时安装上应用程序。管理员安装了一个标准的公司桌面操作系统,并配置好应用软件和一些桌面设置之后,可以使用 Riprep 从这个标准的公司桌面系统制作一个 Image 文件。这个 Image 文件既包括了客户化的应用软件,又把每个桌面系统必须独占的安全 ID 、计算机账号等删除了。管理员可以它放到远程安装服务器上,供客户端远程启动进行安装时选用。但是要注意的是这个工具只能在单硬盘、单分区而且是 Professional 的机器上面用。  


下面是 SID 末尾 RID 值的列表,括号内为 16 进制: 
Code:
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)
 
 
 类似资料: