云中红队系列 | 使用 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.mzph.cn/diannao/55481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓使用memtester进行内存压力测试

memteser简介 memtester 是一个用于测试内存可靠性的工具。 它可以对计算机的内存进行压力测试,以检测内存中的错误,例如位翻转、随机存取错误等。memtester 可以在不同的操作系统上运行,并且可以针对不同大小的内存进行测试。 下载源码 m…

[单master节点k8s部署]29.Istio流量管理(五)

测试istio熔断管理。 采用httpbin镜像和fortio镜像,其中httpbin作为服务端,fortio是请求端。这两个的配置yaml文件都在istio的samples/httpbin目录下,fortio的配置文件在samples-client目录下。 [rootmaster httpbin]# ls gateway-api ht…

国外电商系统开发-运维系统执行设备属性

为了方便使用,开发了双击网络设备图标,就进入交互式命令终端,在这里您可以执行如cd,top,ping这样的交互命令,但仍然不支持部分交互命令,比如vim等。 您可以双击设备图标,或者是右键&…

如何从计算机的硬盘中恢复照片 - 成功

如何从计算机硬盘恢复图片? 与所有电子和机械设备一样,硬盘驱动器也可能由于任何原因而死机。如果您的系统硬盘驱动器已停止工作或在启动系统时听到振动声,则它有可能已死机。如果是这样的话,上面的数据呢? 不要惊慌…

Python使用matplotlib绘制图形大全(曲线图、条形图、饼图等)

matplotlib 的主要组成部分是 pyplot,它是一个类似于 MATLAB 的绘图框架。pyplot 提供了一个 MATLAB 式的接口,可以隐式地创建图形和轴,使得绘图变得简单。 以下是一个简单的 matplotlib 使用示例,用于绘制一条简单的折线图&…

高考选择在何方?揭秘空军、海军、民航三大招飞神秘机遇

空军招飞、海军招飞和民航招飞在全国普通高校招生体系中举足轻重,为国家培育众多优秀飞行人才。 空军招飞在国家多部门领导下,由空军与相关省(区)教育、公安部门组织实施,设有七个招飞中心。自 1987 年空军自主招飞以来…

28 基于51单片机的两路电压检测(ADC0808)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,通过ADC0808获取两路电压,通过LCD1602显示 二、硬件资源 基于KEIL5编写C代码,PROTEUS8.15进行仿真,全部资源在页尾,提供…

springboot中配置优先级

先来看在idea当中运行程序时,如何来指定Java系统属性和命令行参数。 系统属性 1、右键启动类,点击Edit Configuration 点击Modify options 选择Add VM options,就是系统属性 选择Program arguements,就是命令行参数 总结&#…

OpenAI 开发者大会!实时语音功能有API了,GPT-4o支持多模态微调,上下文cache功能上线

家人们!十一假期第1天, OpenAI一年一度的开发者大会又来了惹!今年的开发者大会分成三部分分别在美国、英国、新加坡三个地点举办,刚刚结束的是第一场。 去年的OpenAI开发者大会公布了GPT-4 Turbo和GPTs,今年没有大更新…

win10不想被强制更新win11怎么办?

还有一种办法是可以去联想官网下载一个工具,确实可行但是不能访问联想商店了,不过会限制一些微软游戏,比如我喜欢的腐烂国度2,所以我选择了这一种方式,亲测可行

外贸网站怎么搭建对谷歌seo比较好?

外贸网站怎么搭建对谷歌seo比较好?搭建一个网站自然不复杂,但要想搭建一个符合谷歌seo规范的网站,那就要多注意了,你的网站做的再酷炫,再花里胡哨,但如果页面都是js代码,或者页面没有源代码内容…

认识动态规划算法和实践(java)

前言 动态规划算法里面最有意思的一个东西之一。动态规划初学肯定会有一定晦涩难懂。如果我们去网上搜索,动态规划的资料,它一开始都是将很多的理论,导致会认为很难,但是这个东西实际上是有套路的。 动态规划的英语是Dynamic Pr…

Centos Stream 9备份与恢复、实体小主机安装PVE系统、PVE安装Centos Stream 9

最近折腾小主机,搭建项目环境,记录相关步骤 数据无价,丢失难复 1. Centos Stream 9备份与恢复 1.1 系统备份 root权限用户执行进入根目录: cd /第一种方式备份命令: tar cvpzf backup.tgz / --exclude/proc --exclu…

sentinel原理源码分析系列(一)-总述

背景 微服务是目前java主流开发架构,微服务架构技术栈有,服务注册中心,网关,熔断限流,服务同学,配置中心等组件,其中,熔断限流主要3个功能特性,限流,熔断&…

【Kubernetes】常见面试题汇总(五十二)

目录 116. K8S 集群服务暴露失败? 117.外网无法访问 K8S 集群提供的服务? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目 69-…

社群团购中的用户黏性价值:以开源小程序多商户AI智能名片商城源码为例

摘要:本文探讨社群团购中的用户黏性价值,分析其与传统团购网站的区别,并阐述开源小程序多商户AI智能名片商城源码在增强社群团购用户黏性方面可能发挥的作用。 一、引言 在当今的商业环境中,社群团购逐渐成为一种重要的营销模式。…

如何设计能吸引下载的截图以及注意事项

应用商店优化包括两个方面:关键字优化(吸引人们查看您的应用页面)和屏幕截图优化(将浏览量转化为下载量)。两者相互依存,两者相辅相成,让您的应用获得应有的下载量。但是,如果浏览量…

Windows平台如何实现RTSP|RTMP流录像?

好多开发者使用场景,除了实现基础的低延迟RTSP、RTMP播放外,还需要实现RTSP、RTMP流数据的本地录像功能。本文以大牛直播SDK的Windows平台播放模块为例,介绍下如何实现RTSP、RTMP流录像。 功能设计 [拉流]支持拉取RTSP流录像; [拉…

rockylinux9安装软件报错

1、rocky linux9再安装软件的时候报错: [rootClient119 yum.repos.d]# yum -y install epel-release [rootClient119 yum.repos.d]# yum -y install libcgroup Extra Packages for Enterprise Linux 9 - x86_64 …

allegro精确画圆形边框

1.显示原点位置: 2.class-subclass依次选择Board Geometry-Outline 3.菜单ADD---Circle,右侧option,依次设置如下,如图可设置为圆心(0,0),半径为42mm的边框,不要忘了右键Done,完成绘…