云中红队系列 | 使用 Azure FrontDoor 混淆 C2 基础设施

重定向器是充当 C2 服务器和目标网络之间中间人的服务器。其主要功能是重定向 C2 和受感染目标之间的所有通信。重定向器通常用于隐藏 C2 服务器流量的来源,使防御者更难以检测和阻止 C2 基础设施。

基于云的重定向器提供了一个很好的机会,通过内容分发网络 (CDN) 等全球服务器网络路由 C2 流量,从而掩盖 C2 流量。它们设置起来很简单,如果检测到 C2 通道,红队可以快速创建一个新的重定向器,而不用重建整个基础设施。

在本文,我们将讨论 Azure FrontDoor CDN 服务以及如何将其用作 C2 基础设施的重定向器。

重定向器设置

该设置涉及一个 CDN 重定向器,它通过端口 443 上的 HTTPS 与目标系统进行通信,并通过端口 80 上的 HTTP 在 CDN 和 C2 服务器之间进行通信,如图所示。

此设置可确保来自受感染系统的任何回调都不会直接发送至 C2 服务器,从而隐藏 C2 服务器的实际位置。

图片

先决条件

本节概述了设置 CDN 重定向器所需的关键步骤。这些步骤包括启用Microsoft.CDN提供程序和配置虚拟机防火墙规则。

启用Microsoft.CDN提供程序(Azure 试用版)

如果您当前正在使用 Azure 免费试用服务并想要创建 CDN 配置文件,则必须启用“Microsoft.CDN”提供商。

为此,请搜索您的订阅名称并选择它。导航到左侧菜单并选择“设置”下的“资源提供者” 。

图片

“资源提供商”部分中,搜索Microsoft.Cdn 。如果提供商未注册,您将看到状态为“未注册”。要注册提供商,请单击Microsoft.Cdn ,然后单击“注册”按钮。

图片

注册过程需要几秒钟才能完成。完成后,注册状态旁边将出现一个绿色复选标记。

图片

配置虚拟机防火墙规则

下一步是在托管 C2 服务器的虚拟机上设置防火墙规则。在本指南中,我使用 Azure 托管的虚拟机,并在其上部署了 Mythic C2 框架。

目标是打开端口 80 和 443 以与 CDN 端点和目标系统进行通信。如果你想继续,可以参考之前的文章:

•为 C2 基础设施部署 Azure VM[1]

•在 Azure VM 上安装 Mythic C2[2]

要添加新的防火墙规则,我们需要选择虚拟机,然后单击“网络”部分。目前,我们只添加了一 (1) 条规则,该规则适用于 SSH 的端口 22/TCP。我们将添加另外两 (2) 条规则;第一个将用于端口 80,第二个将用于端口 443。

图片

要创建新规则,请单击“添加入站端口规则”选项。在字段中,我们可以选择要允许入站流量的特定源 IP 地址。这可以是 CIDR 范围形式的 IP 地址范围,或者我们可以使用 Microsoft 服务标记选项,该选项具有代表 IP 地址类别的预定义标识符,例如我们将使用的 Azure FrontDoor 服务。

要设置 HTTP 端口 80 规则,我们将遵循以下配置,然后单击“添加”按钮添加新规则。

** Firewall Rule Configuration for HTTP port 80 **
Source: Service TagSource service tag: AzureFrontDoor.BackendSource port ranges: *Destination: AnyService: HTTPDestination port range: 80Protocol: TCPAction: AllowPriotiry: 310

图片

图片

按照相同的步骤在端口 443 上创建 HTTPS 规则。

** Firewall Rule Configuration for HTTPS port 443**
Source: Service TagSource service tag: AzureFrontDoor.BackendSource port ranges: *Destination: AnyService: HTTPSDestination port range: 443Protocol: TCPAction: AllowPriotiry: 320

图片

图片

