
The ADSyncDump BOF is a port of Dirk-Jan Mollema's adconnectdump.py / ADSyncDecrypt into a Beacon Object File (BOF) with zero dependencies.
ADSyncDump BOF 是 Dirkjan Mollema 的 adconnectdump.py / ADSyncDecrypt 到 Beacon 对象文件(BOF)的移植版本,用于 Cobalt Strike、Sliver 和 Havoc。
[!NOTE] 该工具已在安装了 Azure AD Connect
2.2.1.0版的 Windows Server 2019 上测试。BOF 的 32 位版本未经测试,但我将其包含在内以保持完整性。使用风险自负。
要编译该 BOF,只需在包含源代码的目录中运行 make。这将生成 BOF 的 32 位和 64 位版本。
make
在 Cobalt Strike 上,加载 adsyncdump.cna 脚本;对于 Sliver,使用 extension install 和 extension load 命令来安装 BOF。安装完成后,以 NT AUTHORITY\SYSTEM 身份横向移动到 AD 同步服务器,并运行 adsyncdump 命令:
beacon> adsyncdump


这个 BOF 起源于几年前的一次攻防演练/项目,当时我遇到了问题:原始 Python 脚本对客户端系统过于侵入,而且我无法让 .NET 版本正常运行。因此我决定利用业余时间对解密过程中使用的确切 Win32 API 调用进行逆向工程,并将其移植为 BOF。
最初,我并没有计划分享这个项目,因为我觉得这样做不负责任——ADSync 账户拥有一些荒谬的权限,而且现有工具的检测情况并不理想。然而,此后微软已严重限制了 ADSync 账户的权限,使得影响有所降低(虽然仍然不太好,但至少你不能再编辑条件访问策略了1)。
此外,鉴于其他研究人员已经公开了解密过程的内部工作原理(特别感谢 Dr Syynimaa2 和 Dirkjan Mollema3),并且检测手段已经更加普及,我现在觉得可以更放心地与社区分享这个 BOF(抱歉来晚了)。
本项目基于 MIT 许可证授权 - 详见 LICENSE 文件。我对因使用本工具而造成的任何滥用或损害不承担责任。请仅在获得明确许可的环境中使用本工具。
https://raw.githubusercontent.com/paradoxis/adsyncdump-bof/HEAD/%3Chttps:/x.com/_dirkjan/status/1715263925971821008%3E ↩
https://raw.githubusercontent.com/paradoxis/adsyncdump-bof/HEAD/%3Chttps:/aadinternals.com/post/adsync/%3E ↩
https://raw.githubusercontent.com/paradoxis/adsyncdump-bof/HEAD/%3Chttps:/dirkjanm.io/updating-adconnectdump-a-journey-into-dpapi/%3E ↩