一.原理知识
当我们使用计算机时,连续按下5次shift键会弹出一个程序
程序名称为“esthc.exe”,其路径为“c:\windows\system32\sethc.exe”。
该系统漏洞由于部分Win7及Win10在未进入系统时,可以通过连续按5次shift键弹出 sethc.exe应用程序,然后再深入利用调出CMD窗口,通过指令对用户密码进行修改或删除,从而登录不知道密码的计算机。
首先,在未登录系统时,连续按5次shift键,弹出程序 “c:\windows\system32\sethc.exe”
接着强制关机想办法进入“启动启动修复(推荐)”界面,该界面存在 一个漏洞,它能打开一个本地的错误TXT文件
通过TXT文件的打开选项,在未进入系统之前就打开C盘存放 “sethc.exe”的位置,接着将cmd.exe程序复制一个副本,并命名为 “sethc.exe”。
重启计算机再次按下5次Shift键时,会弹出CMD界面,再输入命令修改 登录密码。 连续按5次shift键它会去C盘目录下调用sethc.exe程序
注意:Win7和Win10系统已经修补了该漏洞,所以系统版本更新和打补丁是 我们防御非常重要的手段之一。
二.账户密码操作
SAM文件存储着Windows的账号和密码,使用Hash算法加密,不可逆。处理方法爆破,但需要花费时间的代价。
这里补充CMD中修改密码的常见命令, 通过该方法修改密码。
• CMD工具路径:c:\windows\system32\cmd
• 用户账户密码存储位置:c:\windows\system32\config\SAM
• 修改账户密码:net user 用户名 新密码
• 创建一个新用户:net user 用户名 新密码 /add
• 删除用户:net user 用户名 /del
• 提示管理员:net localgroup administrators 用户名 /add
三.漏洞复现
(1) 重启计算机,当出现“正在启动 Windows”界面时,立刻强制关机电脑。
这是模拟现实生活中突然断电或不正常关机的场景,从而弹出“修复模式”。建议大家别在真实的电脑中尝试。
(2) 接着再开机时会进入“windows错误恢复”界面
(3) 选择“启动启动修复(推荐)”选项,它会启动修复
(4) 接着提示“您想使用‘系统还原’还原计算机吗?”点击“取消”,它会继续 尝试修复。
(5) 此时他无法自动修复,弹出新的对话框
(6) 需要注意的是,这里点击“查看问题详细信息”,漏洞就藏在这里。我们不需要理解它的具体含义,它是微软内部的问题报告。
(7) 我们往下拉会看到两个超链接,一条是联机远程访问微软的,另一个 是脱机访问本地的TXT文件,这里点击第二条。
(8) 我们打开这个文件,它的内容是什么我们并不关心,而它有一个打开文件的按钮。
(9) 点击“文件”->“打开”,可以看到“计算机”。
(10) 双击打开“计算机”,此时虽然没有进入系统,但能够看到磁盘分区
(11) 此时它会有一个本地的记事本,可以通过它打开TXT文件。由于还未进入系 统,目前没有用户的概念,所以在这个状态下是以最高权限去进行运行的。接着 打开“Windows”->“System32”文件夹
(12) 找到“sethc”文件。
(13) 将“sethc”名称修改为“123”,下次再按5次shift键,它就不能再找到这个 可执行文件了。
(14) 然后找到“cmd”文件,CMD文件也在该目录下,我们想做一个偷换,让连续按5次shift键调用CMD,再输入命令修改开机密码。
(15) 复制cmd程序,防止别对cmd造成修改。
(16) 接着重命名,修改为“sethc”。系统不会验证你内容是什么,只是根据程序 名调用可执行程序。
(17) 关闭记事本,然后完成启动计算机。
(18) 此时我们再按5次Shift键,弹出的对话框就是cmd
(19) 这里可以设置新密码,也可以设置无密码,即net user shimisi “” 。 此时就能成功进入系统了。
但是这种方法存在一个缺点,如果你自己电脑忘记密码还可以,但如果你修改了 别人电脑的密码,别人下次登录就知道了。
我们可以调用“net paidx0 hahaha /add”增加新的用户,通过新用户登录系统。
但只是一个普通用户,接着需要将paidx0用户提权到管理员组中。 调用命令“net localgroup administrators paidx0 /add”。
增加成管理员之后,重启电脑。 paidx0以系统管理员的身份进入了系统。
完成之后我们还需要删除用户,消灭踪迹。调用命令“net user paidx0 /del”。