怎么分析CobaltStrike3.12,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。CobaltStrike是一款内网渗透的商业远控软件,支持自定义脚本扩展,功能非常强大。前段时间Github上有好心人放出了CobaltStrike3.12的试用版,接着Lz1y很快就放出了Patch版,加上热心老哥提供了的xor64.bin(试用版中没有这个文件),一个比较完美的最新可用版本诞生了。下面我们看下最新试用版是如何被完美Patch的。CobaltStrike(下面简称CS)主体代码是用Java开发的,逆起来比较友好。用jd-gui反编译cobaltstrike.jar文件,可以看到代码几乎没有做加固。Java源码没有任何混淆。但是查看反编译的源码时,很多地方出现了// INTERNAL ERROR //
,这里我推荐一款Java反编译工具luyten
,几乎可以100%反编译获得cobaltstrike.jar源码。CS的License处理逻辑在common/License.java
文件中:代码逻辑很清晰,这里我们有两个方向进行patch:修改License.life
无限延长试用修改isTrial()
返回值,伪造成正式版因为CS很多地方的试用版和正式版处理逻辑不同,所以修改了isTrial()
返回值之后,我们还需要修改所有调用了isTrial()
函数的地方,对代码进行调整。另外试用版CS留了一些特征指纹和限制,我们也需要去除相应的特征代码。既然知道了破解思路,我们看下如何动手操作去修改源码并重编译。Java编程中我们可以使用jar
工具将一系列的.class文件打包成jar包,供其他java程序使用。我们也可以修改jar包中.class文件的内容,并重新编译打包。比如修改demo.jar中的kingx.class并重新编译的过程如下:使用jd-gui、luyten等工具把demo.jar包中的class反编译成源码,从中提取得到kingx.java执行jar xvf demo.jar
解压demo.jar得到jar包的子文件(注意会解压到当前目录),将kingx.java文件放置到与example.class文件同一目录执行javac -cp a.jar;b.jar;c.jar kingx.java
重新编译。(或者javac -cp demo.jar kingx.java)得到新的kingx.class文件。其中a.jar、b.jar、c.jar是依赖包,一般直接依赖一个原始解压的demo.jar包即可确保编译后的kingx.class替换了原来的kingx.class文件(可以通过jd-gui反编译查看)执行jar -uvf demo.jar com/some/path/kingx.class
更新demo.jar包更新jar包中的class文件时,新的class文件目录路径需要与原package路径保持一致。比如修改了aggressor.AggressorClient.java
并重新编译之后,更新jar包的命令如下:修改后的java文件在重新编译为class文件时,可能会遇到很多奇怪的报错。有时候是因为反编译出的源码存在错误导致的,这个时候我们可以将luyten、jad、jd-gui等反编译工具结合使用,尽量还原成正确的源码,再重新编译。比如:AggressorClient.java,jad aggressor/AggressorClient*.class
和luyten
反编译得到的源码是不一样的。Tips: 以下代码片段中行首的免费云主机域名 – 代表删除,+ 代表新增修改common.License,去掉checkLicenseGUI()、checkLicenseConsole()函数体,修改isTrial()返回值为trueaggressor.AggressorClient,修改getTitle()函数一个teamserver默认只能监听一个listener,可以通过修改代码去除限制。aggressor.dialogs.ListenerDialog,去除以下代码:试用版有几个地方存在EICAR特征字符:X5O!P%@AP[4PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
,都需要进行清理:修改pad()函数:因为已经修改了License.isTrial()返回值为false,所以下面这段改不改也没什么影响。生成payload时,会调用common.ArtifactUtils中的XorEncode()进行编码:试用版不会进行payload stage encoding
,所以试用版软件包中并没有带xor.bin/xor64.bin文件,如果有这两个文件的话,可以添加到resources/xor.bin
、resources/xor64.bin
路径下。关于怎么分析CobaltStrike3.12问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注云编程开发博客行业资讯频道了解更多相关知识。
相关推荐: 如何使用模块化的Hostintel收集恶意主机的情报信息
这篇文章给大家介绍如何使用模块化的Hostintel收集恶意主机的情报信息,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。今天给大家介绍的是一款模块化的Python应用程序,广大研究人员可使用这款工具来收集关于恶意主机的情报信息。这款工具可…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。