完成设置后,我们应该添加三个规则:SSH、HTTP 和 HTTPS。其他规则是在创建 VM 时为负载均衡器和虚拟网络自动生成的。

图片

💡 Microsoft 在其网站上以名为“ServiceTags_Public.json ”的 JSON 文件发布其 Azure IP 范围和服务标签。该文件包含 Public Azure 整体的 IPv4 地址范围,按区域和服务划分。该文件每周更新一次。

图片

配置 Azure Front Door CDN 端点

Microsoft Azure 上有多个可用的 CDN 选项。这些选项的功能有所不同,例如 Web 应用程序防火墙 (WAF)、专用链接、Microsoft 威胁情报和安全分析等附加安全功能。每个选项的定价也有所不同。

为了实现我们的目标,我们将使用 Azure Front Door 产品并选择“快速创建”选项。要创建新的 CDN,请在 Azure 搜索栏中键入 CDN,然后选择“Front Door and CDN profiles”。

图片

在 CDN 仪表板部分中,我们单击“创建”以添加新的 CDN。此仪表板用于列出所有活动的 CDN。

图片

接下来,单击可用产品中的Azure Front Door快速创建,然后单击继续

图片

在 Azure Front Door 配置文件中,我们选择之前创建的订阅和资源组“基础结构”和“red-ops”。之后,命名 CDN 并选择 Tier;我们将其默认设置为“标准”。Tier是指确定检索内容的成本和访问延迟的 Azure 服务功能。

图片

要为 CDN 创建端点,请选中该框并创建一个唯一的名称。设置 CDN 时客户端将看到并连接到此端点。

将 CDN 命名为看起来合法且符合客户常规预期请求的名称非常重要。避免使用粗略的名称,例如“c2基础设施”或“redops”。相反,如果客户从事酒店行业,则将其命名为“availabilitycalendar”或“reservation-api”;如果客户是航空公司,则将其命名为“destinations”或“book-flight”。默认情况下,CDN 的 URL 格式将遵循 {endpoint-name-randomString}.azurefd.net ,但您也可以配置自定义域名。我们将在以后的文章中讨论它。

reservation-api-cqf6eva8a7efdvhp.z02.azurefd.net

图片

Azure 根据需要提供各种Origin 类型选项。以下是常见的:

存储(静态网站)适用于存储在 Azure 存储帐户(Blob、文件、容器)中的内容。

云服务适用于 Azure 云服务。

Web App适用于 Web 应用程序和 API。

自定义源适用于 Azure 或其他地方托管的任何其他可公开访问的源 Web 服务器。

公共IP地址。

在本文中,我们将使用其公共 IP 地址来创建的 Azure VM。另一方面,主机名是虚拟机的名称。

为了防止 C2 payload失败,我们确保取消选中“缓存”选项。如果查询字符串被调用两次,启用缓存可能会导致负载在 CDN 级别被缓存,这可能会导致失败。

对于WAF策略,保留为默认值。

图片

接下来,我们将标签添加到 CDN 配置文件中,然后单击Review + Create 。标签就像可以附加到任何 Azure 服务的标签,以帮助你管理和跟踪资源成本。

图片

然后,检查输入的信息并单击“创建” 。部署 CDN 后,您将看到“您的部署已完成”消息。单击“转到资源” 。

图片

访问端点

在新创建的 CDN 配置文件中,端点“reservation-api”已成功启用和配置。我们将对路线始发地组进行一些更改以实现我们的目标。

图片

路由选项配置

在重定向器设置图中,我们提到客户端到 Azure CDN 的通信是通过端口 443 上的 HTTPS 进行的。原因是 Azure CDN 重定向器需要使用 SSL 进行加密流量。另一方面,CDN通过端口80上的HTTP与C2服务器通信。

图片

现在我们已经创建了 CDN,客户端将在端口 443 上与其通信。但是,为了使 CDN 能够在端口 80 上与 C2 服务器通信,我们需要更新端点的路由设置。

