CobaltSrike二次开发之流量修改
CobaltStrike特征修改
修改Stager防止被直接扫描:修改位置如下
cloudstrike/webserver.java |
修改isStager函数,只要不是92或者93就行。这里首先需要修改checksum8,将其返回值改为return sum
利用脚本来生成我们的返回值
public class test { |
key我们使用wings来生成md5,然后运行获取对应的值
将我们值放入替换92L为2131L
public static boolean isStager(String uri) { |
同时修改return为我们生成的key
common/CommonUtils.java |
public static String MSFURI(int var0) { |
X64同理进行修改
之后修改
beacon/BeaconPayload.java |
将异或值0x2e改为0x3e(默认显示为10进制,我们改为62即可)
根据之前的特征信息我们可知
cs 3.x版本的配置信息是通过异或0x69解密出的,4.x版本的配置信息是通过异或0x2e解密出的。
至此,可以发现,从3.x到4.x,cs自解密的算法没变,自解密后再解密配置文件的算法就只是改了个密钥,而且是固定的(3.x 0x69,4.x 0x2e)。
public static byte[] beacon_obfuscate(byte[] var0) { |
修改DLL文件
同时我们需要到生成时调用的DLL文件进行修改,否则会导致异或值不一样导致的无法上线,下载解密的问题
使用脚本对Sleeve进行解密,具体原理可以查看CobaltStrike的认证流程
https://github.com/ca3tie1/CrackSleeve |
将解密出来的文件拖到IDA,搜索0x2e关键字,打patch修改为0x3e
同时需要修改的有
beacon.dll |
将修改之后的dll放入并加密
将之前修改的Java,和我们的dll 重新导入jar文件
BeaconPayload.java |
进行测试上线,发现特征流量已经修改