前言
原本是一个课时的内容,但是上篇的内容写的有些冗杂,导致没法塞在一篇内,本篇介绍用户与组管理,会尽量做到精炼。
本篇分为4个部分,第1部分介绍SID概念以及与用户之间的关系,第2部分介绍用户管理的方式以及相关命令,第3,4部分分别介绍组管理与服务器远程管理的相关内容(注:大部分实验均在Windows2003上完成,远程管理部分用到WindowsXP配合实验)
SID(Security Identifiers)
含义
SID,安全标识符(Security Identifiers),是标识用户,组和计算机账户的唯一的号码;相当于计算机账户的身份证号,是唯一的,可标识身份用的。
组成
1 | 系统SID: S-1-5-21-3072888247-3196847064-770484880-500 |
观察上面两个SID,来简单分析一下结构
- S:表示该字符串是 SID。
- 1:SID的版本号,对于Windows 2000/xp/2003这几个版本来说就是1。
- 5:标识符的颁发机构:对于Windows 2000/xp/2003来说,颁发机构就是NT,值是5。
- 21***880:代表着一系列子颁发机构。
- 500/1004(UID):标志着域内的账户和组。Windows系统管理员Administrator的UID是500,普通用户是从1000开始。(扩展:Linux系统管理员root的UID是0)
查看
使用下述指令可以查看当前账户的SID
1 | whoami /user |
配合SAM文件进行登录认证
SAM文件即账号密码数据库文件,当我们登录系统时,系统会根据输入的SID和密码自动地去和SAM中的值进行校对。若匹配成功,即可完成登录。
SAM文件存储方式:在创建用户时,会通过不可逆算法将密码以哈希值存储在(%SystemRoot%\system32\config\SAM)中。
SAM文件校验方式:校验时,将用户输入的密码以同样的算法算出哈希值,并与SAM文件中对应SID的哈希值进行比较。
用户管理
内置用户
一般来说,第一次进入Windows系统时会有一些内置用户,可以通过命令:
1 | net user |
进行查看(这里为了看的方便,先执行了color f3指令改了下配色):
也可以在图形化界面中,右键我的电脑 -> 管理 -> 系统工具 -> 本地用户和组 -> 用户,找到内置用户以及自己创建的用户。
可以巧妙的发现,内置用户都是有描述信息的,这也是一种判断内置用户和创建用户的方式。
用户权限
不同用户具有不同的权限,以Administrator用户来说,它具有至高无上的权限,做任何事,执行任何指令都不受到限制;但是普通用户就不一样,具有较低的权限,执行指令也会受到限制;而Guest用户,权限就更低了。下面来以User_0x1(创建的一个普通用户)身份执行一些命令,查看结果。
执行一些命令可以发现,作为一个普通用户,不能修改自己的密码,不能访问Administrator所属文件夹,甚至连关机都不可以(Windows2003作为服务器系统,对于关机的操作很是谨慎,仅Administrator用户可以进行关机),可以理解,不同用户的权限是不一样的。
用户管理命令
作为Administrator用户,经常需要一些操作来完成对用户的管理,Windows提供了一些Dos指令,使得这些操作可以更方便的完成:
1 | net user #查看所有用户 |
组管理
单个用户的权限赋予(下一篇会讲到)会很好操作,但是如果管理一批用户,赋予权限就是一件麻烦的事情了,所以有了组的概念。组的作用就是简化权限的赋予,在没有组的情况下,需要对用户一个个进行权限赋予;有了组以后,仅需要给组赋予相应的权限,然后将一批需要被赋予相同权限的用户放入这个组里。
内置组
Windows提供了内置组,可通过命令:
1 | net localgroup |
进行查看
也可以在图形化界面中,右键我的电脑 -> 管理 -> 系统工具 -> 本地用户和组 -> 组,找到系统提供的内置组:
对于不同类型的组,也有相应的描述。其中Administrator所在的组为Administrators,也就是说分在这个组里的用户,拥有至高无上的权限。
修改用户权限
有了组的概念,我们尝试修改普通用户User_0x1的权限。
先看图,再分析一下步骤:
首先切换到Administrator用户,使用命令:
1 | net localgroup Administrators |
查看Administrators组的成员,发现只有Administrator一个用户。
接着使用命令:
1 | net localgroup Administrators User_0x1 /add |
来添加用户User_0x1进入Administrators组中,再次查看Administratos组成员时,已成功添加。
这是我们切换到User_0x1用户登录:
发现User_0x1用户不受限制 ,执行任意命令了。当然,为了安全起见,最后还是要切换回Administrator用户,通过命令:
1 | net localgroup Administrators User_0x1 /del |
将User_0x1移出Administrators组。
组管理命令
下面是一些常用的组管理命令:
1 | net localgroup #查看组 |
服务器远程管理
远程管理可以让用户远程登录服务器进行操作,提高了便捷度和办公效率,远程管理分为图形化和命令行两种。
图形界面
依旧来看以下几个步骤,开启图形化远程管理:
右键我的电脑 -> 属性 -> 远程 -> 选择远程用户 可以看到,我这里已经添加了2个用户User_0x1和User_0x2,当然Administrator默认拥有过访问权。当然,最重要的一步,是在远程界面里选择启用这台计算机上的远程桌面。
在命令行中,执行命令:
查看已开放的端口,注意一个端口,3389端口,该端口是Windows2003系统下远程桌面的服务端口,这里可以看到,该端口是开启的,可以进行远程访问。dos1
netstat -an
打开一台xp虚拟机,这里要先保证能够ping通服务器的Windows2003系统,Windows+R进入运行,输入mstsc,然后进入 。 输入目标服务器的IP地址后(ping通时也会用到),点击连接,进入登录界面,但是注意,此时仍然处于xp虚拟机中,但是已经进入了Windows2003的登入界面。
命令行界面
除了可以通过图形界面远程访问服务器,也可以通过命令行远程访问,但这用的就不是同一个端口了。
打开Windows XP,进入命令行,通过命令:
dos1
telnet 服务器IP
小结
由于图片过多,利用漏洞破解Win7密码的内容将会单独开一篇博客讨论。
参考链接
- https://www.bilibili.com/video/BV1i7411G7vm?p=16 (千峰开源网络安全教程p16~p18)
- https://www.cnblogs.com/mq0036/p/3518542.html (博客园-Windows中的SID详解)
- https://blog.csdn.net/shennongzhaizhu/article/details/52435519 (CSDN-Windows中的SAM文件)
- https://blog.csdn.net/weixin_43252204/article/details/105338527 (Beglage_buglige的学习笔记)
- https://social.microsoft.com/Forums/zh-CN/9a1e271d-03f5-4263-acda-80a64804d574/21313199752877924613-support388945a0-349872555226435-358313617625945?forum=windowsserversystemzhchs (Support_388945a0用户对应的组)