shift后门漏洞复现

看了Y4佬的博客知道了这个漏洞,挺有意思的,所以学习复现一下

shift简介

windows系统连按5下shift键会弹出一个粘滞键窗口

image-20210412195621193

即启动了System32目录下的sethc.exe文件

image-20210412200100644

它本来的作用是给同时按下两个或多个键有困难的人设计的,启用之后可以一次按一个键达到组合键的效果。这个功能普通人基本用不到,我也是在学这个漏洞的时候才知道有这个东西的。

在登入状态,连按5次shift键会以当前用户权限执行sethc.exe;在登陆界面还进入系统时,没有用户的概念,所以会以最高权限(管理员权限)system执行。该功能存在安全隐患

原理

我看师傅们称之为偷天换日:

连按5次shift键,windows系统会启动System32目录下的sethc.exe文件,可以用cmd.exe或者其他木马后门文件替换粘滞键exe文件,之后再连按5次shift键启动的就是我们替换的文件了。

利用

破解开机密码

如果有条件的话,用U盘破解密码简单高效,没有启动盘就可以用这个方法试试了。

前置知识

cmd程序路径:

C:\Windows\System32\cmd.exe

sethc程序路径:

C:\Windows\System32

修改账户密码:

net user username password

添加账户密码:

net user username password /add

把账户添加到administrators(管理员)用户组里:

net localgroup administrators username /add

文件重命名:

ren <旧文件名> <新文件名>

切换磁盘:

<盘符>冒号

同磁盘下切换工作目录:

cd \路径

漏洞验证

基本流程

1、未登录系统时,连按5次shift键,若弹出粘滞键窗口则存在漏洞

2、强制关机让电脑进入”自动修复”界面

3、依次选择”高级选项”、”疑难解答”、”高级选项”、”命令提示符”

4、在命令行窗口先将sethc.exe备份一个副本(取个别名),然后用cmd程序替换掉sethc程序(或者用notepad命令调出记事本,然后改文件名也行)

5、重启后在登录界面连按5次shift键,弹出cmd窗口,再输入命令修改登陆密码或者添加账户。

详细截图

虚拟机开机,当出现Windows图标时,就强制关机(右键->电源->关闭客户机),重复2-3次,模拟生活中出现的不正常关机,然后进入自动修复界面

基本硬关机2次之后再开机就进入了自动修复界面

image-20210412220440087

image-20210412220450516

高级选项

image-20210412220542972

疑难解答

image-20210412213829683

高级选项

image-20210412213852952

命令提示符

image-20210412214022673

直接出现了cmd窗口,而且权限为system

image-20210412220638168

但是这里在X盘,不在C盘,这里我不明白这个X盘是哪来的,以后有机会再学习下。

然后输入以下命令即可

1
2
3
4
5
c:
cd windows\system32
//下面就是最巧妙的"偷天换日"了
ren sethc.exe abc.exe //abc文件名随意取,别和同目录文件重名应该就行了
ren cmd.exe sethc.exe

image-20210413130145867

或者用notepad命令调出记事本,文件选择打开

image-20210413131805706

选择所有文件

image-20210413131842015

再找到sethc.exe和cmd.exe,做一下替换

image-20210413132141004

好了之后关掉窗口选择继续,或者直接重启都行image-20210413131524377

重启后在登录界面连按5次shift键,成功弹出cmd命令行,这个命令行存在时间限制,快点输入命令添加用户

image-20210413132736351

这里可扩展性很强,你可以修改原账户密码为空,也可以创建新账户,创建新账户还涉及到创建隐藏账户,这个涉及到权限维持了,我还没学习过,先不弄了。

image-20210413133018363

重启后出现了前面创建的用户,成功登录系统

image-20210413133914324

这里把原账户密码设置为空,相当于无密码可以直接登录

image-20210413135537339

image-20210413134732365

创建新用户一般是在别人的电脑上用的,因为如果你改了别人账户密码,别人下次登录就被发现有问题了,创建新账号进入系统,最后不要忘了把新建账户删了,防止被发现。

image-20210413135212460

留后门

如果渗透时拿到较高权限的shell可以直接在shell里执行命令(需要管理员权限)

然后制作一些木马程序替换掉sethc.exe就行了

1
copy C:\Windows\System32\virus.exe C:\Windows\System32\sethc.exe

或者直接手动替换(需要管理员权限)

权限不够的话需要提权

修复方案

方案一:禁用shift粘滞键功能

方案二:删除sethc.exe程序所有用户运行权限

方案三:添加一个”Everyone”用户组,权限拒绝所有

以上方案参考网上资料的,由于网上很多都是windows老版本,我复现用的是win10,权限控制这一块好像管的严我弄不来,没有实操方案二和方案三,但可以学习其权限控制的思想

参考资料

https://y4tacker.blog.csdn.net/article/details/106946893

https://ysneko.com/archives/250/

https://www.cnblogs.com/BOHB-yunying/p/11695140.html

https://blog.csdn.net/qq_46620129/article/details/113204312

https://blog.csdn.net/zzgslh/article/details/105651132

https://blog.csdn.net/weixin_43178927/article/details/88841953

[https://mochazz.github.io/2017/07/29/shift/#%E5%81%B7%E5%A4%A9%E6%8D%A2%E6%97%A5

https://blog.csdn.net/SuperChanon/article/details/8255566

https://blog.csdn.net/auuuuuuuu/article/details/88902791

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2020-2021 Blog of Tianze

请我喝杯咖啡吧~

支付宝
微信