cobaltstrike3.8 破解版

C568E2BB-3369-4EB1-993A-EBEA12790162.png
之前一直想下载3.8,但是没下载到,看到小伙伴留言发了一个试用版的链接(安全性未知)。
B49E21D6-8C9D-405B-AA10-B0B3B3275F95.png
链接:戳我

然后就下载了一下,发现这个并不是破解版。如下图:
E0C37677-323F-4D1A-A00D-0CC6068D73A1.png

所以就对其进行了简单的修改,并把方法分享给大家,以便大家使用。
首先,对cobaltstrike.jar进行解压,解压以后找到common\License.class,使用jad进行反编译。

1
2
C:\Users\evi1cg\Desktop\jad>jad License.class
Parsing License.class... Generating License.jad

之后编辑License.jad文件,修改以下参数。找到life,修改为65535L:

4E7F56F9-72A6-4038-BAD5-778BC8FAF54C.png

之后将License.jad重命名为License.java,置于解压以后的CobaltStrike的根目录,之后使用javac进行编译。

1
javac -classpath . License.java

编译以后得到License.class,使用winrar打开未解压的CobaltStrike,使用修改后的License.class替换原来的License.class即可。

如果不想打开的时候弹框,可使用以下License.java进行编译

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package common;

import aggressor.Prefs;

public class License
{

public License()
{
}

private static long getTimeSinceStart()
{
Prefs prefs = Prefs.getPreferences();
today = System.currentTimeMillis();
start = prefs.getLongNumber("cobaltstrike.start.int", 0L);
if(start == 0L)
{
prefs.set("cobaltstrike.start.int", (new StringBuilder()).append("").append(today).append("").toString());
prefs.save();
start = today;
}
difference = (today - start) / 0x5265c00L;
return difference;
}

public static void checkLicenseGUI()
{
getTimeSinceStart();
}

public static boolean isTrial()
{
return true;
}

public static void checkLicenseConsole()
{
}

private static long life = 65535L;
private static long today = 0L;
private static long start = 0L;
private static long difference = 0L;

}

在这里有个坑,参照这个文章进行破解是有问题的,他直接修改了common.License.isTrial()的返回值为flase。

1
2
3
4
5
6
public static boolean isTrial()
{
return true;
// 必须修改函数
// return false; //edit here
}

导致在ArtifactUtils类中处理函数XorEncode直接走向payload的Encode。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public static byte[] XorEncode(byte data[], String arch)
{
if(License.isTrial())
{
CommonUtils.print_trial((new StringBuilder()).append("Disabled ").append(arch).append(" payload stage encoding.").toString());
return data;
}
AssertUtils.Test(data.length > 16384, "XorEncode used on a stager (or some other small thing)");
AssertUtils.TestArch(arch);
if("x86".equals(arch))
{
byte decoder[] = CommonUtils.pickOption("resources/xor.bin");
byte payload[] = XorEncoder.encode(data);
return CommonUtils.join(decoder, payload);
}
if("x64".equals(arch))
{
byte decoder[] = CommonUtils.readResource("resources/xor64.bin");
byte payload[] = XorEncoder.encode(data);
return CommonUtils.join(decoder, payload);
} else
{
return new byte[0];
}
}

但是由于试用版不存在xor.bin以及xor64.bin,所以会导致无法创建监听。所以我们还是只改时间好了。然后我们的cs就可以使用了,缺点就是不能加密payload。

5CE4860A-6B52-4E1F-A895-48EBFE03657F.png

修改版下载链接: 链接: 戳我 密码: 86f3 安全性请自行验证!!

------本文结束,感谢阅读------