Cobalt Strike特征修改

在红蓝对抗以及hvv等等情况下,我们都会用到 Cobalt Strike,那么它也是安全公司重点关注的对象,跟msf类似,但CS操作相对比MSF使用简单,同时也有一个强大的插件库。那么,这么红的工具,特征方面安全软件特征库里肯定是有的,所以我们就要需要修改其特征。

------本文主要探索CS的本身特征,不包含木马免杀,后续会在写免杀系类文章,也算一种学习的记录,欢迎各位师傅指导。

一、CS默认端口

CS开启的默认端口是50050,蓝队在分析的时候,看到ip开放50050,一般都ban了,很明显是CS的端口,所以,我们需要修改50050端口。

在服务端文件teamserver内修改,

vi teamserver

将代码最下面的50050改为其他端口,即可

 二、CS指纹https特征证书修改

默认我们不配置CS证书时,使用的是CS自带的证书,先不说为什么要修改,先看看默认证书内容

使用keytool.exe【电脑如果有java环境,是自带的】打开,

keytool -list -v -keystore cobaltstrike.store

 需要输入口令,默认情况是123456,如果不是123456,则可以尝试打开teamserver文件,查看

可以尝试一下,不知道,密码也没关系,后面我们需要自己生成。

这个是原始的 cobaltstrike.store文件,全部是CS特征,直接定位到了,查杀。

此时就需要我们自己生成证书了。

keytool -keystore cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias SuanSuan -dname "CN=Suan Suan, OU=Suan, O=Suan, L=LongZu, S=OO, C=OO"

 解释一下什么各参数的意思:

CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)
其中cobaltstrike.store为新生成的keystore文件,-alias 指定别名,-storepass pass 和 -keypass pass 指定密钥,-keyalg RSA 指定主体公共密钥算法,-dname 指定所有者信

 根据上面的信息,我们可以自己生成一个特有的证书,防止之前的证书特征,被查杀。

生成新的证书之后将原来证书删除,放到CS根目录,并且我们需要启用证书:

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

 cobaltstrike.store为生成证书的名字。

再使用keytool查看一下,

keytool -list -v -keystore cobaltstrike.store

此时证书已经是刚刚我们设置的证书信息了

此时证书还没有完全起效,详情见下面c2配置。

三、CS的http服务流量特征修改

我们先生成一个http服务的木马文件,使用wireshark抓包查看详情

 

 这个数据包是CS没http的数据包,从数据包请求和返回就很奇怪,参数太少了,而且U-A头也是IE浏览器的,应该也很少也有使用IE吧,所以我们还是需要修改一下。

使用Malleable C2 Profile自定义CS通信流量特征,

参考项目:https://github.com/xx0hcd/Malleable-C2-Profiles

可延展的指挥和控制 (helpsystems.com)

根据模板文件配置profile,

###global options###set sleeptime "37500";               #单位ms
set jitter "35";                     #睡眠抖动时间,百分比0-99
set useragent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36 Edg/97.0.1072.69";#U-A头自定义###SSl Options###
#这里如果有证书可以直接使用自己生成的证书,将这里的注释去除,将下面生成证书的代码注释,没有则利用下面代码生成。
#https-certificate {#set keystore "cs内.store文件位置";#set password ".store证书文件密钥";
#}https-certificate {set C "US";                       #字母国家代码set CN "Suan Suan";               #名字与姓氏set L "WU";                       #城市名称set O "Suan Suan";                #组织名称set OU "Suan Suan";               #组织单位名称set ST "WU";                      #州或省名称set validity "365";               #证书生效时间
}
###CODE-SIGNER BLOCK###
code-signer{#用于签名 Windows Executable and Windows Executable(S),确保Payload一致性set keystore "cobaltstrike.store";            #证书文件名称set password "123456";                        #证书内密码set alias "baidu.com";                        #证书别名
}
###HTTP-GET Block###
http-get {set uri "/video /knowledge /douga /cinephile"; # 自定义多个url请求路径,以空格相隔#配置请求参数client {header "referer" "https://www.baidu.com/";header "Host" "https://youtube.com/";header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9";header "Accept-Language" "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6";header "Connection" "close";metadata {netbiosu;                                         # netbios(大写)编码append "BV1kF411J7zG?spm_id_from=333.5.0.0";      # 追加参数内容尾缀parameter "file";                                 # 将内容放在新增的url参数中prepend "v=";   							      # 追加参数内容前缀header "Cookie";   							      # 添加到HTTP Cookie头中}}#响应内容server {header "Content-Type" "text/html; charset=utf-8";header "content-encoding" "gzip";header "set-cookie" "innersign=1; path=/; domain=.youtube.com/";output {base64;print;            }}
}
###HTTP-Post Block###
http-post {set uri "/knowledge= /food=";   # 不能与http-get的url请求路径完全相同client {header "Host" "https://youtube.com/";header "Accept" "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9";header "Accept-Language" "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6";header "Connection" "close";     id {netbios;append "spm_id_from=333.5.0.0";uri-append;         # 追加到url末尾}output {base64;   print;}}server {output {base64;print;}}
}

 上面配置文件【根据上面说明编写,上面文件有很多不合理的地方】有http及https的配置,https是启用上面的证书,自定义证书特征,http则是使传输的数据包更真实,增加蓝队溯源难度。

