安全路透社
当前位置:安全路透社 > 网络转载 > 正文

【待复审】BeRoot:一款功能强大的Windows权限提升工具

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

BeRoot简介

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

下载地址

已编译版本:【BeRoot V1.0

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

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

工具运行

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

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

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

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

C:\Program Files\Some Test\binary.exe

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

C:\Program.exe
C:\Program Files\Some.exe
C:\Program Files\Some Folder\binary.exe

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

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

如何利用:

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

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

可写目录

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

C:\Program Files\Some Test\binary.exe

如果”binary.exe”的根目录可写的话(”C:\Program Files\Some 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:\Windows\System32
- C:\Windows\System
- 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_USER\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated

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

未被注意的安装文件

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

C:\Windows\Panther\Unattend.xml
C:\Windows\Panther\Unattended.xml
C:\Windows\Panther\Unattend\Unattended.xml
C:\Windows\Panther\Unattend\Unattend.xml
C:\Windows\System32\Sysprep\unattend.xml 
C:\Windows\System32\Sysprep\Panther\unattend.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:\Windows\system32\Tasks”)

 

* 参考来源:BeRoot, FB小编Alpha_h4ck编译

未经允许不得转载:安全路透社 » 【待复审】BeRoot:一款功能强大的Windows权限提升工具

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册