打个比方我们能修改管理员的帐号。态腊败那修改前和修改过以后系统怎么识别你还是不是管理员呢?其实就是看SID号的。所以SID永不重复。就算你重新安装部分SID号还是不一样的。
而2000/XP以后帆颤的系统对SID的依赖比较高。明显的是对注册表、NTFS、EFS(加密文件)等都是依靠SID的。简单的GHOST只复制了系统中的SID。而另外分区上的可能被记录的SID没有被复制。所以恢复以后可能会造成访问失败。
用SYSPREP可以把系统中的SID号清掉。这样恢复以后系统会自动重新生成。
SAM库在XP可以这样打开:
REGEDIT
HKEY_LOCAL_MACHINE\SAM\SAM
这时候你看不到任何东西的。按上次的方法给自己权限。右键权限。给管理员组FULL CONTROL就能看到SID等信息。SID很长的。比如:
S-1-5-21-1177238915-1767777339-839522115
.reg应该是注册文件 .dat是一种配置文件,数字录音带,数据流格式 .ico单个图标的文件名后缀 .SAV 文件是游戏保存文件 .dlm应该是些学习软件的文件,3dmax里就有这种文件 .lst文件是列表文件 .cfg这种文件没有固好稿定的格式,其实也并不能算作是一种文件类型。用途也友源孝仅仅是保存用户的设置 .sid安全标识符,是标识用户、组和裂尘计算机帐户的唯一的号码 .xml类似于html的标记语言,用来描述数据的 .ldr是ROM里面的汇编程序,简单点理解就是硬盘的 *** 作系统 .sky号码归属地数据 .sys系统复制命令 .list写字板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号码和这个一样的用户此时也是可以访问这个共享的。 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,请按确定,重启到目录服务还原模式...”,即使切换到目录服务还原模式也再也进不去了!欢迎分享,转载请注明来源:内存溢出
评论列表(0条)