之前一直想下载3.8,但是没下载到,看到小伙伴留言发了一个试用版的链接(安全性未知)。
链接:戳我
然后就下载了一下,发现这个并不是破解版。如下图:
所以就对其进行了简单的修改,并把方法分享给大家,以便大家使用。
首先,对cobaltstrike.jar进行解压,解压以后找到common\License.class
,使用jad进行反编译。1
2C:\Users\evi1cg\Desktop\jad>jad License.class
Parsing License.class... Generating License.jad
之后编辑License.jad文件,修改以下参数。找到life,修改为65535L:
之后将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
46package 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
6public 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
25public 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。
修改版下载链接: 链接: 戳我 密码: 86f3 安全性请自行验证!!