后渗透利用sethc留下后门

         ~~~~~~~~ 因为想要面对一个新的开始,一个人必须有梦想、有希望、有对未来的憧憬。如果没有这些,就不叫新的开始,而叫逃亡。 ​​​​
                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ————玛丽亚·杜埃尼亚斯

说在前面

大家在平常使用电脑办公的时候,手不小心按到了键盘上的某个键,电脑上就会弹出一个框框,叫作是否启用粘滞键,这很影响我们的操作。然而这个东西却存在着巨大的漏洞。

什么是sethc?怎么利用?

sethc就是windows中的粘滞键。他的启用方式是按5下shift键,windows就会去找c:\windows\system32\下面的sethc.exe程序,并执行它。那么这个时候,细心的我们就应该发现,cmd也是在这个目录下。系统是通过检索sethc这个名字来启用的,那我们是否可以将cmd改成sethc,从而使本该调用sethc的时候,“错误”的调用了cmd。这样,就形成了一个漏洞。而且这个快捷方式只要不被禁用,甚至在电脑没有进入系统桌面之前都可以被调用,因为这个东西比较隐蔽,所以很多人都忽视了它,正因为如此,它的危害就显而易见了。
“可以留做后门,平常木马后门容易被发现,或者提权困难的情况下,使用sethc替换后门是不错的选择”

关于sethc的权限

我们打开sethc.exe文件的属性,发现在默认情况下是属于trustedtnstaller所有,不管是普通用户还是administrator都没有权限对它进行编辑的。trustedinstaller是一个安全机制,权限比administrator管理权高,但比system低。我们可以通过选择安全,高级中把从父项继承的√取消掉。如图我的已经修改了。
在这里插入图片描述

留下sethc后门

旧方法(替换程序)

接下来演示一下怎么利用sethc留下系统后门,首先连接并进入到对方主机c:\windows\system32\目录下

cd c:\windows\system32     

在这里插入图片描述
将原本的sethc改名为sethc1

move sethc.exe sethc1.exe 

在这里插入图片描述
接下来将cmd复制并重命名为sethc

copy cmd.exe sethc.exe 

在这里插入图片描述
到靶机连按5下shift键测试,可以看出本该弹出粘滞框却被替换成了cmd,并且是管理员的权限。
在这里插入图片描述
当我们不知道对方账号密码时依然可以通过这个漏洞进入对方系统。如图所示,在未进入系统之前我们就通过sethc进入了cmd命令,并且是至高无上的系统权限,美滋滋。
在这里插入图片描述

新方法(映像劫持)

新方法的思路就是通过修改注册表的映像劫持和打开远程桌面来实现的。
映像劫持顾名思义,就是当我们打开程序a实际上是打开了程序b。在此例找中,我们本来要打开的是sethc结果却打开了cmd。
设置映像劫持需要在注册表的HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options 位置添加被劫持的程序然后简单设置一下,我们通过命令行执行以下程序:

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。
相应的,如果要删除映像劫持就将add改为delete

开启远程桌面

设置完镜像劫持后就已经达成了效果,但是为了方便利用,我们可以通过修改注册表开启目标机的远程桌面。
第一个是设置远程桌面连接的用户鉴定选项的状态。分为“0”和“1”两种状态。
0代表进行远程桌面前不需要用户身份验证,这时输入用户名不输入密码点连接会直接到远程桌面锁屏的那个界面,所以设置为0我们可以直接到目标机的锁屏,然后直接调用cmd。

1代表需要进行用户身份验证,当我们输入用户名不输入密码直接点击连接会提示身份验证错误。
这里我们将之设置为“0”,运行如下命令:

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0

在这里插入图片描述
第二个是设置远程桌面连接的安全层,有三个参数:“0”“1”“2”。
0就是连接前使用rdp协议进行身份验证,rdp即远程桌面连接,可以简单的理解为关闭验证
1是指在连接前两端协商来进行身份验证
2是使用tls协议来进行
这里我们将之设置为0,运行如下命令:

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0

在这里插入图片描述
到此我们已经可以通过远程桌面连接,在未登陆系统之前,利用sethc漏洞进入到目标机系统,并且是最高权限。
在这里插入图片描述
在进行渗透测试的时候,我们所拿下的一台主机也许被别人入侵过并且留下了后门,我们可以先shift试一试,说不准就能弹出cmd

防御方法

  1. 直接在system32中将sethc删除
  2. 将sethc设为everyone拒绝访问
  3. 在控制面板-辅助功能选项-粘滞键选项,将使用快捷键取消
发布了107 篇原创文章 · 获赞 36 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/whoim_i/article/details/103739738