跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

使用静默清理绕过UAC的学习笔记


KaiWn

推荐的帖子

0x00 前言

最近,我在詹姆斯forshaw's的博客中学习了一个在Win10下绕过UAC的技巧。这种方法是通过脚本实现的,微软尚未修复这种绕过方法(预计在Win10 RS3中修复)。经过我的学习和测试,这个方法也适用于Win8,文中介绍的旁路思路也值得借鉴,我就写成文字和大家分享。

文章地址如下:

https://tyranidslair . blogspot . co . uk/2017/05/exploining-environment-variables-in . html

0x01 简介

本文将介绍以下内容:

绕过思路

使用方法

防御探测

0x02 绕过思路

在以前的文章中,我也分享了一些绕过UAC的经验。请参考以下文章:

https://3g student . github . io/Study-Notes-of-use-SD CLT . exe-to-bypass-UAC

https://3g student . github . io/Study-Notes-Weekly-no . 1(Monitor-WMI _ ExportsToC _ Use-disk clean up-bypass-UAC)

人们认为,个人寻找绕过UAC的方法可以分为以下两步:

1.寻找访问控制不严的程序。

它通常具有以下特征:

以普通用户权限启动程序。

默认情况下,程序以高特权启动,通常标记为最高。

2.这个程序的启动过程可以被劫持吗?

启动路径会被劫持吗?

启动进程加载的问题(比如dll)会被劫持吗?

0x03 利用方法

詹姆斯Forshaw对应的方法也是在权限控制不严的程序——调度任务中优先查找SilentCleanup。

注:

马特纳尔逊还介绍了一种方法,以绕过UAC使用SilentCleanup之前,这是固定的。文章地址如下:

https://enigma0x 3 . net/2016/07/22/绕过-UAC-on-windows-10-using-disk-clean up/

计划任务中的SilentCleanup:

可以启动普通用户权限。

启动后自动提升到高权限。

更多详情可以通过Powershell获取。代码如下:

$ task=Get-scheduled task silent clean up

$task。校长

注:

Win7默认powershell版本2.0,不支持Get-ScheduledTask操作。

如下图

2-1.png

经过身份验证的用户意味着可以启动普通用户权限。

Run是最高的,这意味着从高特权开始。

检查启动参数。powershell代码如下:

$task。动作[0]

如下图

2-2.png

启动参数是% windir % \ system32 \ cleanmgr.exe。

这里是一个利用——环境变量%windir%的地方

注:

您可以通过set windir查看环境变量%windir%。

默认情况下,%windir%指向c:\Windows。

如果当前的系统环境变量被修改为指向其他路径,那么这里就实现了劫持。

例如:

将%windir%设置为c:\test

将payload.exe另存为c:\test\system32\下的cleanmgr.exe。

然后,当计划任务SilentCleanup启动时,payload.exe将以高权限启动,从而实现UAC旁路。

更直接的利用方法:

将%windir%设置为cmd /K,当计划任务SilentCleanup启动时,将弹出cmd.exe。

注:

cmd之后需要添加参数,否则由于参数问题无法正常启动。

/k表示执行代码后弹出的cmd.exe不会退出。

为了增加隐蔽性(很多程序在启动时需要调用环境变量%windir%),在执行cmd时删除新添加的注册表项windir,可以使用以下代码:

reg add hkcu \ Environment/v windir/d ' cmd/K reg delete hkcu \ Environment/v windir/f REM '

schtasks/Run/TN \ Microsoft \ Windows \ disk clean up \ silent clean up/I

注:

以上代码来自https://gist.github.com/tyranid/729b 334 b F9 DC 0 f 38184 db 47 AE 3 f 52d 0 # file-disk _ clean up _ UAC _ bypass-bat。

将环境变量设置为cmd/k reg delete hkcu \ environment/vwindir/frem,那么在调度任务SilentCleanup启动时会弹出cmd.exe,然后执行删除注册表键值的命令:reg delete hkcu \ environment/vwindir/f

完整的操作如下

3-1.gif

注:

如果参数更改为/a,那么cmd.exe将在执行以下命令后立即退出。

0x04 防御检测

1、防御

修改计划任务SilentCleanup的启动参数,删除环境变量,并替换为c:\Windows以锁定路径。

管理员权限:

$ action=New-scheduled taskaction-Execute $ env:windir \ System32 \ clean mgr . exe-Argument '/auto clean/d $ env:system drive '

set-scheduled task silent clean up-task path \ Microsoft \ Windows \ disk clean up-Action $ Action

注:

以上代码来自https://gist . github . com/tyranid/9ef 39228 ba 0 AC 6a a 4039d 2218006546 #文件-fix _ diskclean _ UAC _ bypass-PS1

如下图

4-1.png

scheduled SilentCleanup的启动参数被修改为C:\ Windows \ system32 \ cleanmgr.exe,并且不能通过修改环境变量%windir%来劫持它。

2、检测

通过powershell查找计划任务中是否还有可用的服务,代码如下:

$tasks=Get-ScheduledTask |

where-Object { $ _ . principal . run level-ne ' Limited '-以及

$ _ . principal . logon type-ne ' service account '-和

$_.状态-ne '禁用'-和

$_.操作[0]. CIM class . CIM class name-eq ' MSFT _任务执行操作' }

注:

以上代码来自https://gist . github . com/tyranid/92 E1 c 7074 a 9 a 7 b 0 D5 d 021 e 9218 e 34 Fe 7 # file-get _ scheduled _ tasks-PS1

如下所示,有四种可用的服务。经过测试,其他三个都不能实际使用,只有SilentCleanup有效。

4-2.png

0x05 补充

该方法也适用于Win8环境。完整的操作如下

5-1.gif

Win7系统不包含计划任务SilentCleanup,因此无法使用。

0x06 小结

本文介绍了通过计划任务静默清理绕过UAC的方法。这种方法只需要通过脚本将键值写入当前用户注册表,简单有效。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...