当前位置: 首页 > news >正文

【溯源反制】CDN域前置云函数-流量分析|溯源

文章目录

  • CDN隐藏C2地址
    • 环境搭建
    • 上传至威胁感知平台直接分析
    • 使用DNSQuerySniffer和Process Monitor定位进程
    • 网络流量分析
    • 文件属性(IDAPro Ollydbg)
  • 域前置隐藏
    • 环境搭建
    • 威胁感知
    • 流量分析
  • 云服务API网关/云函数
    • 云函数使用HTTP
      • cs的流量可以简单的分为三个阶段
    • 云函数使用HTTPS
  • 总结
  • 参考

CDN隐藏C2地址

使用CDN内容分发网络的多节点分布式技术,通过“加速、代理、缓存”隐藏在后面的静态文件或服务;最终实现对外暴露的是CDN多节点的公网域名IP,很难甚至无法溯源真实后端服务器的域名或IP

环境搭建

直接搭建环境模拟环境(未免杀)
在这里插入图片描述在这里插入图片描述

先上传至奇安信与微步在线,全程CS正常开启

上传至威胁感知平台直接分析

在这里插入图片描述
微步在线
在这里插入图片描述
这里的api/x路径是我在CS配置文件profile中做的混淆(可以自定义,不算是特征)
在这里插入图片描述

使用DNSQuerySniffer和Process Monitor定位进程

在这里插入图片描述
在这里插入图片描述

网络流量分析

在这里插入图片描述
一个一个数据包翻找确实难受,再加上是HTTPS流量,配合HIDS等设备导入数据包分析起来可能更好一些

文件属性(IDAPro Ollydbg)

……

缺点
1、受控主机通过我们自己的域名进行回连,对外还是可以看到连接域名(下一步就是找到CDN后的真实IP),域名会暴露

子域名、IP历史记录解析查询、网站订阅邮件、网站订阅邮件、国外超级ping、https证书……

如果使用国内CDN服务,域名必须ICP备案(被溯源的可能性就会更大),关键是使用一个不备案的域名,否则这个方式毫无用处
2、受控主机还是通过我们自己的域名进行回连,对外还是能看到连接域名;且如果使用国内CDN的服务(增加了风险),域名就必须完成ICP备案(增加了风险);而且还有一些方法可能溯源到真实IP

这种技术对http与https没有强制要求,都可以使用,而域前置技术要求是https

域前置隐藏

底层技术还是CDN,但是我们使用了其他正规可靠的域名进行连接(比如:www.baidu.com),通过设置HOST=zh.wikisoft.tk修改host头的原理,让CDN将连接指向我们期望的C2服务器;最终实现受控主机通过回连!如果使用https的话,除非逆向程序获取host头信息,否则无法获取到真实连接域名

环境搭建

搭建小插曲:把433端口看成了443 emmm
在这里插入图片描述

威胁感知

在这里插入图片描述
这里简单进行执行命令,配合一下沙盒动态调试,实战情况下对木马进行反沙盒反调试(免杀)操作之后,威胁感知平台是很难分析出来的,这里只对域前置进行研究,排查其他因素干扰
奇安信:
在这里插入图片描述
直接只看到了伪造的域名,不过有经验的话可以通过w.kunlunaq.com后缀名可以知道这是阿里云cdn CNAME配置后缀
在这里插入图片描述

微步在线
在这里插入图片描述
微步NB!这里测试了几种样本,差不多都可以找到最终的CS服务器域名
在这里插入图片描述
这里做了命令交互所以很快就找到了真实CS服务器地址

流量分析

在这里插入图片描述
这里可以看到,连外联域名也发生了更改

优点:本方案使用高信誉域名进行连接,通常安全设备很难检测,也很难封堵;
缺点:配置和准备条件较多步骤比较复杂,国内好像只有阿里云支持域前置,建议还是使用国外的cdn服务,不需要备案,再加上免杀的话效果可能更好一些

云服务API网关/云函数

api网关透明转发代理后端服务!;云函数底层使用的就是api网关,只是云函数的功能更高级一点,当client调用网关接口时,通过编程进行修改输入参数;同理api网关接受到代理的后台服务返回的内容是可以再次修改返回内容,最终将信息返回给client;

云函数使用HTTP

在这里插入图片描述
使用科来工具抓包
在这里插入图片描述
为了方便分析,这里可以看到我是使用http上线的。稍后使用https协议上线

cs的流量可以简单的分为三个阶段

