Beacon BOF 工具集。
一个快速 PoC,通过 beacon 对象文件使用 DCOM(ShellWindows)进行横向移动。你可以指定凭据或使用当前用户。使用当前用户时,只需将域、用户名和密码留空。一篇关于在 C 中使用 COM 对象的简短文章可在此处找到:https://yaxser.github.io/CobaltStrike-BOF/。
与上一个概念类似,但是一次有趣的学习体验。代码改编自 CIA Vault 8(https://wikileaks.org/ciav7p1/cms/page_11628905.html)。该方法使用 Win32_Process 类。
此方法使用 WMI 事件进行横向移动。大部分繁重工作由 wumb0in(https://wumb0.in/scheduling-callbacks-with-wmi-in-cpp.html)完成。
这是使用 dotnet BOF 实现的按需 C2。Beacon 将进入睡眠状态,直到收到一封包含指定关键词(主题或正文)的邮件。这样,你的 beacon 只会在你希望回连时才会回连。当 beacon 回连时,它将根据 malleable profile 中配置的睡眠时间进行回连。完成后,你可以再次运行 BOF,beacon 将进入睡眠,直到你发送另一封邮件。另外,包含指定关键词的邮件会在用户收到通知前被删除。
1)下载 BOF .NET 项目(感谢 CCob 的出色工作!)并按照 CCob 的指南(https://github.com/CCob/BOF.NET)将 dll 加载到 beacon 中。
2)使用以下命令执行:bofnet_execute On_Demand_C2_BOF.OnDemandC2Class subject COVlD-19*
3)现在,要让你的 beacon 回呼,你可以发送一封类似以下的邮件: [SUSPECTED SPAM] The new COVlD-19 update
邮件将直接被移至已删除邮件,beacon 将再次回呼!
*这是一个 COVlD-19,其中 L 是小写,以确保唯一性。
你也可以指定正文选项,如下所示: bofnet_execute On_Demand_C2_BOF.OnDemandC2Class body "it can also be a sentence!"
如果这样做,应用只会在邮件正文包含 "it can also be a sentence!" 时触发。然而,这种方法会导致每次收到邮件时出现“某个程序正在尝试访问电子邮件地址信息”的提示,因此我建议仅在你确定该功能已禁用时使用(在企业环境中很常见,但多一层 OPSEC 总没坏处)。
我将这些技术移植到 BOF 是为了更多地了解 Windows、CobaltStrike 和横向移动。我很好奇,复制粘贴 PowerShell 命令的方式太无趣了。
DCOM 横向移动花了一些时间才解决,我在其他项目/仓库中没有找到现成的实现。不过,WMI 横向移动部分主要是由其他人完成的,我只是做了少量修改并将其移植到 BOF。
我还不算经验丰富的开发者,请谨慎使用。在将这些脚本推送到 GIT 之前,它们已在提供 MDR 服务的企业环境中测试过,没有触发任何警报。但毋庸赘言,你应该在实战前修改和测试这些脚本。如果需要帮助,请随时联系我。此外,如果你对这些 BOF 感兴趣并需要 aggressor 脚本,请告诉我!
可以上 Twitter(https://twitter.com/Yas_o_h)或通过邮件(mailto:[email protected])联系我。
给我一个 star、一次转发,或者在我毕业后邀请我加入你的 Red Team。
衷心感谢 rsmudge(https://github.com/rsmudge)持续的支持和对问题的积极回应。domchell(https://github.com/dmchell)的文章是很好的入门资料,帮助我理清了优先级。