使用如下命令启用profile配置文件

./teamserver 192.168.1.109 suan c2.profile

就是在CS正常启动下将profile文件加载后面。

此时我们来看一下木马文件http服务的数据包

这个更改后的数据包,我们根据实际情况自己修改profile文件,使数据包更加真实。

那么还有https吧,我们来访问一下https服务

 

此时我们的证书也就出来了,如果在 profile文件内没有配置https的话,证书信息也不会显示,各类信息为空。

四、域前置

该技术相对较好,即配置cdn服务,防止溯源到ip,并且不会找到真是ip,由于还未成年,无法备案域名,所以过时间补充。

声明:本文所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途,否则后果自行承担!!!

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

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

相关文章

通用编程准则

本文是我们名为“ 高级Java ”的学院课程的一部分。 本课程旨在帮助您最有效地使用Java。 它讨论了高级主题,包括对象创建,并发,序列化,反射等。 它将指导您完成Java掌握的过程! 在这里查看 ! 目录 1.简…

工厂模式与抽象工厂模式

1、工厂模式:定义了一组创建对象的接口,但是由子类决定要实例化的类是哪一个。工厂方法把类的实例化推迟到子类中。 现在考虑有PizzaStore有一些子类(加盟店),他们有可能对pizza的做法进行一些改良,即creat…

数据类型转换为false的有哪些?

看图,看选项你就明白啦

CS通过(CDN+证书)powershell上线详细版

0x00 简介 这个应该叫做域前置技术: 大致图示: 攻击流量通过CDN节点将流量转发到真实的C2服务器CDN节点ip通过识别请求的Host头进行流量转可以有效的躲避一些安全设备,也有这一定的反溯源功能,因为流量都去了CDN上 之前看了一些…

SGU185 Two shortest(最小费用最大流/最大流)

题目求一张图两条边不重复的最短路。 一开始我用费用流做。 源点到1连容量2费用0的边;所有边,连u到v和v到u容量1费用cost的边。 总共最多会增广两次,比较两次求得的费用,然后输出路径。 然而死MLE不过。。 看了题解,是…

那些操作会引起回流(reflow)?

reflow(回流)是指浏览器为了重新渲染部分或者全部的文档,重新计算文档中的元素的位置和几何构造的过程。 因为回流可能导致整个Dom树的重新构造,所以是性能的一大杀手。 以下操作会引起回流: ① 改变窗口大小 ② font-size大小改变 ③ 增加或者移除样式表 …

红蓝对抗之流量加密(Openssl加密传输、MSF流量加密、CS修改profile进行流量加密)

本篇文章转载于:https://blog.csdn.net/q20010619/article/details/122006433?utm_mediumdistribute.pc_relevant.none-task-blog-2defaultbaidujs_utm_term~default-1-122006433-blog-122810834.pc_relevant_default&spm1001.2101.3001.4242.2&utm_relevant_index4 文…

有var d = new Date(‘20xx-m-09‘),可以设置为m+1月份的操作是?

setMonth(n),这里是0-11分别对应1-12月 d.setDate(n); n表示一个月中的一天的一个数值(1 ~ 31): 0 为上一个月的最后一天 -1 为上一个月最后一天之前的一天 如果当月有 31 天: 32 为下个月的第一天 如果当月有 30 天: 32 为下一个月的第二…

