获取SID方法

来源:互联网 发布:美发大全软件下载 编辑:程序博客网 时间:2024/04/29 21:28

获取SID方法

SID简述

        SID = Security Identifiers,安全标识符,是标识用户、组和计算机帐户的唯一的号码。简单来说,SID是唯一身份编号。用来标识用户身份的。存在在本地SAM数据库中。这个库默认连管理员都没权读的。只有SYSTEM完全控制的。

举例:比如我们想修改管理员的帐号。那修改前和修改过以后系统怎么识别你还是不是管理员呢?其实就是看SID号的。所以SID永不重复。就算你重新安装部分SID号还是不一样的。

        而2000/XP以后的系统对SID的依赖比较高。比较明显的是:注册表、NTFS、EFS(加密文件)等都是依靠SID的。简单的GHOST只复制了系统中的SID。而另外分区上的可能被记录的SID没有被复制。所以一般GHOST恢复以后可能会造成访问失败。

        Windows Session(会话)到底是一个什么概念,总是感觉这个概念很虚,现在理解了一点。写下来做一个备忘。简单的说,用户登陆到windows系统之后,不管该用户是本地登陆的,还是远程登陆,系统都会为这个用户分配一个新的会话ID(SID)。也就是说会话与用户的登录是相关连的,没有用户登录就不存在会话。因此,会话的含义是指用户登录之后的一种运行的环境。我们先看看书上是怎么说的!

        会话管理器(\Windows\System32\Smss.exe)是系统中第一个创建的用户态模式进程,负责完成执行体和内核的初始化工作的内核模式系统线程在最后阶段创建了实际的Smss进程(这段摘自: 《深入解析Windows操作系统(第4版)》80页)

会话(session)是由进程和其他的系统对象(比如窗口站、桌面和窗口)构成的,它们代表了一个用户的工作站登录会话。会话具体是由如下几个部分组成的:

1. 每个会话包含一个单独的win32k.sys

2. 专门的换页池区域

3. 私有windows子系统和登陆进程的拷贝

4. 系统空间中被映射的空间,被称为会话空间的区域

(参考: 《深入解析Windows操作系统(第4版)》 414页)

现在我们清楚了,当用户登陆到系统中之后,用户下所有的进程都属于这个会话空间。在每个进程的PEB当中就有SessionID。

方法一:

whoami /user

whoami /all可以看到所有信息

方法二:

wmic useraccount where name="%username%" get sid

方法三:

CMD->REGEDIT ->HKEY_LOCAL_MACHINE\SAM\SAM
这时候你看不到任何东西的。按上次的方法给自己权限。右键权限。给管理员组FULL CONTROL就能看到SID等信息。

上面SAM位置不一定可以看到(我测试的时候没有看到),所有SID具体位置在:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

此项的每个子项名就是sid,子项中的ProfileImagePath键值包含了用户名。

此外在已知sid的情况下可以在以下项键处直接看到对应的用户名

HKEY_USERS\已知的SID \Software\Microsoft\Windows\CurrentVersion\Explorer

键值Logon User Name处便是用户名

MS提供了一个获取SID的工具,PsGetSid:http://technet.microsoft.com/en-us/sysinternals/bb897417

附:查看哪个用户登录该机器

echo %username%
查看机器名

hostname
获取MAC

getmac




原创粉丝点击