使用Azure进行红队演练:利用Azure虚拟机构建C2基础设施
构建稳健的基础设施对红队操作的成功至关重要。云平台为红队成员提供了弹性、可扩展且易于部署的基础设施,使其能够高效运作的同时最小化暴露风险。
本指南将利用Microsoft Azure云平台构建C2基础设施,包括设置虚拟机作为命令控制服务器、安装Mythic C2框架,并配置Azure CDN重定向器以在与目标网络交互时隐藏C2流量。
本指南分为四个部分。第一部分将概述Azure平台以及如何创建后续用作C2服务器的虚拟机。
目录
- Azure入门
- Azure账户选项
- Azure订阅
- 导航Azure门户
- 创建Azure订阅
- 创建资源组
- 成本管理
- 启动虚拟机(VM)
- 连接到VM
- 原生SSH
- 使用Azure CLI进行SSH
- 资源
Azure入门
开始使用Azure的第一步是访问https://portal.azure.com/创建账户。首次登录门户时,通常会出现三种账户选项供选择:
Azure账户选项
- 开始Azure免费试用:此订阅在首30天内提供200美元免费额度用于Azure服务。
- 管理Microsoft Entra ID:此订阅前身为Azure Active Directory(Azure AD),是一种身份和访问管理(IAM)解决方案,允许用户管理用户身份并控制对其应用程序、数据和资源的访问。
- 访问学生福利:此订阅需要学生邮箱才能访问带有免费Azure额度的开发者工具。
我们将选择“开始Azure免费试用”免费服务,后续再升级。免费试用提供的200美元额度足以创建本实验系列所需的基础设施。
开始免费试用需要提供一些必要信息,如电子邮件地址和电话号码。电话号码用于账户验证目的。
此外,需要使用有效的信用卡验证身份。重要的是,Azure不接受虚拟或预付卡,因为这可能导致欺诈活动和不一致的计费。
试用结束后,将要求注册以下订阅之一以继续使用Azure服务。免费额度用完后不会自动收费。
Azure订阅
- 即用即付:允许用户按使用量支付Azure服务费用。这意味着按使用的资源计费,没有预付成本或终止费用。
- 企业协议(EA):允许组织承诺一定金额的支出并获得折扣费率。
导航Azure门户
完成注册过程后,将重定向到确认页面,显示“您已准备好开始使用Azure”。点击“转到Azure门户”后,将看到Azure服务,如图3所示。
要开始使用任何Azure服务,必须创建订阅,即使在试用期间也是如此。这将确保试用结束后,用户会被提示升级到前文提到的选项之一。
Azure订阅包括创建并与之关联的所有资源,如虚拟机(VM)、内容分发网络(CDN)和Active Directory(AD)服务。用户可以根据负担能力创建任意数量的订阅,但免费试用仅允许一个订阅。
创建Azure订阅
要创建新订阅,请导航到主仪表板,点击订阅图标,并提供订阅的名称和标签,如下所示。
标签就像可以附加到任何Azure服务的标签,帮助您管理和跟踪资源成本。它们也可搜索。虽然标签是可选的,但通常建议使用它们,因为这是一种良好实践。
创建后,可以点击查看更多详细信息,如订阅ID、状态(活动或禁用)、重命名选项以及与订阅下资源相关的成本。
创建资源组
设置订阅后,我们创建资源组。该组充当所有相关Azure资源(如虚拟机、数据库、CDN等)的容器。
我们可以为资源组指定任何名称,但建议使用清晰简洁的名称,如项目代码或名称,以便后续向客户计费时轻松跟踪运营费用。
要创建新资源组,只需在主仪表板或侧边菜单上点击“资源组”选项卡,然后点击“创建资源组”按钮。
在项目详细信息中,选择要添加资源的订阅,并提供组名,如red-ops。还需要选择资源托管区域。如果设置红队操作,建议使用与测试客户相同的区域。这样,我们操作产生的流量会混入其常规预期流量中。
💡重要的是,我们为此资源组创建的所有其他服务(如CDN和VM)必须与资源组位于同一区域。
接下来,添加标签,查看输入的信息,然后点击“查看 + 创建”。
成本管理
Azure中的计费部分提供与资源相关的使用情况和成本的详细信息。要跟踪Azure 200美元额度,请转到“成本管理 + 计费”并点击“摘要”。
启动虚拟机(VM)
要创建新虚拟机,请转到主仪表板,点击“虚拟机”,然后选择“Azure虚拟机”。如果使用免费账户,这可能适用于您的免费额度。确保在不使用时暂停VM以节省资金。
接下来,需要选择先前创建的订阅和资源组,“infrastructure”和“red-ops”。在实例详细信息部分,指定虚拟机的名称;我将其命名为“mythicC2”,因为它将作为Mythic C2框架的主机。
我们将保留可用性区域和安全类型的默认配置,分别为区域1和受信任启动。
要选择机器规格,可以选择具有8GB内存的标准选项;如果使用试用版,可用选项可能不同。
在管理员账户部分,需要选择SSH密钥进行身份验证,然后创建新的SSH密钥对,稍后可用于访问VM。
默认情况下,除端口22(SSH)外,所有入站连接都被阻止。
接下来,对于OS磁盘大小,我们将采用默认的30GB选项,不加密,因为当前测试不需要。
如果要使用加密,需要先在订阅上启用该功能。以下是Microsoft关于“主机级加密”文档的链接以获取更多信息。
对于网络接口,我们将保留允许SSH端口公开打开的默认配置。
管理部分也是如此;我保留了默认设置。管理部分处理VM配置,包括身份管理、备份配置和基于证书的身份验证。
此外,在监控部分,我没有更改默认设置。但是,您可以选择自定义警报规则以接收有关VM重要事件的通知。
此外,您可以使用其他功能,如诊断来排查启动故障,健康监控以确保基础设施的可用性和性能。
高级部分提供了超出基本配置的更全面选项和设置。它包括扩展,允许将其他软件模块添加到VM以提供特定功能;以及策略,为VM强制执行规则,如安全策略、资源分配限制和来宾配置限制。
由于我们不需要为VM修改此部分,可以继续下一部分。
为VM添加标签后,我们查看信息并点击“查看 + 创建”。然后输入电子邮件和电话号码以接收有关所创建资源的通知。
最后,将提示下载私钥,以便在部署后访问机器。
如下面的图21所示,我们的机器已部署并准备使用。
连接到VM
部署VM后,检查VM是否活动并点击“连接”。如果不活动,则启动VM。
连接仪表板根据VM的操作系统提供连接选项;在我们的案例中,我们有一个Ubuntu机器,可用选项是原生SSH或浏览器中的Azure CLI。
原生SSH
选择原生SSH选项时,侧边窗格将显示建立到VM的SSH连接所需的步骤和命令。第一步是确保防火墙规则中打开TCP/22端口,我们在创建VM时已允许。
下一步是使用命令chmod 400
更改私钥文件的权限。此命令将私钥文件的文件权限设置为仅所有者可读。
之后,您可以连接到机器。如果不熟悉SSH命令,可以简单粘贴SSH私钥的名称,它将生成访问机器所需的命令。
|
|
如下所示,我们成功SSH到机器。
使用Azure CLI进行SSH
第二个选项使用Azure CLI,这是Azure门户内基于浏览器的Shell。它预装了Azure CLI和其他工具,允许我们运行PowerShell和Bash命令。
首次连接时,验证过程可能需要几秒钟来准备一切。准备就绪后,将提示通过勾选复选框确认理解策略,然后点击“配置并连接”。
然后,将要求选择使用Bash还是Powershell Shell连接,并创建新存储。如下面的图26所示,我使用bash终端连接到VM。
我们已经到达今天文章的结尾。在本文中,我们涵盖了Microsoft Azure平台的基础知识并创建了虚拟机。
接下来,我们将重点设置和配置Mythic C2服务器,它作为我们红队操作的中央管理枢纽,以及实施Azure CDN重定向器以掩盖C2流量并保持隐蔽。