Empire和BloodHound这两个Github项目极大程度地简化了针对活动目录(AD)的渗透测试过程,至少在我当前所遇到的95%的环境中是这样的。随着年月的积累,我发现很多事情都是自己一直在重复地做着,因此我打算将它们通过自动化的方式来实现。毕竟,通过“即发即弃”的脚本来自动化获取域管理员权限(Domain Admin)是大家都想实现的一个目标,没错吧?
幸运的是,前人已经帮我们完成了很多非常困难的任务。除此之外,Empire不久之前还引入了一个RESTful API,因此开发者可以轻而易举地创建一个第三方脚本并与之进行交互。
但在我开始之前我还想提醒一下各位,拿到域管理员权限并不是你渗透测试的唯一目标,如果你是这样想的话,那你就大错特错了。你应该把重点放在Post-Exploitation(发现漏洞并利用)上,并尝试查找机密数据和文档等敏感信息。你的目标是要找出任何能够证明组织管理漏洞的证据,你要能够证明当网络攻击真正发生时,这些东西会让组织陷入困境。不过当你拿到域管理权限之后,一切都会变得简单。
项目目标与实现
我本来只是想开发一款能够解析BloodHound输出,并将其转发给Empire的工具。但是,原版的BloodHound并不适用于使用了GPP密码的域权限。因此我需要一个带有蠕虫特性的“激进版”BloodHound。除此之外,Empire几乎拥有BloodHound绝大多数的核心功能,但相对来说跟Empire的模块进行交互还是比较难的。因此,我打算通过RESTful API和Empire来实现整个过程的自动化,这样一来我就可以根据自己的需要来解析模块的输出结果了。
DeathStar的运行机制
下面这张图片可以很好地解释DeathStar的运行机制:
如果你曾经对活动目录进行过渗透测试的话,那么你应该对这张图片不会感到陌生。
工具安装与配置
为了让DeathStar正常工作,目前你还需要单独安装Empire,其中包含一些API和后端数据库,并且相关的脚本都经过了优化以方便我们与RESTful API交互。
DeathStar- 【传送门】
Empire- 【传送门】
下载并安装Empire库,然后通过下列命令运行:
pythonempire --rest --username username --password password
这行命令将会启动Empire的命令控制台以及RESTful API服务器。
安装并运行DeathStar:
gitclone https://github.com/byt3bl33d3r/DeathStar
#Death Star is written in Python 3
pip3install -r requirements.txt
#Supply the username and password you started Empire's RESTful API with
./DeathStar.py-u username -p password
如果一切进展顺利的话,DeathStar将会创建一个http监听器,此时你将会看到“Polling for Agents”状态:这意味着你已经被授权访问RESTful API了,而DeathStar正在等待代理客户端。
现在你需要的就是一个来自目标域设备的代理,具体如何实现并非本文所要讨论的范畴,不过我建议你使用CrackMapExec。
工具使用
在下面的演示视频中,我们在两种不同的场景下演示了如何使用DeathStar来获取域管理权限。
视频地址1:https://youtu.be/PTpg_9IgxB0
视频地址2:https://youtu.be/1ZCkC8FXSzs
需要注意的是,这两个视频采取了不同的方法来利用凭证,但我们还可以使用本地管理员权限和PSInject来更加轻松地获取域管理权限,而且这样不需要使用到凭证数据。
总结
DeathStar这个项目足以证明,我们可以通过现存的开源工具集合来自动化获取活动目录环境下的域管理权限。我总共花了3-4天的时间来将这些组件组合起来,而那些比我更加聪明的人可能会做得比我更好。因此就我个人而言,我希望能够在将来看到更多类似的工具出现。
最新评论