1、预备知识:登录安全介绍
当用户通过各类互联网进行网络支付等操作时,首先要执行登录指定的系统,其目的是对用户身份的合法性进行验证。在登录过程中,系统要求用户输入账号名称、密码及用户的身份证号码等信息,之后再由客户端软件与服务器端进行通信,通过信息交换完成用户的身份认证过程。在这一过程中,一旦用户的登录过程被劫持或监视,通信数据被截获或者破解,将会产生严重的安全隐患。
(1)认证过程中存在的安全隐患
根据对各类安全事件的综合分析,目前较为严重的安全隐患主要有:由加密机制的不健全引起的安全问题和由服务器证书验证产生的安全问题。
(2)SID
SID是windows操作系统用于标识用户、组和计算机账户的唯一号码。在第一次创建用户、组和计算机账号时,将给网络上的每一个账户发呗一个唯一的SID。Windows server中的内部进程将引用账户的SID而不是账户的用户和组名。
用户通过验证后,登陆进程会给用户一个访问令牌,该令牌相当于用户访问系统资源票证,当用户试图访问系统资源时,将访问令牌提供给Windows Server,然后Windows Server检查用户试图访问对象上的访问控制列表。如果用户被允许访问该对象,windows server将会分配给用户适当的访问权限。
2、实验清单
Windows Server 2003
3、实验步骤
(1)查看管理员用户的SID
可以使用whoami等工具查看与登录会话相关的DIS,具体步骤如下:
步骤一:选择“开始”——“运行”,在对话框中输入“cmd”,打开命令行窗口;
步骤二:输入“whoami /?”查看命令的所有功能;
步骤三:输入“whoami /user”,可查看用户的SID。
可以看到SID带有前缀S,它的各个部分之间用“-”分隔:第一个数字是修订版本号;第二个数字是标识符颁发机构代码;然后是四个子颁发机构代码和一个相对标识符(Relative Iden Tifier,RID)。SID中的一部分是各系统或域唯一具有的,而另一部分(RID)是跨所有系统和域共享的。
(2)查看新建用户的SID
步骤一:在命令行中输入“net user Tuser/add”,添加一个新用户账户(Tuser);
步骤二:用户创建成功后,注销管理员账户,以刚刚创建的Tuser用户的身份重新登录Windows系统;
步骤三:在命令行中输入“whoami /user”,可以查看用户名和SID都改变了。
(3)创建一个具有管理员权限的隐藏账户
步骤一:注销Tuser用户,用Administrator的身份重新登录系统;
步骤二:在“运行”中输入“regedit”命令,打开“注册表编辑器”,将对SAM的权限设置为完全控制;
重新输入“regedit”命令,然乎在HKLM\SAM\SAM\domains\account\目录下找到用户Administrator和Tuser。
SAM数据库位于注册表HKLM\SAM\SAM下,受到ACL(Access Control List,访问控制列表)保护,它在硬盘上保存在“%systemroot%system32%\config\”目录下的sam文件中。Windows活动目录域中的SAM内容存放在Domain中,其下有两个分支,即Account和Builtin,其中\Domains\Account是用户账户内容。
1)\Domains\Account\User下是各账户的信息,其下的子键是各个账户的SID相对标识符,如000001F4是管理员的SID;
2)\Domains\Account\Names\下是用户账户名,每个账户名只有一个默认的子项,子项中的类型不是一般的注册表数据类型,而是指向标志这个账户的SID相对标识符。例如,子项中的Administrator,类型为0x1f4,于是\Dinaubs\Account\User中的000001F4就对应账户名Administrator的内容。
(4)复制F项
在 \Dinaubs\Account\User目录下存放着各种账号信息,其中每个账号下面有两个子项:F项和V项。
V项中保存的是账户的基本资料,包括用户名、用户全称、所属组、描述、密码hash、注释、是否可以更改密码、账户启用、密码设置时间等;
F项保存的是一些登陆记录,包括上次登录时间、错误登录次数等,还有一个重要的——这个账号的SID相对标识符。
因此,要创建一个具有管理员权限的隐藏用户,就必须复制Administrator用户的F项内容到某一账户。具体做法:选取User文件夹下的000003F2子文件夹的F项,将Administrator的F项复制给Tuser即可。
注销Administrator用户,以用户Tuser的身份重新登录操作系统。在命令行输入“whoami /user”查看用户Tuser的SID,会发现其具有了管理员权限。
3、任务与思考
一个完整的Windows登录过程要经过以下4个步骤:
(1)用户按Ctrl+Alt+Del组合键,引起的硬件中断被系统捕获后,使操作系统激活WinLogon进程(这是一个登录进程),WinLogon进程通过调用标识于鉴定dll,将登录窗口(账户名和口令登录提示符)展示在用户面前,要求用户输入一个用户名和密码;
(2)WinLogon将用户名和密码传递给本地安全认证(Local Security Authority,LSA);
(3)LSA查询安全账号管理器(SAM)数据库,以确定用户名和密码是否属于授权的系统用户。如果用户名和密码合法,SAM把该用户的SID及该用户所属组的SID返回给LSA。LSA使用这些信息创建一个访问令牌,每当用户请求访问一个受保护资源时,LSA就会将访问令牌显示出来以代替用户的“标记”;
(4)WinLogon进程传送访问令牌到Win32模块,同时发出一个请求,以便为用户建立登陆进程。登录进程建立用户环境,包括启动Desktop Explorer和背景等。