Cobalt Strike特征修改

2023-10-12 21:59
文章标签 修改 特征 cobalt strike

本文主要是介绍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,由于还未成年,无法备案域名,所以过时间补充。

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

这篇关于Cobalt Strike特征修改的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/198743

相关文章

kingbase修改权限实现方式

《kingbase修改权限实现方式》该文章详细介绍了如何在数据库中创建用户并赋予其相应的权限,包括创建用户、回收默认权限、创建数据库、赋权数据库权限、创建只读用户以及回收权限等步骤... 目录前言使用步骤总结前言创建用户后对数据库对象的读写权限进行修改使用步骤1、创建用户create user cs

linux实现对.jar文件的配置文件进行修改

《linux实现对.jar文件的配置文件进行修改》文章讲述了如何使用Linux系统修改.jar文件的配置文件,包括进入文件夹、编辑文件、保存并退出编辑器,以及重新启动项目... 目录linux对.jar文件的配置文件进行修改第一步第二步 第三步第四步总结linux对.jar文件的配置文件进行修改第一步进

Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)

《Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)》在职场中,Word文档是公认的好伙伴,但你有没有被它折磨过?批量生成合同、制作报告以及发放证书/通知等等,这些重复、低效... 目录重复性文档制作,手动填充模板,效率低下还易错1.python-docx入门:Word文档的“瑞士

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Nginx 413修改上传文件大小限制的方法详解

《Nginx413修改上传文件大小限制的方法详解》在使用Nginx作为Web服务器时,有时会遇到客户端尝试上传大文件时返回​​413RequestEntityTooLarge​​... 目录1. 理解 ​​413 Request Entity Too Large​​ 错误2. 修改 Nginx 配置2.1