技术教程破解资源
Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇
简介开头先说下为什么用破解篇作为本系列的开篇,哈哈哈因为之前因为觉得应该不会有后门吧,就在物理机上运行了一次cs client,然后就gg了,所以涉及到调试相关也不想在虚拟机里做了,就从原始jar包开始吧。提前也做一下声明,本系列所有内容因为涉及到cs原版所以不进行开源,内容如有侵权,请联系作者马上删除
开头先说下为什么用破解篇作为本系列的开篇,哈哈哈因为之前因为觉得应该不会有后门吧,就在物理机上运行了一次cs client,然后就gg了,所以涉及到调试相关也不想在虚拟机里做了,就从原始jar包开始吧。
提前也做一下声明,本系列所有内容因为涉及到cs原版所以不进行开源,内容如有侵权,请联系作者马上删除。还有公众号所有内容如有错误欢迎各位师傅进行斧正,文章结尾有本人微信也欢迎各位师傅来讨论安全相关知识。
废话就不多说了,因为开篇所以先简单聊下4.7的一些改动吧,首先最难受的一点就是从之前的teamserver&client联合jar包分解成了一个cs_client.jar与teamserverimage的一个elf文件,这就导致teamserver的相关修改要在二进制的基础上进行,增加了二开和破解的难度吧算是,后面还是尽量克服吧。
但是4.7也不乏一些好的改版,比如支持socket5,还有对bof的隐蔽性又多加了两个profile配置,还有一些好的改动可以自行google查看文档正文就从这里开始吧关于cs二开环境配置就不过多阐述,百度上其他师傅的文章也有很多,这里就从关键部分往下分析。
![Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇](/UploadFiles/2021-04-26/200514sgimb5fl34gtrc5b.png)
1.png
Aggressor首先checkui校验完整性,主要是对几个加密函数的完整性校验![Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇](/UploadFiles/2021-04-26/200516aqwwgmgw8bwi8dqd.png)
2.png
Checkui关键代码为这两行,initializestarter函数校验完整性![Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇](/UploadFiles/2021-04-26/200519b18ave8wvuycujay.png)
3.png
在进入A![Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇](/UploadFiles/2021-04-26/200521i2m2my7wz6786nzq.png)
4.png
Var5为crc校验码,var4为校验class,其实现主要是在Initializer.isOK(var1, var3, var4, var5, true)Initializer.isFileOK(var1, var4, var5, true)函数中通过获取zipfile(jar包通过zip格式压缩)也就是本jar包内的文件获取crc并比较最开始的crc来确保文件未更改。校验的文件包括common/AuthCrypto.classresources/authkey.pubcommon/License.classcommon/Authorization.classcommon/SleevedResource.classcommon/AggressorInfo.classdns/SleeveSecurity.classcommon/BaseArtifactUtils.classcommon/BaseResourceUtils.classaggressor/dialogs/PayloadGeneratorDialog.class IsOK/IsFileOK的实现过程主要通过A函数![Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇](/UploadFiles/2021-04-26/200523k1zaqa7wh5zwmma1.png)
5.png
![Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇](/UploadFiles/2021-04-26/200525sm7lb1m1lmzzx5mz.png)
6.png
所以对于日后修改jar包内容,如果包含到了以上的几个class需要重新计算crc校验并重新赋值,就比如我这里修改了authorization.class![Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇](/UploadFiles/2021-04-26/200527lkhkznp7b5efvjtm.png)
7.png
![Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇](/UploadFiles/2021-04-26/200530aogphg9ggza7khgg.png)
8.png
后面aggressor创建multiframe也在后面进行了校验![Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇](/UploadFiles/2021-04-26/200532b6u6ruhk2v6ik2z1.png)
9.png
这边用的是base64解码字符串,字符串为校验的文件名,再用crc校验进行文件的二次校验 使用动态调用函数common.CommonUtils.validClassIntegrity()![Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇](/UploadFiles/2021-04-26/200534g1pv0x3kkfafmeem.png)
10.png
通过class的getDeclaredMethod函数动态获取函数并执行后续校验校验的文件包括:common.CommonUtilscommon.Authorizationcommon.AuthCryptocommon.DataParsercommon.SleevedResourcedns.SleeveSecurityaggressor.Aggressorcommon.AggressorInfocommon.Starter这里我直接暴力注释掉了如果想直接改的话查查zipentry的crc然后改一下也是ok的![Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇](/UploadFiles/2021-04-26/200536nrjype06vz00o8xp.png)
11.png
后面初始化connectdialog的时候也会有一个crc校验的过程,这里我也是直接注释掉了![Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇](/UploadFiles/2021-04-26/200539ez3lahbzp3llkil6.png)
12.png
还有safedialog的safetycheck也有一次校验过程,这里的校验类有很多我也不一一列举了,像是普通的dialog会继承starter2/starter这两个类,两个类中分别含有校验部分,然后去除掉校验就ok了,或者直接在整个项目里面搜索system.exit(1)这个函数就会有终止的校验部分一般都是调用了类中A函数进行base64解密与crc检测,如果有强迫症的师傅可以自行计算crc并修改校验crc值,没有的其实可以直接注释掉。 对于cobaltstrike.auth其实可以直接注释掉相关部分,哈哈哈哈![Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇](/UploadFiles/2021-04-26/200541bjxei29jiie78hjr.png)
13.png
这里的cobaltstrike.auth读出256字节![Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇](/UploadFiles/2021-04-26/200543jhlt1rtlzwqololt.png)
14.png
校验的时候主要看这几个,其实在源码的基础上直接过滤注释掉就好,里面的校验过程主要涉及rsa的解密,这里精力有限就暂时放下等后面有时间再去聊吧,这里嫖了一手一个大佬的.auth哈哈哈哈。效果大概下面这样:![Cobalt Strike剖析及免杀系列(五)cs4.7源码jar包破解篇](/UploadFiles/2021-04-26/200545b48l3bafa7oovy33.png)
15.png
欢迎各位师傅前来评论区讨论file:///C:/Users/as199/AppData/Local/Temp/msohtmlclip1/01/clip_image030.png