为此,请单击“默认路由”,将转发协议从仅 HTTPS更改为仅 HTTP ,然后单击“更新”

图片

来源组配置

源是从Front Door接收传入请求的服务器。default-origin-group是一组特定的源,用作传送内容的主要源。这是当用户请求内容时 CDN 将尝试联系第一组源。对于我们的重定向器,我们在default-origin-group中有 Azure VM。

图片

在本节中,除了取消选中“Session Affinity”和“Health Probes”选项并单击“Update”按钮之外,我们不会修改任何内容。

图片

图片

💡 Session affinity是一项功能,可确保来自特定用户的请求一致定向到同一后端服务器或实例。如果禁用此功能,传入请求将随机定向到任何可用的后端服务器,而无需在整个客户端会话中保持与特定服务器的一致连接。

💡 禁用健康检查有助于减少 CDN 和 C2 服务器之间的额外流量。

CDN 端点

配置过程完成后,您在尝试通过 Curl 或 Web 浏览器访问端点时可能会遇到 405 HTTP 响应,其中包含一条错误消息,指出“我们的服务现在不可用”。发生这种情况是因为需要建立 HTTP 请求的规则。

然而,对于我们的重定向器目标,我们不需要它。payload将正常连接到 CDN 端点并进行回连。

图片

curl -I https://reservation-api-e7fdfyc9cnfvbgc5.z02.azurefd.net
HTTP/2 405content-length: 22content-type: text/plainx-cache: CONFIG_NOCACHEx-azure-ref: 0yiagZQAAAADpHDPiaxzxRLySP35acrwwTU5aMjIxMDYwNjEyMDM1ADk3ODhmMGY3LWQyNGEtNDMwYi04MTRhLWZkYjFlZGQ5MWI4MA==date: Thu, 11 Jan 2024 17:35:06 GMT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1550887.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Mixture-of-Experts (MoE): 条件计算的诞生与崛起【下篇】

将 Mixture-of-Experts 应用于 Transformers 既然我们已经研究了条件计算的早期工作,那么我们就可以看看 MoE 在变换器架构中的一些应用。 如今,基于 MoE 的 LLM 架构(如 Mixtral [13] 或 Grok)已广受欢迎,但 MoE 在语…

Python | Leetcode Python题解之第447题回旋镖的数量

题目: 题解: class Solution:def numberOfBoomerangs(self, points: List[List[int]]) -> int:ans 0for p in points:cnt defaultdict(int)for q in points:dis (p[0] - q[0]) * (p[0] - q[0]) (p[1] - q[1]) * (p[1] - q[1])cnt[dis] 1for m i…

GitHub下载MY-SITE

1、GitHub下载my-site 解压 打开项目 ApiOperation swagger日志的 七牛云-云平台 dao和model统称为pojo--实体类 删除docker 2、创建数据库 执行sql 3、链接数据库 扫描dao曾的包 46、鸡汤分析开源项目_哔哩哔哩_bilibili 修改yaml 启动 http://localhost:8089/a…

大数据开发--1.1大数据概论

目录 一.大数据的概念 什么是大数据? 二. 大数据的特点 三. 大数据应用场景 四. 大数据分析业务步骤 大数据分析的业务流程: 五.大数据职业规划 职业方向 岗位技术要求 六. 大数据学习路线 一.大数据的概念 什么是大数据? 数据 世界…

Vue3阶段前置知识

目录 1.数组元素操作 2.对象的操作 3.变量和常量 4.模版字符串 4.1模版和普通的比较 4.2优点一的对比 4.3优点二的对比 5.对象的取值 5.1两个取值方法 5.2对象的简写 6.解构赋值 6.1数组的解构 6.2对象的解构 6.3二重解构 7.箭头函数 7.1函数总结 7.2三个特性 …

数学建模--什么是数学建模?数学建模应该怎么准备?

