福彩3d出号走势图彩乐乐
3D任5选2组合遗漏分析 福彩3d跨度走势图带连线图 3d和尾走势图带连线 福彩3d和值走势图500期 3d和尾走势图大全 福彩3d大小奇偶走势图500期 今天3d试机号分析 福彩3d组三走势图带连线图 彩票3d试机号分析 福彩3d和值走势图带连线易彩网 福彩3d出号走势图彩宝贝 彩吧助手福彩3d出号走势图 福彩3d和值走势图带线 3d试机号分析17500 南方福彩3d跨度走势图带连线
Cobalt strike3.8 中文支持(Update)
in 工具收集 with 14 comments

Cobalt strike3.8 中文支持(Update)

in 工具收集 with 14 comments

0x00 簡介

cobaltstrike3.10 已經出來很久了,其中最吸引人的可能就是他已經支持中文了,但是貌似很久以來都沒在網上看到3.10的資源,所以就沒辦法,拿手上的3.8 改改將就用。

0x01 反編譯

首先我們要對cobaltstrike3.8進行反編譯,這里可以參照之前破解的方法,戳我,使用jad進行反編譯。

1522336230599.png

0x02 修改代碼

要怎么定位到要改哪里呢?
我們可以看一下CS的輸出:

1522336286954.png

可以看到在輸出之前有received output,所以我們就可以檢索這個關鍵字,馬上可以定位到BeaconC2.class文件,搜索“received output”一共有5個結果:

1522336540818.png

查看代碼如下:

1522336597408.png

可以看到,輸出的結果是由CommonUtils類的bString方法返回的,定位到CommonUtils.class文件查看代碼:

1522336678669.png

可以看到傳過來的數據使用 ISO8859-1 進行了編碼。ISO8859-1屬于單字節編碼,最多能表示的字符范圍是0-255,應用于英文系列。比如,字母a的編碼為0x61=97。 很明顯, ISO8859-1 編碼表示的字符范圍很窄,無法表示中文字符。這就是CS無法顯示中文的原因。經過測試,使用 ISO8859-1 進行中間編碼是不會導致數據丟失的。那么我們是不是可以修改代碼把編碼轉過來來呢?當然可以 !

但是由于自己比較菜,直接修改CommonUtils.java以后編譯不過去(表示很難受,如果你會編譯,還希望不吝賜教)。所以只能去修改BeaconC2.java。

經過多次測試,發現在CS上執行命令以后返回的結果編碼為GBK,所以轉碼過程為
CommonUtils.java轉碼:

GBK -> ISO8859-1

我們要修改的BeaconC2.

ISO8859-1 -> GBK -> UTF-8

所以思路就很明朗了,我們只需要在傳入rest之前把中文轉換成UTF-8就可以了,代碼也很簡單,測試如下:

1522337535419.png)

所以關鍵代碼為:

String tmp = CommonUtils.bString(CommonUtils.readAll(in));
String tmp1 = new String(tmp.getBytes("ISO8859-1"),"gbk");
String rest = new String(tmp1.getBytes(),"utf-8");

源代碼是這樣:

1522337880400.png

修改以后是這樣:

1522337852391.png

所以找到所有的:

 String rest = CommonUtils.bString(CommonUtils.readAll(in));

替換即可。

0x03 編譯替換

修改以后,需要把BeaconC2.java編譯之后替換原來的BeaconC2.class。編譯方法很簡單,只需要把BeaconC2.java放到解壓以后的CS目錄,執行以下命令:

javac -classpath . BeaconC2.java -Xlint:unchecked

在這里,可能會碰到以下報錯

1522338365724.png

這里可以改一下代碼,將

import c2profile.MalleableHook.MyHook;
import dns.DNSServer.Handler;

改為:

import c2profile.MalleableHook;
import dns.DNSServer;

在進行編譯即可。之后將原來的BeaconC2.class替換,我們的CS就修改完成了。

0x04 效果

這里錄了一個DEMO:

CS.gif

0x05 糾錯

經過小伙伴的反饋以及我自己的測試,發現這么粗暴的改是有問題的,如果把所有輸出的編碼都改了,會使得程序流程走不通,部分功能不能使用,所以還是要針對性的修改。也就是在BeaconC2.class 中修改想要的輸出部分,首先,檢索received output, 把其對應的

 String rest = CommonUtils.bString(CommonUtils.readAll(in));

替換,之后經過測試 type == 22 是回顯文件列表的,所以我們只需要修改這部分就好了。如下圖:

1522599287195.png

這樣就不會造成程序其他功能上的錯誤了。關于上傳,下載,執行等,都寫在TaskBeacon.class 里面,可以針對性對其編碼進行修改。這里就不詳細說明了,有興趣的可以自己去讀一下代碼,關于文件瀏覽,我們可以定位到
aggressor/windows/FileBrowser.class,其雙擊事件代碼如下:

1522637355520.png

調用了ls 方法:

1522637409194.png

ls 方法調用了 beacons.task_ls,快速定位到server/Beacons.class, 由于雙擊事件是取得返回轉碼以后的文字,所以要讓功能正常使用,我們需要再將編碼轉回去,修改如下:

1522637549907.png

這樣就可以正常使用文件瀏覽功能了,以上替換的class文件已經推到了github,歡迎小伙伴一起來修改bug~

GITHUB:

Responses
  1. soulflag

    我缺啥,師傅弄啥,666

    Reply
  2. soulflag

    顯示是沒問題列,文件瀏覽 ,進不去文件夾了,依舊亂碼

    Reply
    1. @soulflag

      更新了一下,可以cd到目錄以后在打開文件瀏覽查看。

      Reply
    2. @soulflag

      已更新github。

      Reply
  3. 我直接用師傅GitHub的class不行啊

    Reply
    1. @Lucifer

      咦。是什么情況呢?

      Reply
      1. @Evi1cg

        師傅能發我郵箱一份嗎。我這里改了半天還是不行,亂碼呢

        Reply
      2. @Evi1cg

        難道是因為我電腦是win,不應該啊,難受,很難受

        Reply
        1. soulflag
          @Lucifer

          改完以后 ,服務器那邊也要替換成修改后的cs

          Reply
          1. @soulflag

            nice,謝謝師傅

            Reply
  4. gorgias

    使用javassist可以修改common.CommonUtils的的bString方法,只修改這個好像沒什么反應

    Reply
    1. gorgias
      @gorgias

      直接修改bString的話Listener會用不了,還是根據需要一個一個改吧

      Reply
  5. 我是小白

    一個小地方忘記了大神,keystrokes 回顯中文亂嘿嘿。

    Reply
    1. @我是小白

      已更新。

      Reply
福彩3d出号走势图彩乐乐
3D任5选2组合遗漏分析 福彩3d跨度走势图带连线图 3d和尾走势图带连线 福彩3d和值走势图500期 3d和尾走势图大全 福彩3d大小奇偶走势图500期 今天3d试机号分析 福彩3d组三走势图带连线图 彩票3d试机号分析 福彩3d和值走势图带连线易彩网 福彩3d出号走势图彩宝贝 彩吧助手福彩3d出号走势图 福彩3d和值走势图带线 3d试机号分析17500 南方福彩3d跨度走势图带连线
腾讯靠qq赚钱 今日上证股票指数 刺激战场官网公告 做陶瓷工程业务员赚钱吗 组六组三同时买的方案 全民麻将官方 11选5每期杀一号稳赚 年后赚钱 辽宁省11选五遗漏号 必中pk10计划软件