0x00 工具介绍

前言

BeRoot是一个后期开发工具,用于检查常见的Windows的配置错误,以方便找到提高我们提权的方法。其二进制编译地址为:

https://github.com/AlessandroZ/BeRoot/releases

它将作为后开发模块被添加到pupy(Pupy是一个开源,跨平台(Windows,Linux,OSX,Android),多功能RAT远程管理工具和后开发工具,主要用python编写)项目中(因此它将在内存中执行,而不会在硬盘中执行)。

需要注意的是,这款工具只能用来检测,而无法直接利用目标系统中存在的漏洞。但是,如果它发现了错误配置,它可以通过模版来利用这些漏洞。模版文件位于templates/service目录下,如果项目提供的模版文件无法运行,我们也可以根据目标系统的情况手动创建一个模版文件。

工具下载

beRoot.zip】(zip)

源代码】(zip)

源代码】(tar.gz)

工具运行:

|==============================================

|                                                                    |

|                    Windows Privilege Escalation                    |

|                                                                    |

|                          ! BANG BANG !                             |

|                                                                    |

|==============================================

usage: beRoot.exe [-h] [-l] [-w] [-c CMD]

Windows Privilege Escalation

optional arguments:

-h, --help         show this help message and exit

-l, --list         list all softwares installed (not run by default)

-w, --write        write output

-c CMD, --cmd CMD  cmd to execute for the webclient check (default: whoami)

0x01 工具利用

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

如以下文件路径:

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条目中的启动键执行这样的检测

利用方法:

在利用存在安全缺陷的路径时,我们应该遵循以下方法:

1.    如果是一个服务,那么我们就创建一个恶意服务(或编译一个service模版)。

个人理解为:通过该工具检查到的服务运行的路径为带空格且没有引号的目录路径,则可以用其他恶意服务来替换来达到提权。

2.    如果是一个可执行程序,那么我们就可以创建一个恶意的可执行程序

可写目录:

如下文件路径:

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

如果“binary.exe”的根目录是可写的(“C:\ Program Files \ Some Test”)并以高权限运行,那么我们就可以利用它来实现提权。

利用方法

1.    如果服务不处于运行状态:用我们的服务模版替换掉合法服务,重启该服务,并尝试触发该服务。

2.    服务处于运行状态且无法被终止:这是大多数的情况,可以尝试进行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文件是通过指令代码进行加载的,Windows会通过下列步骤来尝试定位相应的代码:

- 定位代码所在目录

- C:\Windows\System32

- C:\Windows\System

- C:\Windows\

- 当前目录下的代码已启动

- 目录地址将会保存在%PATH%环境变量中

二进制文件启动的当前目录

如果%PATH%变量中的目录路径是可写的,那么我们就有可能实现DDL劫持攻击。那么接下来,我们的目标就是要找出一个能够加载DLL文件但路径还不在%PATH%变量中的服务。默认情况下,我们选择使用“IKEEXT”服务,它可以加载我们的恶意DLL文件-wlbsctrl.dll。

如何利用:创建一个名为“wlbsctrl.dll”(使用DLL模版)的恶意DLL文件,并将其添加至%PATH%变量中的可写路径,开启“IKEEXT”服务,为了在没有高级权限的情况下开启IKEEXT服务,我们可以参考法国杂志MISC90中所介绍的方法,方法大致如下:

根据下列信息创建一个文件:

C:\Users\bob\Desktop>typetest.txt

[IKEEXTPOC]

MEDIA=rastapi

Port=VPN2-0

Device=Wan Miniport (IKEv2)

DEVICE=vpn

PhoneNumber=127.0.0.1

使用“rasdial”命令开启IKEEXT服务,如果链接失效,则说明该服务已经处于运行状态了。

MS16-075漏洞检查

对于懂法语的用户,我建议可以参考MISC 90中提供的技术细节。

微软已经在公告MS16-075的补丁中修复了这个漏洞,但是很多服务器仍然存在这个问题,这里给大家提供一个C++PoC【点我获取】。大致的实现方法如下:

1.    使用某些方法(使用其UUID)开启Webclient服务

2.    在本地开启一个HTTP服务器

3.    找到一个能够触发SYSTEM NTLM哈希的服务

4.    启用该服务的文件追踪,修改其注册表键值,并让其指向我们的Web服务器(\\127.0.0.1@port\tracing)

5.    开启该服务

6.    让我们的HTTP服务器请求获取SYSTEM NTLM哈希

7.    使用这个哈希和SMB来执行我们的自定义Payload

8.    清除痕迹(终止服务,清除注册表键等等)

如何利用:在目标主机中,BeRoot可以通过下列命令来执行自定义命令:

beRoot.exe -c “net userZapata LaLuchaSigue /add”

beRoot.exe -c “net localgroupAdministrators Zapata /add”

注册表键AlwaysInstallElevated

通过对AlwaysInstallElevated进行设置,我们可以让非特权用户使用高级权限(SYSTEM权限)来运行MicrosoftWindows Installer包文件。为此,我们需要将下面这两个注册表键值设置为1:

HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated

如何利用:创建一个恶意MSI文件,然后执行。