1、stage下载(具体看你怎么生成的后门)
在这里插入图片描述
在这里插入图片描述
对比服务端配置的profile文件,以及返回包的乱码数据
这里的返回header部分具有一些云函数特征

X-Api-RequestId: xxx
X-Api-ID: xxx
Date: Wed, 19 Apr 2023 04:16:48 GMT
X-Request-Id: xxx
X-Api-FuncName: helloworld-xxx	 #函数名 建议伪装成熟悉的业务名
X-Api-AppId: xxx
X-Api-ServiceId: service-ausqwb41
X-Api-HttpHost: xxx
X-Api-Status: 200
X-Api-UpstreamStatus: 200

2、beacon的心跳包阶段
3、执行C2服务器的命令并将结果回传阶段
……

云函数使用HTTPS

在这里插入图片描述
在这里插入图片描述
好像真没有特别好的应对措施……

批量上线消耗对方云函数调用资源
在这里插入图片描述

关于溯源如果可以的话,可以联系腾讯云客服配合调查

优点:本方案使用高信誉域名进行连接,通常安全设备很难检测,也很难封堵;

总结

1、不备案的域名+禁用不必要的域名解析记录(防止被溯源收集到更多信息)
2、使用HTTPS通讯
3、C2服务器混淆基础特征-修改profile配置文件,修改ssl证书
4、CS服务端防火墙做策略,仅允许目标主机网段连接,防止其他网段主机对其进行扫描,防溯源
5、加跳板、代理等,当然最重要的是免杀了……

参考

https://www.freebuf.com/sectool/270669.html
https://xz.aliyun.com/t/11625

相关文章:

【溯源反制】CDN域前置云函数-流量分析|溯源

文章目录 CDN隐藏C2地址环境搭建上传至威胁感知平台直接分析使用DNSQuerySniffer和Process Monitor定位进程网络流量分析文件属性(IDAPro Ollydbg) 域前置隐藏环境搭建威胁感知流量分析 云服务API网关/云函数云函数使用HTTPcs的流量可以简单的分为三个阶段 云函数使用HTTPS 总结…...

【Vue】学习笔记-全局事件总线

全局事件总线(GlobalEventBus) 一种可以在任意组件通信的方式,本质上就是一个对象,它必须满足以下条件 所有的组件对象都必须能看见他这个对象必须能够使用$ on $ emit $ off方法取绑定、触发和解绑事件 使用步骤 定义全局事件总线 //创建VUE new V…...

MATLAB数值运算(六)

目录 实验目的 实验内容 原创代码,仅供参考,不要直接CV呀 ~_~ 实验目的 1)掌握定义符号对象和创建符号表达式的方法; 2)掌握符号运算基本命令和规则; 3)掌握符号表达式的运算法则以及符号矩阵…...

某医院Pad网络故障分析

分析背景 某医院为了加强信息安全管理,防止病人隐私信息泄露,采用部署“零信任”安全架构设计理念的企业移动安全支撑平台方案。 但在部署前期测试时,遇到了严重的性能问题。 在本次测试环境中,通过PAD访问患者转运业务&#x…...

git 撤销中间某次提交,保留其他提交的方法

今天上班脑抽了,吧test直接合到了uat,因为项目近期就我一个人开发,自己拉个三个分支再改不同的东西,最后都是发到test分支发测试,发生产的时候一个个和嫌麻烦,直接吧test分支怼到了uat,结果生产就出问题了&…...

空中下载技术(OTA)电控信息安全

随着汽车电子控制系统功能复杂度和数据颗粒度呈阶梯式增加,其发展速度逐渐超越网络安全防护方法、技术和标准的发展,现阶段汽车电子正面临巨大的网络信息安全风险,对功能安全的潜在影响也仍在探索和解决中,信息安全问题已经成为影…...

数据库sql语句(count(*)和count(字段))

例题: 创建如下两张表 分别命名为books和persons (1)按照书名,姓名的顺序列出字里包含‘德’字的人物的姓名,书名和字。 select name 姓名,bookname 书名,style 字 from books,persons where style like %德% and bo…...

短视频矩阵源码系统

短视频矩阵源码系统开发要则: 1. 需求分析:对短视频平台的需求进行全面分析,确立系统开发目标和方向。 2. 技术选型:选用最适合的技术开发短视频矩阵系统,如前端框架、数据库、服务器等。 3. 系统设计:按…...

检测数据类型

