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

安全工具篇魔改二开CS消除流量特征Profile请求个性主题反编译去暗桩

免杀对抗——第一百六十三天

安全工具篇&魔改二开CS&消除流量特征&Profile请求&个性主题&反编译去暗桩

前置知识

  • 今天是关于CS免杀的部分,之前都是针对生成的木马进行免杀,但是在反连的过程中,我们的流量也是有特征的,所以可能木马是免杀了,但是连接之后流量被识别出来了,也会导致这个已经免杀的木马被杀掉,所以我们需要针对这款工具也做一下免杀
  • 然后针对CS的魔改和之前哥斯拉、冰蝎的差不多,因为他们都是基于JAVA开发的,所以反编译然后读懂代码改就好了
  • 我们用到的CS版本还是4.5,当然有能力的可以用新的,最新的好像是4.9的版本已经被破解了,不过高版本有很多暗桩,比较难搞,而且网上对更高版本的魔改教程很少,所以我们还是用4.5版本做一些简单的演示
  • CS4.7魔改破解:Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇 - 吾爱破解 - 52pojie.cn

安全工具 - 配置修改-CS流量特征

  • 首先我们先看看可以修改的地方,也就是根据我们目前的能力,修改源码可以消除的特征点有:默认端口、http请求特征、https证书特征、防溯源等等
  1. 开在公网的teamserver不要使用默认端口:修改teamserver里面的启动端口

  2. cobastrike.store不要使用默认文件:可以通过如下命令查看默认证书文件特征

keytool -list -v -keystore xxx.store

当然这里可以直接使用Java自带的keytool工具进行证书的颁发,命令为:

keytool -keystore xxx.store --storepass password -keypass password -genkey -keyalg 加密方式 -alias 别名 -dname"证书颁发机构信息"

然后将teamserver中的cobalstrike.store改为刚才生成的sohu.store,并且将启动命令中的keyStorekeyStorePassword修改即可:

  1. profile文件要换新的:启动服务端时记得加载,或直接把jar包里面默认配置改了
    验证:
./c2lint xxx.profile

使用:

./teamserver<IP><password>jquery-c2.4.5.profile

profile资源:

  • https://github.com/threatexpress/malleable-c2
  • https://github.com/zer0yu/AweSome-CobaltStrike?tab=readme-ov-file#0x02-c2-profiles
    二开魔改资源:
  • zer0yu/Awesome-CobaltStrike: List of Awesome CobaltStrike Resources
    那这个profile有什么用呢?我们先看看默认的文件上线它的流量包特征:

原生木马上线之后通过HTTP/HTTPS进行通信,然后这里的流量包如图中所示,基本分为:

GET /JwLP HTTP/1.1 ↓ GET /g.pixel HTTP/1.1 ↓ POST /submit.php?id=xxxx HTTP/1.1

这里第一个数据包中的/JwLP是随机生成的,但是也有一定的规律,我们可以通过checksum8算法发现目标主机为x64时结果为93,为x86时结果为92

计算规则:ASCII码之和%256[74(J)+119(w)+76(L)+80(P)]%256=93

第二三个数据包是固定不变的,因此这些请求路径、UA头等就是CS的流量特征,只要被检测到这个的话基本可以确定是CS
现在我们去刚才的网站上下载jquery-c2.4.5这个profile文件,通过上述命令加载之后再看流量包:

就能够发现它的数据包已经发生改变了,请求路径变成了正常的请求xxx.js,虽然仍然存在/g.pixel,但相比于之前已经明显降低了特征点
因为这个项目也已经是三年前的了,所以可能用这个也会被监测到,所以我们也需要对这个profile文件进行简单的修改,这个就直接打开源码文件修改即可
4.其他修改
+ 反向代理 - 符合才上线
+ SSL隧道 - 隐匿CS服务器
+ 参考文章:CS部署修改