如何以及何时使用例外

本文是我们名为“ 高级Java ”的学院课程的一部分。 本课程旨在帮助您最有效地使用Java。 它讨论了高级主题,包括对象创建,并发,序列化,反射等。 它将指导您完成Java掌握的过程! 在这里查看 ! 目录 1.简…

域前置 配置cdn-解决HTTPS-SSL通讯被朔源IP封锁问题

域前置 配置cdn URL -解决HTTPS-SSL通讯被朔源IP封锁问题 https://mp.weixin.qq.com/s/MghFgegdp3l3tFE3hOvcYw

深入理解Java引用类型

深入理解Java引用类型 在Java中类型可分为两大类:值类型与引用类型。值类型就是基本数据类型(如int ,double 等),而引用类型,是指除了基本的变量类型之外的所有类型(如通过 class 定义的类型)。所有的类型在…

值得一谈的鸿蒙2.0,程序员们拿起你们手中的编译器撸一下hello world

一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统 。现已开源,名为OpenHarmony。 2019年8月9日,华为在HDC开发者大会上正式发布鸿蒙系统。 2020年9月10日,华为在HDC开发者大会上如约发布鸿蒙 2.0,并面向应用开发者发布Beta版本…

GitHack使用方法

ctf小白刚下载这个,不知道怎么用。现在会用啦就记录一下~ 下载地址:https://github.com/lijiejie/GitHack 下载下来后,通过cmd使用,如下图所示: 总结(命令): GitHack.py http://XXXX…

工厂方法模式和抽象工厂模式

有一个抽象的产品类 Product 具体的产品类 Product1 Product2.。。。 工厂方法&#xff1a; 1、创建抽象的工厂类&#xff1a;Creator&#xff1a; public abstract class Creator{ public abstract <T extends Product> T createProduct(Class<T> c); } 2、具体实…

值得一谈的鸿蒙2.0,赶紧撸一下hello world

一款“面向未来”、面向全场景&#xff08;移动办公、运动健康、社交通信、媒体娱乐等&#xff09;的分布式操作系统 。现已开源&#xff0c;名为OpenHarmony。2019年8月9日&#xff0c;华为在HDC开发者大会上正式发布鸿蒙系统。2020年9月10日&#xff0c;华为在HDC开发者大会上…

key 和secret_Java Secret:加载和卸载静态字段

key 和secret总览 首先&#xff0c;很自然地假设静态字段具有特殊的生命周期&#xff0c;并且在应用程序的生命周期中一直存在。 您可以假设它们存在于内存中的特殊位置&#xff0c;例如C或类元信息的perm gen中的内存开始。 但是&#xff0c;得知静态字段驻留在堆上&#xff…

【Jenkins】未授权访问漏洞

一、漏洞介绍 1 ) Jenkins介绍 Jenkins是一个基于Java开发的开源项目&#xff0c;可在Tomcat等流行的servlet容器中运行&#xff0c;也可以独立运行&#xff0c;其功能如下&#xff1a; 用于持续性、自动的构建/测试软件项目监控或跑一些定时任务监控外部调用执行的工作 2 …

java split函数应该注意的问题

split函数的参数是一个String&#xff0c;但是这个String会被解释成一个正则表达式. 比如 "test.txt".split(".").length得到的值是0&#xff0c;因为在正则表达式中点号会被当作一个通配符, 所以得不到结果&#xff0c; 正确的写法应该是 "test.txt&…

解决谷歌浏览器F12打不开调试页面的问题。

最近应用着急上线&#xff0c;需要批量测试&#xff0c;发现F12不好使啦。 解决办法&#xff1a; 1.找到谷歌浏览器&#xff1a;设置-扩展程序-开发者模式。关闭。 2.刷新浏览器或者重启浏览器后&#xff0c;打开需要调试的页面&#xff0c;鼠标点一下地址栏&#xff0c;按F1…

还有另一个报告生成器?

如果您具有业务应用程序开发的经验&#xff0c;那么很可能会遇到要求该应用程序具有灵活的报告机制的需求。 我工作的公司主要专注于开发业务解决方案&#xff0c;而报告是必不可少的&#xff0c;的确&#xff0c;它必须包含我们开发的所有企业系统的方面。 为了在我们的系统中…