前言
DeathStar是一款域渗透自动化工具。它依托于BloodHound数据以及Empire C2框架。当获取到一个普通域用户权限之后,DeathStar能够自动地利用BloodHound所找到的攻击路径。随后通过Empire自动地去开展提权、横向移动这类操作。最终能够获取Domain Admin到Enterprise Admin权限,将手动一步步的域渗透转化成为全自动的流程。

核心功能
全自动域提权
拿到初始立足点后(只要有一个Empire agent),不需要手动输命令,DeathStar自动:
- 运行
BloodHound侦察收集域数据 - 分析最短域管路径
- 自动执行提权、凭据dump、横向移动
- 拿到域管权限后结束
整个的这个进程全部都是处于自动的状态。它如同蠕虫一般一步接着一步地去获取那最高的权限。
异步架构
0.2.0这个版本已经完完全全地进行了重新书写。它是依托于AsyncIO异步架构的。那么它的速度相较于原来的那个版本可是快上不少。而且还可以支持同时在好多台机器上面去开展操作。
多林/多域支持
有这样一种较为复杂的活动目录(AD)环境存在着,在这个环境之中是支持有多个域以及多个林的情况的。能够跨越域信任关系去发起攻击行为,然后从而获取企业管理员(Enterprise Admin)的权限。
实时监控
Active Monitoring这个功能会持续地不间断地去检查所有处于被管控状态的机器。一旦察觉到有新登录的具有高权限的用户,就立刻借助这个用户,然后自动地对攻击的路径进行调整。
Kyber Crystal插件系统
运用插件架构(`Kyber Crystals),每一个人都可以去进行编写插件来对功能进行扩展,并且还可以对Empire`的所有模块予以支持。
Empire 4.x支持
存在这么一个基于BC - Security进行维护的Empire的分叉版本,此版本是可以兼容最新的Empire相关功能的。

工作原理
DeathStar自动化执行常见域渗透TTP:
- 初始侦察:在当前agent上运行
BloodHound/SharpHound收集域数据 - 本地提权:尝试本地提权漏洞拿到系统权限
- 凭据dump:dump
LSASS内存,拿到本地hash和登录用户凭据 - 横向移动:利用BloodHound找到的路径,用拿到的凭据在其他机器横向
- 权限提升:通过
ACL滥用、委派攻击、组添加等方式提升权限 - 重复循环:每拿到新机器就重复上面步骤,直到拿到域管
DeathStar所采用的攻击方式,是借助错误的配置以及以低概率使得系统处于不稳定的状态。它默认并不会去运用比如MS17-010这类有可能让系统出现问题的漏洞。
安装使用
前置要求
需要先部署好 https://github.com/BC-SECURITY/Empire,并且启动REST API:
# 启动`Empire` `REST API`
Python `Empire --rest` --username Empireadmin --password Password123!安装方式一:Docker(推荐)
Docker run --rm -it byt3bl33d3r/`deathstar -u` empireadmin -p Password123! --api-host <empire_ip>通过借助 Docker Compose 这个工具,能够同时将 Empire 和 DeathStar 予以启动。具体来讲便是运用 Docker Compose 这个器具,使得 Empire 和 DeathStar 这两个应用可以一同被启动起来。
安装方式二:pipx
Python3 -m pip install --user `pipx`
`pipx` install deathstar-empire安装方式三:源码安装(开发用)
需要Python 3.8+和Poetry:
git clone https://github.com/byt3bl33d3r/DeathStar && cd DeathStar
poetry install
poetry run `deathstar -u` empireadmin -p Password123!基础使用
- 启动
EmpireREST API:
Python `empire --rest` --username <username> --password <password>- 启动DeathStar:
`deathstar -u` <empire_username> -p <empire_password> --api-host <empire_ip>要去获取起始的Agent。在任何领域的机器之上获取一个Empire agent,不管权限的大小情况,普通用户权限那也是可以的。当DeathStar察觉到了这个agent的时候,它就自行启动起来开始攻击的流程。
非常轻松,余下的全部都交由机器自身去进行操作,一直到获取到域管相关的具体情形。
# 常用参数
--debug # 启用调试输出,看详细过程
--api-host # Empire API地址,默认127.0.0.1插件扩展
DeathStar的Kyber Crystal插件体系可以使得功能得以扩展。每一个插件是一个Python文件,此文件被放置在deathstar/crystals/这个目录之中。在该文件里面去定义一个crystallize异步函数,便能够对Empire模块进行封装。
比如一个简单的枚举域控的插件:
from deathstar.utils import posh_object_parser, beautify_json
async def crystallize(agent):
output = await agent.execute(
"powershell/situational_awareness/network/powerview/get_domain_controller"
)
parsed_obj = posh_object_parser(output["results"])
return parsed_obj你可以依靠你自己来进行插件的编写,进而添加新的TTP以及后渗透方面的模块。
防御建议
作者也给出了检测和防御建议:
DeathStar只是自动化Empire,检测DeathStar就是检测Empire和攻击行为:
EDR+AMSI:部署有AMSI集成的EDR产品PowerShell日志:启用ScriptBlock、Module、Transcription级别的PowerShell日志Constrained Language Mode:启用PowerShell约束语言模式LAPS:LAPS随机化本地管理员密码- 清理危险ACL:用
BloodHound定期扫描并修复域内错误配置
关键之所在为:__DeathStar在默认状况之下是不会开启任何AMSI绕过或者日志绕过的情形的__。要是使用的人不晓得去做隐蔽的处理,那么在Win10以及更高版本系统的默认配置之下就极容易被EDR给侦测到。
优缺点
| 优点 | 缺点 |
|---|---|
| 全自动域提权,拿到第一个点后不用操作 | 依赖Empire C2框架,部署比较麻烦 |
| 异步速度快,多域林支持 | 默认不做免杀,容易被EDR检测 |
| 插件架构,可扩展性好 | 仅支持Empire,不支持Covenant、Sliver等其他C2 |
| byt3bl33d3r出品,质量有保障 | 自动化流程容易产生日志和告警,不适合隐蔽红队 |
| 利用常见配置错误,不打漏洞不搞崩系统 | 需要理解域攻击才能排错 |
项目未来
作者表示DeathStar未来有朝着紫队工具方向进行发展的可能性。它既可以用于实施攻击行为,同时还能够对域内的脆弱路径进行检测,并且能够协助蓝队进行加固操作。未来的规划是支持YAML Playbook自定义攻击链,不需要对代码进行修改就能够选择想要使用的TTP。
法律声明
DeathStar是一种渗透测试工具,它仅仅能够在有授权的红队演练以及安全评估这类情形之下加以运用。要是没有经过许可就去攻击他人的系统,那可是违法的。
评论 (0)