安全工具 - 魔改二开-CS个性化打造

  • 参考文章:Cobalt Strike系列|从0开始破解
  • 上面的东西都属于是在外部进行小修小改,真正的要做到免杀还是需要对源码进行修改,所以我们先搭建好修改的环境
  • 这里我们就用Java自带的反编译工具反编译源码:
java -cp"IDEA_HOME/plugins/java-decopiler/lib/java-decompiler.jar"org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true<src.jar><dest dir>

  • 然后在IDEA中创建一个新项目:

  • 在这个文件夹下创建lib目录,将原版的CS jar包放进去,再将反编译之后的jar包解压缩放到根目录下:

  • 接着我们在IDEA中创建模块,然后创建工件即可:

  • 在魔改的时候,只将需要修改的代码文件放到src目录下改动,最后重新构建即可

  • 比如我们这里将Aggressor.java文件拿出来改动,这个是它的启动文件,我们在这里加一个启动弹窗:

JOptionPane.showMessageDialog((Component)null,(String)"欢迎来到uli0n Sec!",(String)"提示",JOptionPane.INFORMATION_MESSAGE);
  • 它确实能够成功提示,但是之后就报出如下错误:

  • 这个是因为在/common/Requirements.java文件中存在限制,我们需要在启动时带上-XX:+AggressiveHeap(检查是否开启了激进堆内存优化)-XX:+UseParallelGC(检查是否使用了并行垃圾回收器)这两个参数:

-XX:ParallelGCThreads=4-XX:+AggressiveHeap -XX:+UseParallelGC

  • 当然更为简单直接的方法就是让这里的函数直接全部返回null,但是为了后面不会出错就没这样弄

  • 然后再次打包运行jar包又会产生新的报错:

  • 这里是因为校验不通过的问题,那么要解决这个就是我们去除暗桩的过程,首先改动/beacon/BeaconData.java文件下第53行:

  • 然后改动beacon/CommandBuilder.java文件第250行,将下面所有if语句全部注释掉(247~297),保证var1=true

  • 再然后是改动common/Authorization.java文件,注释掉cobaltstrike.auth文件校验(14~33),这里注意最后得删除一个}号,给var4赋值如下密钥:

byte[]var4={1,-55,-61,127,0,1,-122,-96,45,16,27,-27,-66,82,-58,37,92,51,85,-114,-118,28,-74,103,-53,6,16,-128,-29,42,116,32,96,-72,-124,65,-101,-96,-63,113,-55,-86,118,16,-78,13,72,122,-35,-44,113,52,24,-14,-43,-93,-82,2,-89,-96,16,58,68,37,73,15,56,-102,-18,-61,18,-67,-41,88,-83,43,-103,16,94,-104,25,74,1,-58,-76,-113,-91,-126,-90,-87,-4,-69,-110,-42,16,-13,-114,-77,-47,-93,53,-78,82,-75,-117,-62,-84,-34,-127,-75,66,0,0,0,24,66,101,117,100,116,75,103,113,110,108,109,48,82,117,118,102,43,86,89,120,117,119,61,61};

  • 接着修改common/Helper.java文件,注释掉class文件的调用(30~50),保证var2=true

  • 修改common/Starter.java文件,同样注释掉class文件的调用(25~157),保证var2=true

  • 最后修改common/Starter2.java文件,注释掉class文件调用(45~72),确保var2=true

  • 到这里我们去暗桩的部分就结束了,然后重新打包运行,这里就能够正常启动了:

  • 接下来的一些个性化修改装逼功能这里我就不演示了,对应文件如下:

    1. 标题修改:cobaltstrike/aggressor/AggressorClient.java
    2. 界面修改:cobaltstrike/aggressor/dialogs/ConnectDialog.java
    3. 客户端和图标修改:
      • 介绍部分位置:cobaltstrike/resources/about.html
      • 许可部分位置:cobaltstrike/resources/credits.txt
      • 图标位置:cobaltstrike/resources/armitage-icon.gif(32x32px)和cobaltstrike/resources/armitage-logo.gif(256x256px)
      • 主题风格位置:cobaltstrike/aggressor/Aggressor.java
      • Profile替换:cobaltstrike/resources/default.profile
  • 然后这里的主题风格下载地址:https://mvnrepository.com/artifact/com.formdev/flatlaf/3.2

  • 下载jar包,然后放到lib里面,通过依赖模块引入,工件加入jar,然后在Aggressor.java文件里面加入FlatIntelliJLaf.setup()即可:

  • 启动CS,可以看到相比于原版更加美观了:

  • 接着就是这里修改profile文件这里,默认的流量包为什么会请求/submit.php这种文件呢?就是因为这里:

  • 当然这里的话,我们直接是可以通过启动命令去加载不同的profile文件的,所以改不改也无所谓:

