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