//typeof() 对于基本数据类型没问题,遇到引用数据类型不管用 console.log(typeof 666) //number console.log(typeof [1,2,3]) //object //instanceof() 只能判断引用数据类型,不能判断基本数据类型 console.log( [] instanceof Array) //true …...

【2023春招】4399 web后台-Java后端开发

目录 一、JVM1.类加载过程2.static和final变量的初始化时机 二、依赖1.Spring Boot 自动装配2.使用依赖过程中遇到问题如何排查3.引入的某个依赖不符合预期,如何处理 三、数据库:1.InnoDB 和 MyISAM 索引的区别2.字符串类型字段,WHERE 数字&a…...

干货分享:PCB防静电设计的必要性

平时通过走路穿衣等日常活动带来的摩擦,会产生不同幅值的静电电压,但其能量很小不会对人体产生伤害,不过对于电子元器件来说,这种静电能量却是不能忽视的。 在干燥的环境下,人体静电(ESD)的电压…...

电脑压缩包文件不见了怎么办?2种办法轻松找回电脑丢失文件!

一般情况下,为了节省磁盘空间或者传送文件时能够更快点,我们都会选择把文件进行压缩,这样会更加方便。 但时间一长,由于各种各样的原因,比如: 清理积累下来的压缩包时不小心把需要的压缩文件删除了&#x…...

如何申请gpt4.0-如何接入ChatGPT4

如何接入ChatGPT4 ChatGPT-4是OpenAI公司推出的最新自然语言处理技术,采用深度学习算法,旨在提供更加高效、准确的人工智能语言处理能力。如果您想要接入ChatGPT-4,您可以按照以下步骤: 注册OpenAI账号并申请API密钥:…...

设计模式-备忘录模式

备忘录模式 文章目录 备忘录模式什么是备忘录模式为什么要用备忘录模式如何使用备忘录模式总结 什么是备忘录模式 在不违背封装原则的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便之后恢复对象为先前的状态。   在我看来…...

阿里、京东等大厂年薪50w的测试都是什么水平?

各位做测试的朋友,但凡经历过几次面试,那么你一定曾被问到过以下问题: 1、在Linux环境下,怎么执行web自动化测试? 2、Shell如何,Docker熟悉吗? 3、全链路的压测实操过吗,如何推进与开…...

Java PECS(Producer Extends Consumer Super)原则

在看 Alibaba 开发手册时遇到 PECS 原则,刚开始阅读时感觉比较绕,也搜索了一些博文参考,个人觉得 Stackoverflow 的这篇文章比较实用 —— What is PECS (Producer Extends Consumer Super)? 后面结合 JDK 源码梳理了下 // java/util/List…...

Learn RabbitMQ with SpringBoot

文章目录 What is RabbitMQ?RabbitMQ Core conceptRabbitMQ ArchitectureInstall and setup RabbitMQ using DockerExplore RabbitMQ using management UICreate and setup Springboot3 project in intellijSpringboot and RabbitMQ Basic MessageConnection between Springbo…...

定时器 POSIX Timer定时器和setitimer定时器

POSIX 可移植 POSIX:可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX 。 POSIX Timer C API 总结POSIX系统的C标准库: 函数描述clock_settime()通过指定Value设置clock的分辨率clock_gettime()…...

DeSD:用于3D医学图像分割的深度自蒸馏自监督学习

文章目录 DeSD: Self-Supervised Learning with Deep Self-Distillation for 3D Medical Image Segmentation摘要本文方法Deep Self-DistillationDownstream Transfer Learning 实验结果 DeSD: Self-Supervised Learning with Deep Self-Distillation for 3D Medical Image Seg…...

MySQL数据库——MySQL创建触发器(CREATE TRIGGER)

触发器是与 MySQL 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。 基本语法 在 MySQL 5.7 中,可以使用 CREATE TRIGGER 语句创建触发器。 语法格…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色&#xf…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙

WebGL&#xff1a;在浏览器中解锁3D世界的魔法钥匙 引言&#xff1a;网页的边界正在消失 在数字化浪潮的推动下&#xff0c;网页早已不再是静态信息的展示窗口。如今&#xff0c;我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室&#xff0c;甚至沉浸式的V…...

深入理解 React 样式方案

React 的样式方案较多,在应用开发初期,开发者需要根据项目业务具体情况选择对应样式方案。React 样式方案主要有: 1. 内联样式 2. module css 3. css in js 4. tailwind css 这些方案中,均有各自的优势和缺点。 1. 方案优劣势 1. 内联样式: 简单直观,适合动态样式和…...