前言 这是去年底学数学建模老哥的建模课程笔记;未来本人将陆陆续续的更新数学建模相关的一些基础算法,大家可以持续关注一下;提示:数学建模只有实战才能提升,光学算法没有啥意义,也很难学的很懂。 文章目录…

项目学习笔记

Downloads – Oracle VirtualBoxhttps://www.virtualbox.org/wiki/Downloads

初识C语言(四)

目录 前言 十一、常见关键字(补充) (1)register —寄存器 (2)typedef类型重命名 (3)static静态的 1、修饰局部变量 2、修饰全局变量 3、修饰函数 十二、#define定义常量和宏…

通过人工智能AI大模型定制的完美旅游行程

人工智能在购票与乘车体验优化方面发挥着重要作用,通过智能技术的应用,不仅提升了购票效率,还改善了乘车体验。以下是人工智能赋能购票与乘车体验优化的具体表现: 一、购票体验优化 智能推荐系统: 购票平台如12306利…

《深度学习》OpenCV 指纹验证、识别

目录 一、指纹验证 1、什么是指纹验证 2、步骤 1)图像采集 2)图像预处理 3)特征提取 4)特征匹配 5)相似度比较 6)结果输出 二、案例实现 1、完整代码 2、实现结果 调试模式: 三、…

06.C/C++内存管理

在这里C的内存管理相较于C作出了许多升级,下面我们就来了解一下。 1.C/C内存分布 我们先来看一下下面的问题,温习一下C的内存分布 int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1…

Matlab进阶绘图第70期—正负面积图

正负面积图是指通过一条水平线将一条曲线分割为上下两部分,并分别填充不同的颜色,用以表示不同的类别属性。 由于Matlab中未收录的正负面积图的绘制方法,因此需要大家自行解决。 本文利用自己制作的PNarea工具,进行正负面积图的…

《程序猿之Redis缓存实战 · Redis 与数据库一致性》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

【Android 源码分析】Activity短暂的一生 -- 目录篇 (持续更新)

1. 前言 忽然有一天,我想要做一件事:去代码中去验证那些曾经被“灌输”的理论。                                                                                  …

springboot厨房达人美食分享平台(源码+文档+调试+答疑)

文章目录 前言一、主要技术?二、项目内容1.整体介绍(示范)2.运行截图3.部分代码介绍 总结更多项目 前言 厨房达人美食分享平台的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品&#xff0c…

【车载开发系列】ParaSoft单元测试环境配置(四)

【车载开发系列】ParaSoft单元测试环境配置(四) 【车载开发系列】ParaSoft单元测试环境配置(四) 【车载开发系列】ParaSoft单元测试环境配置(四)一. 如何设置过滤二. 如何设置静态扫描的规则三. 如何设置单…

Linux操作系统中Redis

1、什么是Redis Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 可以理解成一个大容量的map。…

IPS和IDS分别适用于哪些网络环境和安全需求

IPS即入侵防御系统和IDS即入侵检测系统是网络安全中的重要工具。 IPS适用于企业内部网络、数据中心以及云环境等网络环境中。 在企业内部网络中,特别是关键业务系统和数据中心的防护。IPS能够实时监控网络流量、识别和阻止潜在的恶意攻击,如DDoS攻击、SQ…

针对考研的C语言学习(定制化快速掌握重点5)

顺序表 特点: 写代码主要就是增删改查!!! 写代码的边界性非常重要以及考研插入和删除的位置都是从1开始,而数组下标是从0开始 【注】下标和位置的关系 线性表最重要的是插入和删除会涉及边界问题以及判断是否合法 …

nginx的安装和使用

源码安装 1.环境准备:卸载其他方式安装的web应用,防止端口冲突 2.下载nginx源码包 wget https://nginx.org/download/nginx-1.20.2.tar.gz 3.源码编译安装 yum install -y gcc pcre-devel zlib-devel #安装依赖包 useradd -M -s /sbin/nologin ngi…