Learning Man's Blog

CobaltStrike 破解步骤

字数统计: 666阅读时长: 2 min
2020/07/31

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

由于到手的非原版,可能有些错误的地方、没有破解到的位置,欢迎各位师傅指正~~

必须

1. 试用版

位置:common.License#isTrial
作用:验证是否为试用版
方式:直接修改返回为false

注意:此修改可能严重影响 XOR 混淆试用限制

修改前 修改后

2. 过期时间

位置:common.Authorization#Authorization
作用:验证是否超出许可时间
方式:直接修改this.validtoforever

修改前 修改后

3. 水印

位置:common.Authorization
作用:用于添加用户水印(暗桩)
方式:在读取语句后赋值 watermask ∈ (0, 65535)

注意:此修改可能影响 试用信息用户(暗桩)信息

修改前 修改后

水印举例:生成 x86-64 c shellcode 时候末尾 4 字节

4. 30分钟Exit

位置:beacon.BeaconData#shouldPad
作用:在beacon.BeaconC2#BeaconC2中引用,将 beacon 存活 30 分钟后强制下线
方式:修改this.shouldPadfalse

修改前 修改后

可选

1. XOR Encode

位置:common.ArtifactUtils#XorEncode
作用:用于shellcode混淆
方式:需检查resources中存在有xor.binxor64.bin,没有bin文件版本直接返回即可

修改前 修改后

2. 试用信息

  1. 位置:common.BaseArtifactUtils#_patchArtifact
    作用:添加试用信息暗桩,受License.isTrial()控制
    方式:直接删除、注释即可
修改前 修改后
  1. 位置:common.ListenerConfig#pad
    作用:在 shellcode 中添加试用信息暗桩,受common.Authorization#watermark控制
    方式:直接注释即可;或按上述信息修改 watermask
修改前 修改后

3. 试用限制

基本受 isTrial 影响,建议按上述信息修改 isTrial 逻辑

受影响文件:

  • aggressor/Aggressor
  • aggressor/AggressorClient
  • aggressor/bridges/ArtifactBridge
  • c2profile/Preview
  • common/ArtifactUtils
  • common/BaseArtifactUtils
  • common/CommonUtils
  • common/MudgeSanity

4. 用户(暗桩)信息

基本受 watermask 影响,建议按上述信息修改 watermask

受影响文件:

  • beacon/BeaconPayload.java
  • setup/SSHAgent.java
  • common/AuthUtil.java
  • common/ListenerConfig.java
  • server/TeamServer.java
  • stagers/BeaconPipeStagerX86.java
  • stagers/ForeignReverseStagerX64.java
  • stagers/ForeignReverseStagerX86.java
  • stagers/GenericBindStager.java
  • stagers/GenericDNSStagerX86.java
  • stagers/GenericHTTPStager.java

5. 证书有效性

位置:common.Authorization
作用:验证 auth 文件有效性标志
修改:如若 auth 有效(存在、生成),则无需改动;或直接修改初始化值为 true

修改前 修改后

未知

1. 身份验证

位置:common.AuthUtil
作用:读取 auth 文件中身份内容
方式:到手的代码好像被改动了,没有看到引用这个类的地方,导致不知道到底作用于哪里,尤其是licensekey

(试)修改前 (试)修改后
CATALOG
  1. 1. 必须
  2. 2. 可选
  3. 3. 未知