云中红队系列 | 使用 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Map: 地图

对全国2023年各省市的人口分布情况,做出地图展示效果 参考:Map - Map_base - Document (pyecharts.org) 1、模板 # -*- coding: gbk -*- from pyecharts import options as opts from pyecharts.charts import Map from pyecharts.faker import Faker…

SQL Inject-基于报错的信息获取

常用的用来报错的函数 updatexml() : 函数是MYSQL对XML文档数据进行查询和修改的XPATH函数。 extractvalue(): 函数也是MYSQL对XML文档数据进行查询的XPATH函数。 floor(): MYSQL中用来取整的函数。 思路: 在MySQL中使用一些指定的函数来制造报错&am…

【Python】Hypercorn:轻量级的异步ASGI/WSGI服务器

Hypercorn 是一个支持异步 ASGI 和同步 WSGI 应用的高效 Python 服务器。它结合了现代协议支持(包括 HTTP/1、HTTP/2 和 HTTP/3),并且为异步 Web 框架(如 FastAPI 和 Quart)提供了卓越的性能和灵活性。通过 Hypercorn&…

MySQL联合索引、索引下推Demo

1.联合索引 测试SQL语句如下:表test中共有4个字段(id, a, b, c),id为主键 drop table test;#建表 create table test(id bigint primary key auto_increment,a int,b int,c int )#表中插入数据 insert into test(a, b, c) values(1,2,3),(2,3,4),(4,5,…

云服务器部署k8s需要什么配置?

云服务器部署k8s需要什么配置?云服务器部署K8s需要至少2核CPU、4GB内存、50GBSSD存储的主节点用于管理集群,工作节点建议至少2核CPU、2GB内存、20GBSSD。还需安装Docker,选择兼容的Kubernetes版本,配置网络插件,以及确…

【黑马点评】 使用RabbitMQ实现消息队列——1.Docker与RabbitMQ环境安装

黑马点评中,使用基于Redis的Stream实现消息队列,但是Strema已经不太常用。在此修改为使用RabbitMQ实现消息队列。主要包括RabbitMQ的环境准备(Docker的下载与安装)以及如何修改黑马点评中的代码。 【黑马点评】使用RabbitMQ实现消…

《Linux从小白到高手》理论篇:Linux的资源监控管理

本篇介绍Linux的资源监控管理。 1、CPU 资源管理 进程调度: Linux 采用公平的进程调度算法,确保每个进程都能获得合理的 CPU 时间。调度算法会根据进程的优先级、等待时间等因素来决定哪个进程获得 CPU 使用权。 可以通过调整进程的优先级来影响其获得…

基于SpringBoot+Vue+MySQL的校园二手物品交易系统

系统展示 用户前台界面 管理员后台界面 系统背景 校园二手物品交易系统开发的背景与重要性随着高等教育的蓬勃发展,大学生群体的规模持续扩大,随之而来的是物品更新换代速度的显著加快。学生们在追求新潮、高品质生活的同时,往往会产生大量闲…

多文件并发多线程MD5工具(相对快速的MD5一批文件),适配自定义MD5 Hash I/O缓存。

自己写的多文件 MD5校验工具,一个文件开一个线程,有最大I/O 缓存设置,兼容读写MD5后缀文件。 共计91个文件,合计180G左右 12分钟左右,UI基本卡废,但程序没蹦,属于正常。 卡的原因是基本是用 I/O…

手机使用技巧:8 个 Android 锁屏移除工具 [解锁 Android]

有时候,您会被锁定在自己的 Android 设备之外,而且似乎不可能重新进入。 一个例子就是你买了一部二手手机,后来发现无法使用。另一种情况是你忘记了屏幕锁定密码和用于验证密码的 Google 帐户凭据。这种情况很少见,但确实会发生&…

[uni-app]小兔鲜-07订单+支付

订单模块 基本信息渲染 import type { OrderState } from /services/constants import type { AddressItem } from ./address import type { PageParams } from /types/global/** 获取预付订单 返回信息 */ export type OrderPreResult {/** 商品集合 [ 商品信息 ] */goods: …

MongoDB 数据库服务搭建(单机)

下载地址 下载测试数据 作者:程序那点事儿 日期:2023/02/15 02:16 进入下载页,选择版本后,右键Download复制连接地址 下载安装包 ​ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.14.tgz​ …

java计算机毕设课设—推箱子游戏(附源码、文章、相关截图、部署视频)

这是什么系统? 基于JAVA的推箱子游戏是一个经典的益智游戏,旨在通过推动箱子到指定位置来锻炼玩家的思维和策略能力。本游戏提供了多种不同难度的关卡,以满足不同玩家的需求。整个程序包括五个主要模块:初始化模块、画图模块、移…

如何使用ssm实现基于SSM的宠物服务平台的设计与实现+vue

TOC ssm779基于SSM的宠物服务平台的设计与实现vue 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化&#x…

中九无科研无竞赛保研经验帖——上交软院、中科大计算机、复旦工程硕、南大工程硕、浙大软件

本人bg: 学校:中九软件工程rk:夏令营5%,预推免3%(都是写的预估排名)六级:480, 四级:540科研:无竞赛:美赛M,以及水赛国三、省二若干 保研前期没有…

【第三版 系统集成项目管理工程师】第15章 组织保障

持续更新。。。。。。。。。。。。。。。 【第三版】第十五章 组织保障 15.1信息和文档管理15.1.1 信息和文档1.信息系统信息-P5462.信息系统文档-P546 15.1.2 信息(文档)管理规则和方法1.信息(文档)编制规范-P5472.信息(文档)定级保护-P5483.信息(文档)配置管理-P549练习 15.…

STM32三种启动模式:【详细讲解】

STM32在上电后,从那里启动是由BOOT0和BOOT1引脚的电平决定的,如下表: BOOT模式选引脚启动模式BOOT0BOOT1X0主Flash启动01系统存储器启动11内置SRAM启动 BOOT 引脚的值在重置后 SYSCLK 的第四个上升沿时被锁定。在重置后,由用户决定是如何设…

加密与安全_HOTP一次性密码生成算法

文章目录 HOTP 的基础原理HOTP 的工作流程HOTP 的应用场景HOTP 的安全性安全性增强措施Code生成HOTP可配置项校验HOTP可拓展功能计数器(counter)计数器在客户端和服务端的作用计数器的同步机制客户端和服务端中的计数器表现服务端如何处理计数器不同步计…

数据链路层 ——MAC

目录 MAC帧协议 mac地址 以太网帧格式 ARP协议 ARP报文格式​编辑 RARP 其他的网络服务或者协议 DNS ICMP协议 ping traceroute NAT技术 代理服务器 网络层负责规划转发路线,而链路层负责在网络节点之间的转发,也就是"一跳"的具体传输…

R语言的下载、安装及环境配置(RstudioVSCode)

0x01 R语言篇 一、软件介绍 R for Windows是一个免费的用于统计计算和统计制图的优秀工具,是R语言开发工具。它拥有数据存储和处理系统、数组运算工具(其向量、矩阵运算方面功能尤其强大)、完整连贯的统计分析工具、优秀的统计制图等功能。…