MattGraeber(@mattifestation)和我最近正在科学地研究Windows10,我们发现了一个非常有趣的绕过用户账户控制的方法,UAC)。详情请参考此处。目前已经有几种公开的UAC旁路技术,大部分都需要一组管理权限文档,并应用IFileOperationCOMtarget或WUSA收购来屏蔽dll。可以从这里(creator@hfiref0x)参考一些公布的绕过方法做深入分析。这次用的技术和过去的方式不一样。你提出了一个合理的替代方案,不依赖于权属文件组或所有代码的引入。
调查Windows上的加载状态的一种常用技术是使用SysInternals进程监视器来分析已执行进程的实际个人行为。在了解了Windows10上的一些默认任务调度器进程及其个人通信行为后,我们发现一个名为“SilentCleanup”的任务调度器进程被配备为优先考虑没有管理权限的客户,但它在高一致性级别上运行。为了更好的发现,我们简单的对日常任务进行了逐一检查,发现在低级管理员账户(如“用户”)中勾选了“最高权限下 *** 作”的安全选项。
仔细查看procmon,我们发现具体进程是由任务计划cleanmgr.exe启动的,而全自动提权是因为日常任务分配设置为“在最高权限下执行”。
让我们进一步研究一下。当程序进程cleanmgr.exe被执行时,它将被显示在详细地址“C:users cleanmgr.exe建立临时文件后,会复制几个dll,用“dismhost.exe”连接 将它们放在一起,放在新的文件夹名称中: 将DismHost.exe及其DLL文件复制到文件目录“C:users “C:users 在这个阶段,因为具有中等一致性级别的客户端拥有用户的%TEMP%文件目录的写管理权限,所以按照DismHost.exe的说法,被劫持的DLL和高详细级别的编码已经可以完成了。这就是人们熟悉的“绕过UAC”绕过UAC的攻击。 因为今天的情况是一个市场竞争,你必须在DismHost.exe加载它之前替换整个目标DLL。我们更仔细地检查了整个过程,发现“LogProvider.dll”是DismHost.exe加载的最后一个dll,这给了我们被劫持的黄金时间。有了这些信息内容,我们可以应用WMI(WindowsManagementInstrumentation)恶意事件来监控“C:users 一旦dismhost.exe加载了每个人的DLL,就会以高一致性级别加载,从而让每个人绕过UAC,获得高一致性级别进程的代码执行管理权限。 在随后的测试中,发现这种方法在管理用户帐户时很不舒服,因为cleanmgr.exe从%TEMP%获取所有文档并不容易。当程序流程在标准客户的低或中等一致性水平上执行时,日常任务将在中等一致性水平上运行,无法按照这种发展主张权利。 MattGraeber(@mattifestation)写了一个非常好的PowerShell认证脚本,用来申请注册一个WMI恶性事件监测cleanmgr.exe。选中后,脚本会将一个特殊的DLL复制到GUID文件夹名称中,并将其命名为“LogProvider.dll”。如果dismhost.exe加载“LogProvider.dll”,大家可以保证它加载的是大家有意的dll,而不是合理合法的原始DLL,这样就完成了对UAC的绕过,让我们可以执行高一致性管理权限下的编码管理权限。可以根据下面的连接查询脚本https://gist.github.com/mattifestation/b4072a066574cacfa07fcf723952d54进行代码制作。 如果想测试这个方法,只需要这个身份验证脚本和一个带有Dllmain输出的DLL。你可以自己创建一个DLL,或者使用一个简单的MessageBox。 :https://github.com/enigma0x3/MessageBox。 该方法不同于其他已发表的方法,具有以下优点: 1.这种方法不需要将一切引入到整个过程中,这意味着攻击的特殊个人行为不容易被安全检测的特殊工具识别。 2.不要使用所有的管理权限文档。大多数UAC绕过了必须管理的文档组,这样就很容易在安全的地方获得有意的dll来创建被劫持的dll。因为任务计划程序进程已将所有必需的项目复制到%TEMP%,所以您不需要所有的管理权限文档。 3.这个方法执行后会自动清理。任务调度完成后(每个人的意向DLL已经加载完成时),在%TEMP%中创建的GUID文件夹名(以及其中的文档)将被日常任务自动删除。 4.当UAC级别设置为最高(“始终提示”)时,此方法可用,因为日常任务设置为在“最高权限”下运行。大多数现有的UAC绕过方法依赖于IFileOperationCOM目标来复制管理权限文档。IFileOperation提示UAC设置为“一直提示”并立即执行,导致升电文件组副本无效: 此问题已于2016年7月20日向微软安全响应管理中心(MSRC)反映。如你所料,他们回答说UAC不属于测试服务的范围。如这里所说,这不能被评估为网络安全问题。虽然这不是系统漏洞,但它确实允许网络攻击应用各种旁路方式来主张权利,而且它强调必须对几个部分或控制点进行监管,以观察网络攻击的个人行为。 这个问题可以按照日常任务失效或者清除最高权限 *** 作规程的要求来处理。另外,如果想测试这种攻击,可以用方法/签名找一个新的WMI,用来监督整个攻击成功过程中创建澳洲文件夹名的过程,因为这一步无疑会发生。合并App/DLL授权管理来监督异常控制模块(如Sysmon事件ID7)的加载也将限制此类攻击的成功。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)