作者 | 杨秀璋,责编 | 夕颜
出品 | CSDN博客
本文将介绍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。
为用户“shimisi”设置一个复杂的开机密码。
接着注销电脑,等待输入密码开机,因为密码过于复杂,我们无法开机。那怎么解决呢?
漏洞验证
(1) 重启计算机,当出现“正在启动 Windows”界面时,立刻强制关机电脑。这是模拟现实生活中突然断电或不正常关机的场景,从而弹出“修复模式”。建议大家尽量别在真实的电脑中尝试。
(2) 接着再开机时会进入“windows错误恢复”界面,如下图所示。
(3) 选择“启动启动修复(推荐)”选项,它会启动修复,并弹出如下图所示的对话框。
(4) 接着提示“您想使用‘系统还原’还原计算机吗?”点击“取消”,它会继续尝试修复。
(5) 此时他无法自动修复,弹出新的对话框,如下图所示,通常我们会点击“发送”或“不发送”。
(6) 需要注意的是,这里点击“查看问题详细信息”,漏洞就藏在这里。我们不需要理解它的具体含义,它是微软内部的问题报告。
(7) 我们往下拉,会看到两个超链接,一条是联机远程访问微软的,另一个是脱机访问本地的TXT文件,这里点击第二条。
(8) 我们打开这个文件如下图所示,它的内容是什么我们并不关系,而关系的是它有一个打开文件的按钮。通过该按钮,我们是不是能做点什么呢?即使在没有进入系统的状态。
(9) 点击“文件”->“打开”,可以看到“计算机”。
(10) 双击打开“计算机”,此时虽然没有进入系统,但能够看到磁盘分区,这里的“D”才是真实的C盘。
打开如下图所示:
(11) 此时它会有一个本地的记事本,可以通过它打开TXT文件。由于还未进入系统,目前没有用户的概念,所以在这个状态下是以最高权限去进行运行的。接着打开“Windows”->“System32”文件夹,如下图所示:
(12) 找到“sethc”文件。
(13) 将“sethc”名称修改为“123”,下次再按5次shift键,它就不能再找到这个可执行文件了。
(14) 然后找到“cmd”文件,注意该CMD文件也在该目录下,为什么要找到它呢?我们想做一个偷换,让连续按5次shift键调用CMD,再输入命令修改开机密码。
(15) 点击该程序,右键复制,然后粘贴。防止别对cmd造成修改。
(16) 接着重命名,修改为“sethc”。系统不会验证你内容是什么,只是根据程序名调用可执行程序。
(17) 关闭记事本,然后完成启动计算机。
(18) 此时我们再按5次Shift键,弹出的对话框是CMD,这就非常可怕了。
(19) 这里可以设置新密码,也可以设置无密码,即net user shimisi “” 。
此时就能成功进入系统了,是不是很神奇,通过这一连串漏洞,我们成功进入了系统。最好再次启动的时候删除被修改成cmd的“sethc”,同时将“123”名称改回成“sethc”。
但是这种方法存在一个缺点,如果你自己电脑忘记密码还可以,但如果你修改了别人电脑的密码,别人下次登录就知道了。后面分享一种不修改密码的情况下,以最高管理员权限进入系统。
同时,我们可以调用“net haha feigezuishuai /add”增加新的用户,通过新用户登录系统。
但haha只是一个普通用户,接着需要将haha用户提权,将它添加到管理员组中。调用命令“net localgroup administrators haha /add”。
增加成管理员之后,重启电脑此时会有新的用户界面。
成功以系统管理员的身份进入了操作系统。
完成之后我们还需要删除用户,消灭踪迹。调用命令“net user haha /del”。
该漏洞可能已经被Win7和Win10修复,但仍有部分未更新的系统存在,所以系统补丁、版本更新是非常重要的步骤。而黑客也会对比不同版本的补丁进行攻击。
总结
简单总结下该篇文章的方法:
开启win7虚拟机,开机并设置一个复杂密码
关机再开机,再出现Windows启动界面时强制关机
再开机出现“启动修复(推荐)”及选择该项。如果没有出现,多长时间几次强制关机或者换方法。
出现系统还原提示,点击取消,等待几分钟后,会出现问题原因,点击查看详细信息
打开最后一个链接即一个记事本
记事本中点击打开,并选择显示所有文件
找到sethc并改名为sethc-bak,再找到cmd,复制一份改名为sethc
全部关闭重启
系统启动完毕连续按5次shift键,将弹出cmd工具,使用命令“net user 用户名 新密码”,将当前用户密码修改即可,或者另建一个新用户,并提升为管理员,注销后可再删除新建的用户,这样的好处是不修改当前的用户密码即可登录系统
成功登录系统
更多精彩推荐
☞急缺芯片,高通是华为的唯一选择吗?
☞征战云时代,为什么安全是关键命题?
☞人均月薪 7.5 万,腾讯 Q2 成绩单来了,网友酸了?
☞为什么气象站和 AI 都测不准天气?
☞2019年中国IaaS公有云市场排名及份额出炉
☞马小峰:金融科技界的区块链博士
点分享点点赞点在看