7.Cobaltstrike上線(stager、stagerless、Bind+令牌偽造)


一、Cobaltstrike上線方法——stager

 

1、stager的特點:

目標機器執行后,會向teamserver發起一個GET請求,從而用post下載真正的shell code。因此stager的體積一般比較小

 

2、EXE形式的stager:

 

這個是之前我們用的最多的

 

 

 

 

 

3、Server EXE形式的stager:

 

生成方式:

 

 

 

 

 

 

生成文件后放到目標機器上執行,發現什么變化都沒有。這是因為Server EXE是以服務的形式啟動的,因此,首先我們需要一個繞過UAC的管理員權限創建一個服務,然后啟動該服務來執行。

執行命令:

sc create "serever name" binpath="SERVER PATH"              //創建一個服務

sc start "server name"                                                             //啟用一個服務

 

此時回到teamserver就可以看到多了一條session了

 

我們也可以將上傳的文件隱藏,否則太顯眼了

attrib +h server.exe    //添加文件隱藏

attrib -h server.exe    //取消文件隱藏

 

4、dll文件形式的stager:

 

dll文件生成方式:

 

 

 

 

 

 

dll文件的啟動需要用export導出函數。因此在Cobalt Strike和MSF都要用Start來啟動,注意Start首字母大寫。

 

 

 

這里我們用rundll32.exe啟動上傳的dll文件,別忘了在后面加上Start。此時teamserver就多出一條session了

 

 

 

5、powershell形式的stager:

 

Powershell是在win7之后才有的

啟動方式:

 

 

 

這里的url可以隨便設置,但建議設置的復雜一些,否則容易被安全廠商的設備發現

 

 

 

接着我們就可以把里面這一串復制出來,只要我們在目標機器上運行此代碼,即可上線成功。

 

 

 

6、bitsadmin形式的stager:

 

bitsadmin是Windows自帶的下載命令,使用方式與上面的poweshell相似

 

 

 

 

然后得到一串代碼,在目標機器上運行結束即可成功上線

 

7、python形式的stager:

 

與poweshell、bitsadmin的上線形式相似,這里不再贅述,只要目標機器上有python環境即可

 

 

 

8. regsvr32形式的stager

查了下資料,regsvr32有點怪,因為當能使用regsvr32命令時一般已經擁有了這台計算機的shell,此時如果沒有殺軟直接執行powershell上線cs的命令,如果有就做個免殺直接上傳木馬執行就好了。反正這東西我也沒成功過

 

 

二、Cobaltstrike上線方法——stagerless

 

 

1、stagerless的特點:

生成的文件是完全體,目標機器在執行文件后,無需向teamserver發起一個GET請求下載真正的shell code。因此stagerless無需下載,但它的體積一般比較大,且更有可能被殺軟發現,在不易出網的環境中可能有用。

 

2、powershell形式的stagerless:

①首先創建一個powershell文件,然后把文件扔上目標機器

 

 

 

 

②接着我們就開始在目標機器上運行powershell文件

 

 運行命令:

powershell -f powershell_less.ps1                                  //執行powershell_less文件

powershell -ncp -exec bypass -f powershell_less.ps1   //遇到阻止策略時的執行方法

 

 

這里我們就遇到阻止的策略了,bypass繞過一下

 

 

 

 

 

 

回到teamserver這邊看看,成了。

 

 

 

此外,這個powershell文件還可以轉EXE格式。

 

3、其他形式的stagerless:

  

其他形式的與stager相似,這里就不再贅述了

 

 

三、Cobaltstrike上線方法——Bind+令牌偽造

 

 

1、tcp_bind的使用場景:

 

如果我們從web服務器用ms17-010或者找到了登陸憑證成功進入內網機器,可以執行一些命令或者上傳一些EXE等payload,但我們發現這台內網機開了防火牆,雖然可以我們關閉防火牆或者更改防火牆規則,但這樣一來就很容易被管理員發現,因此tcp_bind就派上用場了

 

 

 

2、使用tcp_bind的操作:

Port(C2) 選項為 TCP Beacon 將等待連接的端口

 

 

 

監聽建立完成后,從這里弄一個攻擊包:

 

 

 

 然后把生成的文件發送到目標機器上執行,執行后這個機器會自動監聽剛剛我們配置的端口,這里就是4444

 

 

  

然后回到teamserver,打開web服務器的beacon,用connect命令連接目標機器,就能得到一個session了。當我們利用完工作結束之后,記得用unlink命令斷開連接(用法與connect相同),以免被管理員發現

 

connect <目標IP>      //tcp_bind建立連接

unlink <目標IP>         //tcp_bind斷開連接

 

 

 

 

 

 

3、使用smb_bind的操作:

實現條件:開放445端口或者關閉防火牆

先建立一個監聽器

 

 

 

然后利用這個監聽器生成一個文件上傳至目標機器:

 

 

 

 

 

由於是smb,所以不能直接用link命令,我們需要知道目標機器的賬號密碼,或者有目標機器的令牌。如果我們獲取到了對方的賬號密碼,可以用make_token來偽造令牌,然后再用link命令連接即可

 

make_token <目標機器賬號> <目標機器密碼>           //偽造令牌

link <目標IP> <在創建監聽器時填寫的pipname>        //smb_bind連接

 

 

 

 

 

 

此外,如果我們想清除令牌,可以用rev2self

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM