测试目标以及决定使用的方法
起初,我只是利用BloodHounds的输出,将其发送到empire,然后通过empire进行自动攻击。但是BloodHound并没有考虑到有些路径可以进行提权的问题(比如SYSVOL中的GPP密码)。
所以我想写一个更加活跃的BloodHound,使其具有蠕虫的行为。 另外,Empire具有大多数BloodHound能够实现的函数,所以我决定使用Empire并且使用RESTfulAPI将所有行为进行自动化。
这就会让我可以随意查看每个模块的输出,并且对整个渗透过程中的逻辑和用户的反馈有更多的控制。
工作流程什么?
下面的流程图我认为解释的很好,并且DeathStar它的功能太过强大,在这篇文章中无法彻底的解释这个工具。
如果你之前,在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域中使用开源的工具自动获取域管的可能性。我很希望在不久的将来可以看到更多人使用这样的思路。