导语:自从Empire和BloodHound诞生之后,我认为95%的域环境我都可以轻而易举的拿下。我发现在进行渗透测试时我一直重复的在做相同的事情,所以我决定将这个步骤进行自动化处理。毕竟一键拿下域环境一直是我们的梦想,不是吗?

在我介绍这一攻击方法之前,我先借此机会说明:在你渗透测试中,拿下域管并不是唯一的目标。你应该更加注意后期的攻击范围,尝试找到一些敏感的Pll,文档等等可以泄漏出管理信息的东西。如果这些管理信息被泄漏,那么这个组织也会受到很大的影响。但是拿下域管理员确实可以让渗透测试更容易。

测试目标以及决定使用的方法

起初,我只是利用BloodHounds的输出,将其发送到empire,然后通过empire进行自动攻击。但是BloodHound并没有考虑到有些路径可以进行提权的问题(比如SYSVOL中的GPP密码)。

所以我想写一个更加活跃的BloodHound,使其具有蠕虫的行为。 另外,Empire具有大多数BloodHound能够实现的函数,所以我决定使用Empire并且使用RESTfulAPI将所有行为进行自动化。

这就会让我可以随意查看每个模块的输出,并且对整个渗透过程中的逻辑和用户的反馈有更多的控制。

工作流程什么?

下面的流程图我认为解释的很好,并且DeathStar它的功能太过强大,在这篇文章中无法彻底的解释这个工具。

1496731250704323.png

如果你之前,在AD域中进行过渗透测试,你应该对上述流程图比较熟悉。

进行实验

目前,如果你想DeathStar与Empire进行工作,你就需要下载我在维护的emprie。git下来之后你会看到它包括一些API,以及与RESTfulAPI的交互脚本。
下载地址:

DeathStar - https://github.com/byt3bl33d3r/DeathStar
Empire - https://github.com/byt3bl33d3r/Empire

下载下来之后,执行下面命令:

python empire --rest --username username --password password

这就会启动Empire命令行以及RESTfulAPI服务。
使用以下命令启动Deathstar:

git clone https://github.com/byt3bl33d3r/DeathStar
# Death Star is written in Python 3
pip3 install -r requirements.txt
# Supply the username and password you started Empire's RESTful API with
./DeathStar.py -u username -p password

如果一切进行的顺利,Death Star会创建一个http侦听,然后你会看到一个’Polling for Agents’代理状态,这就意味着你已经连接上了Empire的RESTfulAPI,然后DeathStar在等待第一个Agent。

现在你需要一个在域中的机器连接上Deathstar,这就不是这篇文章讲述的范围,具体看读者们怎么发挥吧。

一旦得到一个在域中的agent,Deathstar就会对它进行接管,然后就会开始攻击。
以下是DeathStar获得域管的两种场景:

视频一:https://www.youtube.com/embed/PTpg_9IgxB0
视频二:https://www.youtube.com/embed/1ZCkC8FXSzs

在第一个视频中,它使用的是SYSVOL漏洞中GPP密码来提升域权限的,将这些机器的GPO去用于解密登录凭证进行横向拓展,最终得到域管登录的机器。然后运行PSinject注入到以域管帐号运行的一个进程中,然后以明文密码的方式进行返回。在第二视频中,使用的是mimikatz进行获取域管理的凭证。

还有一点我想指出,尽管这两个视频都是利用获取凭证来进行攻击的。不过Deathstar完全可以通过结合本地管理以及PSinject进行攻击,而无需获得凭证。

工具需要完善的地方

Deathstar还可以做很多事情,比如增加更多的提权方法,更多的横向拓展方法,逻辑还可以更简单一点,我们还可以做一些后期的开发~当前发布的只是一个初稿。

结论

Deathstar演示了在AD域中使用开源的工具自动获取域管的可能性。我很希望在不久的将来可以看到更多人使用这样的思路。

源链接

Hacking more

...