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 用户名 新密码”,将当前用户密码修改即可,或者另建一个新用户,并提升为管理员,注销后可再删除新建的用户,这样的好处是不修改当前的用户密码即可登录系统
  • 成功登录系统
posted @ 2022-08-22 20:13  Knight0v0  阅读(1134)  评论(0编辑  收藏  举报