一个关注web安全-热爱黑帽技术-热衷于黑帽SEO的个人技术博客-为大家分享最前沿的黑帽资源


作者:无良小编2017-9-22 23:10分类: 资源分享 标签: 提权

BeRoot:一款功能强大的Windows权限提升工具

BeRoot简介

BeRoot是一款后渗透工具,它可以帮助测试人员检查常见的Windows错误配置,并从中寻找到能够实现权限提升的方法。

下载地址

已编译版本:【BeRoot V1.0

除此之外,BeRoot将会以一个后渗透模块添加到pupy项目中,这样就可以让BeRoot在内存中直接运行而无需访问磁盘了。

需要注意的是,BeRoot只能用来进行检测,而无法直接利用漏洞完成攻击。如果它发现了问题,测试人员可以利用templates(模板)来进行漏洞利用。在使用templates时,需要在下级目录service/中创建一个test.bat文件。

工具运行

BeRoot:一款功能强大的Windows权限提升工具

接下来,我们会给大家介绍所有常用的检测方法。

包含空格且没有引号的路径

请大家先看看下面这个文件路径:

C:Program FilesSome Testbinary.exe

如果路径中包含空格并且没有引号,Windows将会尝试按照下列顺序进行定位并执行目标程序:

C:Program.exe C:Program FilesSome.exe C:Program FilesSome Folderbinary.exe

在上述例子中,如果”C:”目录可写的话,我们就可以创建一个名叫”Program.exe”的恶意可执行程序了。如果”binary,exe”是以最高权限运行的话,我们也可以用它来完成提权。

注意:BeRoot可以对每一个服务路径、计划任务、以及HKLM中的启动键进行这样的检测。

如何利用:

如果路径与服务有关:创建一个恶意服务,或编译service模板;

如果路径与传统可执行程序有关:创建你自己的恶意可执行程序;

可写目录

请大家先看看下面这个文件路径:

C:Program FilesSome Testbinary.exe

如果”binary.exe”的根目录可写的话(”C:Program FilesSome Test”),并且它能够以最高权限运行,那么我们就可以用它来实现提权。

如何利用:

服务未运行:用我们的恶意服务替换掉原本的合法服务,然后重启服务;

服务正在运行且无法被终止:这种情况符合绝大多数的漏洞利用场景,利用DLL劫持技术并使用之前的方法尝试重启服务;

环境变量%PATH%中的可写目录

这项技术将会影响以下几个Windows版本:

6.0 =>  Windows Vista / Windows Server 2008 6.1 =>  Windows 7 / Windows Server 2008 R2 6.2 =>  Windows 8 / Windows Server 2012

在传统的Windows安装过程中,DLL是通过binary加载的,Windows将会按照下列步骤来尝试定位binary:

- binary所在的目录 - C:WindowsSystem32 - C:WindowsSystem - C:Windows - 代码被执行的当前目录 -环境变量%PATH%中的目录

如果环境变量%PATH%中的目录是可写的,那我们就有可能实现DLL劫持攻击了。接下来,我们就要找出那个负责加载DLL并且没有在这些路径中出现过的服务。比如说默认情况下,”IKEEXT”服务将会加载”wlbsctrl.dll”。

如何利用:

创建一个名叫”wlbsctrl.dll”的恶意DLL文件(使用现成的DLL模板),然后将其添加到环境变量%PATH%中的可写路径。接下来,启动”IKEEXT”服务即可。

注册表键AlwaysInstallElevated

AlwaysInstallElevated是一个设置,它可以允许非特权用户以SYSTEM权限运行Microsoft Windows Installer Package File(MSI)。为了实现这种操作,下面这两个注册表项需要被设置为1:

HKEY_CURRENT_USERSOFTWAREPoliciesMicrosoftWindowsInstallerAlwaysInstallElevated
HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsInstallerAlwaysInstallElevated 

如何利用:创建一个恶意msi文件并执行它即可。

未被注意的安装文件

这些文件中包含程序在安装过程中所进行的一切配置信息,而且其中的部分文件可能还包含有本地管理员账号的配置信息。这些文件的路径如下:

C:WindowsPantherUnattend.xml C:WindowsPantherUnattended.xml C:WindowsPantherUnattendUnattended.xml C:WindowsPantherUnattendUnattend.xml C:WindowsSystem32Sysprepunattend.xml  C:WindowsSystem32SysprepPantherunattend.xml

如何利用:

打开unattend.xml文件,并查看其中是否包含密码:

<UserAccounts>    <LocalAccounts>        <LocalAccount>            <Password>                <Value>RmFrZVBhc3N3MHJk</Value>                <PlainText>false</PlainText>            </Password>            <Description>Local Administrator</Description>            <DisplayName>Administrator</DisplayName>            <Group>Administrators</Group>            <Name>Administrator</Name>        </LocalAccount>    </LocalAccounts> </UserAccounts>

其他可能存在的错误配置

除了上述可检测的错误配置之外,BeRoot还实现了以下几种可能的检测对象:

1.      修改现有的服务;

2.      创建一个新的服务;

3.      修改HKLM中的启动项键;

4.      修改存储计划任务的目录(”C:Windowssystem32Tasks”)

 

* 参考来源:BeRoot, 

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

已有 1/459 人参与

评论:

楚狂人博客 2017-10-20 15:34
专业的文章,感谢分享

发表评论:

扫二维码进群