Unattend安装文件

很多安装文件中包含程序的所有配置信息,并且会在程序的安装过程中对程序进行配置,而有些安装文件中还包含对本地账号(例如管理员账号)的配置信息,我们可以通过下列路径获取到这些文件:

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>

0x03 总结

可检查以下的内容:

可写的应用程序路径

可写不含引号有空格的路径

可利用的注册表键值

找到无人值守安装文件

可检查到MS16-075漏洞利用

后渗透提权辅助工具BeRoot详解的更多相关文章

  1. Enumy:一款功能强大的Linux后渗透提权枚举工具

    Enumy是一款功能强大的Linux后渗透提权枚举工具,该工具是一个速度非常快的可移植可执行文件,广大研究人员可以在针对Linux设备的渗透测试以及CTF的后渗透阶段利用该工具实现权限提升,而Enum ...

  2. 又一款linux提权辅助工具

    又一款linux提权辅助工具 – Linux_Exploit_Suggester 2013-09-06 10:34 1455人阅读 评论(0) 收藏 举报 https://github.com/Pen ...

  3. windows提权辅助工具koadic

    项目地址:https://github.com/zerosum0x0/koadic ┌─[root@sch01ar]─[/sch01ar] └──╼ #git clone https://github ...

  4. 提权辅助工具:Windows--exploit-suggester.py安装及使用

    下载地址    https://github.com/AonCyberLabs/Windows-Exploit-Suggester1.安装xlrd包(注意python2.3版本的pip问题)      ...

  5. linux提权辅助工具(四):LinEnum.sh

    来自:https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh #!/bin/bash #A script to e ...

  6. linux提权辅助工具(三):privchecker.py

    来自:https://www.securitysift.com/download/linuxprivchecker.py #!/usr/env python ##################### ...

  7. linux提权辅助工具(二):linux-exploit-suggester-2.pl

    来自:https://github.com/jondonas/linux-exploit-suggester-2/blob/master/linux-exploit-suggester-2.pl #! ...

  8. linux提权辅助工具(一):linux-exploit-suggester.sh

    来自:https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh ...

  9. LINUX下渗透提权之嗅探技术

    内网渗透在攻击层面,其实更趋向于社工和常规漏洞检测的结合,为了了解网内防护措施的设置是通过一步步的刺探和经验积累,有时判断出错,也能进入误 区.但是如果能在网内进行嗅探,则能事半功倍,处于一个对网内设 ...

随机推荐

  1. SQL基本数据类型等

    bit   类似C#中的bool类型   true/false int   整型 nvarchar  字符串类型 float   小数型 decimal(,) 小数型  (限制小数位数) dateti ...

  2. Siki_Unity_2-2_NGUI_UI插件学习(3.6.8版本)(未学)

    Unity 2-2 NGUI UI插件学习(3.6.8版本)(未学)

  3. hadoop常见错误解决方法

    一.启动集群时 1.节点启动失败 1.1端口占用 1.1报错信息:address already in use - bind Address:50070 解决步骤: 查询端口占用:lsof -i:50 ...

  4. Redis5.0:在这些场景使用,高效率还低成本!

    很多大型电商网站.视频直播和游戏应用等,存在大规模数据访问,对数据查询效率要求高,且数据结构简单,不涉及太多关联查询. 这种场景使用Redis,在速度上对传统磁盘数据库有很大优势,能够有效减少数据库磁 ...

  5. 华为中兴借eBay出海 靠零售渠道撬动市场

    在跨境电商领域,大多数中国商家依靠“中国制造”的优势和价格战策略打拼出一条血路,在海外市场占领了自己的一席 之地.不过,山寨货纷纷出海的同时,中国本土的品牌商们也开始了探索海外市场之旅.目前,华为.中 ...

  6. ecshop以及一些需要注意的

    Deprecated: Assigning the return value of new by reference is deprecated in 定位到出错的那一行: $this->_ol ...

  7. CSS布局之圣杯布局和双飞翼布局

    其实圣杯布局和双飞翼布局实现的都是三栏布局,两边的盒子宽度固定,中间盒子自适应,也就是我们常说的固比固布局.它们实现的效果都是一样的,差别在于其实现的思想. 一.圣杯布局 html代码中,将重要的内容 ...

  8. c# 导入第三方插件(例如pdf控件),莫名有时候成功有时候出错

    问题情境: 正如标题所述: 解决办法: 怀疑是adobe acrobat 9 pro安装文件出错:重新安装,成功. 在这过程中,尝试过福听阅读器,adobe reader等,均正常. 注:1.第三方的 ...

  9. java调试器

    javac.exe是编译.java文件 java.exe是执行编译好的.class文件 javadoc.exe是生成Java说明文档 jdb.exe是Java调试器 javaprof.exe是剖析工具 ...

  10. ASP.NET MVC5 学习系列之视图

    一.视图约定 当创建一个项目模版时,可以注意到,项目以一种非常具体的方式包含了一个结构化的Views目录.在每一个控制器的View文件夹中,每一个操作方法都有一个同名的视图文件与其对应.(约定大于配置 ...