Windows锁屏shift的CMD替换
本文将介绍Windows系统漏洞,通过5次Shift漏洞替换CMD,最终实现修改计算机密码并启动计算机。
原理知识
当我们使用计算机时,连续按下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
假设现在需要设置密码,用管理员身份运行CMD。
为用户“Administrator”设置一个复杂的开机密码。
接着注销电脑,等待输入密码开机,因为密码过于复杂,我们无法开机。那怎么解决呢?
漏洞验证
(1) 重启计算机,当出现“正在启动 Windows”界面时,立刻强制关机电脑。这是模拟现实生活中突然断电或不正常关机的场景,从而弹出“修复模式”。建议大家尽量别在真实的电脑中尝试。
(2) 接着再开机时会进入“windows错误恢复”界面,如下图所示。
(3) 选择“启动启动修复(推荐)”选项,它会启动修复,并弹出如下图所示的对话框。
(4) 接着提示“您想使用‘系统还原’还原计算机吗?”点击“取消”,它会继续尝试修复。
(5) 此时他无法自动修复,弹出新的对话框,如下图所示,通常我们会点击“发送”或“不发送”。
(6) 需要注意的是,这里点击“查看问题详细信息”,漏洞就藏在这里。我们不需要理解它的具体含义,它是微软内部的问题报告。我们往下拉,会看到两个超链接,一条是联机远程访问微软的,另一个是脱机访问本地的TXT文件,这里点击第二条。
(8) 我们打开这个文件如下图所示,它的内容是什么我们并不关系,而关系的是它有一个打开文件的按钮。通过该按钮,我们是不是能做点什么呢?即使在没有进入系统的状态。
(9) 点击“文件”->“打开”,可以看到“计算机”, 在“打开”的文件浏览器中,定位到目录“/Windows/System32”,然后将筛选的文件类型设置为【所有文件】,找到【sethc】文件,其图标与刚刚5次shift触发的程序相同,可知连按5次Shift键会打开这个文件。
所以,我们要做的工作就是:将这个名为【sethc】的文件重命名为其他,然后找到cmd.exe,将其重命名为【sethc】即可。
(10)关闭记事本,然后完成启动计算机,连按5次shift发现粘滞键变为CMD弹窗。
(11) 这里可以设置新密码,net user 用户名 新密码
也可以设置无密码,net user 用户名“”
此时就能成功进入系统了,是不是很神奇,通过这一连串漏洞,我们成功进入了系统。最好再次启动的时候删除被修改成cmd的“sethc”,同时将sethc原文件名称改回成“sethc”。
但是这种方法存在一个缺点,如果你自己电脑忘记密码还可以,但如果你修改了别人电脑的密码,别人下次登录就知道了。还可以另建一个新用户,并提升为管理员,注销后可再删除新建的用户,这样的好处是不修改当前的用户密码即可登录系统。
注:该漏洞可能已经被Win7和Win10修复,但仍有部分未更新的系统存在,所以系统补丁、版本更新是非常重要的步骤。而黑客也会对比不同版本的补丁进行攻击。
总结
简单总结下该篇文章的方法:
- 开启win7虚拟机,开机并设置一个复杂密码
- 关机再开机,再出现Windows启动界面时强制关机
- 再开机出现“启动修复(推荐)”及选择该项。如果没有出现,多长时间几次强制关机或者换方法。
- 出现系统还原提示,点击取消,等待几分钟后,会出现问题原因,点击查看详细信息
- 打开最后一个链接即一个记事本
- 记事本中点击打开,并选择显示所有文件
- 找到sethc并改名为任意文件名,再找到cmd,复制一份改名为sethc
- 全部关闭重启
- 系统启动完毕连续按5次shift键,将弹出cmd工具,使用命令“net user 用户名 新密码”,将当前用户密码修改即可,或者另建一个新用户,并提升为管理员,注销后可再删除新建的用户,这样的好处是不修改当前的用户密码即可登录系统
- 成功登录系统