./teamserver<IP><password><myprofile.profile>
  • 其他的就是它这里的资源文件里面会有一些自带的木马模板,比如powershell的,那这里我们可以替换成之前的免杀马,然后它生成出来就是已经免杀的马子了

  • 当然如果有能力,还可以找找它的一个调用逻辑,尝试接入随机选择模板、混淆、调用三方工具免杀等等功能,这里我们就不多赘述了

安全工具 - 魔改二开-CS免杀流量对抗

  • 这里主要是改动如下方面内容:
    1. 去除checksum8特征
    2. 去除listemerConfig特征
    3. 修改配置加解密xorkey
    4. 去除beaconeye特征
    5. bypass功能对抗生成
    6. 新增放置CS反制功能
    7. 新增上线提示等功能
  • 当然这里的话就是我们之后的内容了,会更难更复杂一点
http://www.jsqmd.com/news/299313/

相关文章:

  • 为什么程序员都在学大模型?掌握未来AI核心技术的全面指南
  • LLM微调终极指南:第七阶段监控与维护,让AI模型永不失控!【必收藏】
  • 【2026全网首发】AI智能体完全指南:面试必备+大模型开发实战+学习资源全解析
  • 【大学院-筆記試験練習:线性代数和数据结构(16)】
  • 生物医学研究新利器:自我进化LLM智能体架构与实战
  • 【必藏】大模型入门指南:从成本到架构的全景解析,程序员小白必看
  • 小白也能学会!本地大模型全部署教程(Mac+Win)
  • 无监督配准
  • ENSP Pro LAB笔记:配置M-LAG双归接入三层网络(V-STP + Monitor Link + OSPF)
  • 救命神器!MBA开题报告必备TOP8 AI论文平台深度测评
  • AT_abc442_g [ABC442G] Lightweight Knapsack
  • 基于STM32的有害气体检测系统
  • 基于STM32的汽车防盗报警系统设计
  • 基于STM32的电热水器控制系统设计
  • 2026年1月工业清洗与稀释剂厂家推荐榜单:脱漆剂/除蜡水/防锈油/溶剂油/助焊剂/碳氢清洗剂/环保型清洗剂/油墨稀释剂等专业化工产品源头供应
  • 基于STM32的土壤湿度检测系统
  • 基于STM32的多功能智能睡眠枕头
  • 基于STM32的农业大棚环境检测系统的设计与实现
  • 给儿子的金钱信:关于运气、谦逊与“睡个好觉”的权利
  • FastAPI系列(10):Request对象
  • python基础语法 3
  • 基于STM32 的老人跌倒监测系统设计与实现
  • 基于STM32单片机的温室大棚控制
  • 基于STM32单片机的自动宠物喂食
  • 基于stm32厨房一氧化碳烟雾浓度检测及火灾报警器的设计
  • 基于stm32的便携式voc气体检测仪设计
  • 基于Android和蓝牙的智慧停车场系统的设计与实现
  • 基于MQTT协议的物联网家庭安防系统设计
  • 基于NB-IoT的温湿度监测系统设计
  • 基于rfid的门禁防盗报警系统设计