Azure Sentinel 快速部署与 Cyb3rWard0g 的 Sentinel To-Go——让我们捕获 Cobalt Strike!
Jordan Drysdale
tl;dr:Sentinel 很简单!尤其是在使用 Azure Sentinel To-Go 时。因此,让我们通过部署 Sentinel To-Go 并执行 Cobalt Strike 信标来进行一些威胁研究。
链接:https://github.com/OTRF/Azure-Sentinel2Go
跟上 Roberto(以及他的兄弟和 OTRF 贡献者)的步伐,就像他推动威胁研究的努力一样艰巨。Defensive Origins 团队(我们现在有四个人,希望很快能有五个)尽力寻找改进整体安全状况的项目并分享它们。
背景: Roberto(Cyb3rWarD0g)和 OTRF 的其他几位成员为安全社区、研究人员乃至整个世界贡献了如此之多,以至于我们无法抽出足够的时间来跟上。他们提供的内容包括:多年的终端研究、HELK、Mordor、OSSEM,以及更多内容,还有 Sentinel 的简易按钮。因此,让我们所有人感谢 Roberto、他的家人以及 OTRF。感谢你们所有的努力。
前景: 我们今天的研究将专注于研究本身……?我们非常重视安全,并且最近在云上花费了大量时间。由于“云”、“云安全”和“Cobalt Strike”都是与 C 级别高管共鸣的术语,我们投入了艰苦的研究周期来理解这些术语。因此,利用行业巨擘的工作,让我们尝试部署 Sentinel,通过 Azure 资源管理器模板启动一些虚拟机,并执行一两个 Cobalt Strike(许可版)信标。
我们应该在一个标签页中启动一个经过身份验证的 Azure 会话,在另一个标签页中打开 Sentinel To-Go 仓库。
如下一张截图所示,请随意点击适合您的按钮,但我选择了 AZ Sentinel + WS + DC 构建。
部署页面有很多选项需要整理。您可以编辑模板、参数、添加虚拟机,基本上可以彻底自定义。
下一张图片显示了资源组配置,在我们的案例中是预先存在的。
用户和访问配置如下一张截图所示。
系统、域和事件日志配置如下一张截图所示。下一张截图中标记了一个需要注意的项目。这是您确定在此构建期间希望收集的日志级别的地方。我选择了“全部”——给我所有内容,我会整理它。
接下来是 Ubuntu SKU。默认设置。
创建。接受。账单即将到来,每次运行对我来说大约花费 1 到 3 美元,运行时间大约为 10-15 小时。上次运行?2.21 美元。
忽略 Cobalt Strike 的设置,我在此次努力中使用了许可版本。在工作站上建立了一个初始信标。
然后,我们运行 ipconfig,执行快速端口扫描,识别另一个目标,并使用 psexec64 跳转/生成一个新信标。
从我们的 Azure Sentinel 工作区,我们点击“Hunting”导航窗格。有很多有趣的预打包查询可供使用。一旦我们有数据,狩猎应该会很有趣。
我用来查找 Cobalt Strike 活动的预打包查询是“最少见的父进程和子进程对”。
经过一些调查,我们发现了用于横向移动的命令:
- 使用 cmd 生成 ipconfig
- 使用 ipconfig 识别本地网络
- 使用 services 启动次要信标
- 使用 rundll32 生成额外信标(什么是操作安全?实验室中的操作安全是什么?)
当我们深入研究 Sentinel Hunting 查询时,还有其他有趣的 IoC。下一个窗口包括“PowerShell 下载”。这些肯定是从 PowerShell 提示符发出的非标准调用。
还有一个“编码命令”查询。
此查询还捕获了一些有趣的执行。
让我们总结一下。Azure Sentinel 可以根据定义的构造从我们的终端检索日志——这意味着,我们可以告诉 Sentinel 终端代理获取 Sysmon、安全、PowerShell 和 WMI 日志。这非常酷。
Sentinel To-Go 是开始学习 Sentinel 仪表板以及这些零碎部分如何组合在一起的好方法。像所有事情一样,其中一些查询可能会通过命名方案更改等方式被规避……但是,其中一些查询将很难避免。
继续狩猎、保护并保持安全。保重!
PS:这次狩猎花费了 1.53 美元。