CobaltStrike手冊系列-安裝及功能介紹篇

  • 2019 年 10 月 6 日
  • 筆記

1.1 什麼是CobaltStrike?

Cobalt Strike是滲透測試軟件,旨在執行有針對性的攻擊並模仿高級威脅參與者的後期攻擊行為。本節介紹Cobalt Strike的安裝及功能介紹。本手冊的其餘部分詳細討論了這些功能。

圖1.後利用的過程

通過偵察目標開始你的攻擊。Cobalt Strike的系統分析器是一個Web應用程序,可以映射目標的客戶端攻擊面。

使用Cobalt Strike將常見文檔轉換為武器化成果。設置惡意Java Applet,將惡意宏嵌入到Word文檔中,或創建刪除文檔並執行Payload的可執行文件。這些用戶驅動的攻擊是在目標網絡中立足的完美工具。

使用Cobalt Strike的魚叉式網絡釣魚工具進行攻擊。此工具將保存的電子郵件重新用於像素完美的網絡釣魚。使用此工具將武器化文檔或直接將目標發送到具有嵌入式攻擊的克隆站點。

使用CobaltStrike的Beacon控制目標網絡。此Payload使用與高級威脅惡意軟件相同的異步「低速和慢速」通信模式。Beacon將通過DNS,HTTP或HTTPS通過返回。Beacon經過常見的代理配置,並通訊多個主機以防止攔截。

使用Beacon的Malleable Command andControl語言練習目標的攻擊歸屬和分析功能。重新編程Beacon以使用看似已知惡意軟件或與現有流量混合的網絡指示器。

轉向受感染的網絡,發現主機,並通過命名管道進行Beacon有用的自動化和點對點通信,從而橫向移動。Cobalt Strike經過優化,可捕獲信任關係,並通過捕獲的憑據, 密碼哈希,訪問令牌和Kerberos票證實現橫向移動。

使用Cobalt Strike的用戶開發工具展示有意義的業務風險。Cobalt Strike獨特的工作流程可以輕鬆地將鍵盤記錄器和屏幕截圖捕獲工具大規模部署到多個被控系統。使用瀏覽器代理可以訪問使用Internet Explorer登錄受感染目標的網站。這種僅限Cobalt Strike的技術適用於大多數站點並繞過雙因素身份驗證。

Cobalt Strike的報告功能可以重建您的客戶的參與度。為網絡管理員提供活動時間表,以便他們可以在傳感器中找到攻擊指示器。Cobalt Strike可生成高質量的報告,您可以將這些報告作為獨立產品呈現給您的客戶,或用作您書面敘述的附錄。

1.2 安裝和更新

Strategic Cyber LLC將Cobalt Strike軟件包作為Windows,Linux和MacOS X的本機存檔進行分發。要安裝Cobalt Strike,只需將其存檔提取到您的操作系統中即可。

系統要求

Cobalt Strike需要Oracle Java 1.8,Oracle Java 11或OpenJDK 11的環境。

如果您的系統上有防病毒產品,請確保在安裝Cobalt Strike之前將其禁用。

試用版與完整版

主要的Cobalt Strike包是試用包。Cobalt Strike試用版是有時效的,但試驗和許可產品之間存在重要差異。CobaltStrike試用版不會對其BeaconPayload中的任務和響應進行加密。該試用版還會產生可執行文件和網絡流量,並故意告訴大多數安全產品。(譯者註:看到這裡我相信很多人想砍他)

更新許可的cobaltstrike產品

要充分受益於Cobalt Strike的功能,您必須使用許可證密鑰更新到許可產品。試用版中包含執行此操作的更新程序。該程序接受許可密鑰並為您獲取最新的Cobalt Strike版本。獲得許可的Cobalt Strike軟件包含該產品的通信安全功能,並刪除了試用版中的坑。

圖2.更新過程(很簡單,但圖示的密鑰不再有效)

確保使用許可證密鑰更新團隊服務器和客戶端軟件。Cobalt Strike通常按用戶許可。團隊服務器不需要單獨的許可證。

1.3 Team Server

Cobalt Strike分為客戶端和服務器組件。該服務器稱為團隊服務器,是Beacon Payload 的控制器,也是Cobalt Strike社交工程功能的主機。團隊服務器還存儲Cobalt Strike收集的數據,並管理日誌記錄。

Cobalt Strike團隊服務器必須在受支持的Linux系統上運行。要啟動Cobalt Strike團隊服務器,請使用Cobalt Strike Linux軟件包附帶的teamserver腳本。

圖3.啟動Team Server

團隊服務器有兩個必需參數和兩個可選參數。第一個是團隊服務器的外部可達IP地址。Cobalt Strike使用此值作為其功能的默認主機。第二個是您的團隊成員用於將Cobalt Strike客戶端連接到團隊服務器的密碼。

第三個參數是可選的。此參數指定Malleable C2通信配置文件。第12章討論了這個功能。

第四個參數也是可選的。此參數指定YYYY-MM-DD格式的終止日期。團隊服務器會將此終止日期嵌入其生成的每個Beacon階段。Beacon Payload將拒絕在此日期或之後運行。如果Beacon payload在此日期或之後喚醒,它也將退出。

當團隊服務器啟動時,它將發佈團隊服務器的SSL證書的SHA256哈希值。將此哈希分發給您的團隊成員。當您的團隊成員連接時,他們的Cobalt Strike客戶端會在向團隊服務器進行身份驗證之前詢問他們是否識別此哈希。這是防止中間人攻擊的重要保護。

1.4 CobaltStrike客戶端

Cobalt Strike客戶端連接到團隊服務器。要啟動Cobalt Strike客戶端,請使用平台軟件包附帶的啟動程序。

當Cobalt Strike客戶端啟動時,您將看到一個連接對話框。

圖4.Cobalt Strike Connect對話框

在「主機」字段中指定團隊服務器的地址。團隊服務器的默認端口是50050.很少有理由更改此設置。「用戶」是團隊服務器上的昵稱。將此更改為您的稱號或黑客名稱。「密碼」是團隊服務器的共享密碼。

點擊Connect連接到Cobalt Strike團隊服務器。

如果這是您與此團隊服務器的第一次連接,Cobalt Strike將詢問您是否識別此團隊服務器的SHA256哈希值。如果您這樣做,請按OK,Cobalt Strike客戶端將連接到服務器。Cobalt Strike還會記住這個SHA256哈希,以便將來連接。您可以通過Cobalt Strike – >Preferences – > Fingerprints管理這些哈希值。

圖5.驗證服務器的SSL證書

Cobalt Strike會跟蹤您連接的團隊服務器並記住您的信息。從連接對話框的左側選擇其中一個團隊服務器配置文件,以使用其信息填充連接對話框。您也可以通過Cobalt Strike – > Preferences- > TeamServers修剪此列表。

1.5 分佈式和團隊運營

使用Cobalt Strike來協調分佈式紅隊的工作。在一個或多個遠程主機上進行階段CobaltStrike。啟動您的團隊服務器並讓您的團隊聯繫。

連接到團隊服務器後,您的團隊將:

· 使用相同的會話

· 共享主機,捕獲的數據和下載的文件

· 通過共享事件日誌進行通信。

Cobalt Strike客戶端可以連接到多個團隊服務器。轉到Cobalt Strike – > New Connection

以啟動新連接。當連接到多個服務器時,開關欄將顯示在Cobalt Strike窗口的底部。

圖7.服務器切換欄

此開關欄允許您在活動的Cobalt Strike服務器實例之間切換。每個服務器都有自己的按鈕。右鍵單擊按鈕,然後選擇「重命名」以生成按鈕的文本在您的參與過程中反映服務器的角色。此按鈕名稱還將標識Cobalt Strike活動報告中的服務器。

當連接到多個服務器時,Cobalt Strike會結合所連接的所有服務器的listeners。此結合允許您從引用另一台服務器上託管的惡意網站的一台服務器發送網絡釣魚電子郵件。您還可以在一台將Beacon會話發送到另一台服務器的服務器上輕鬆設置攻擊。在您攻擊結束時,Cobalt Strike的報告功能將查詢您連接的所有服務器併合並數據以出示一個報告。

1.6 CobaltStrike腳本

Cobalt Strike可通過其Aggressor Script語言編寫腳本。Aggressor Script是Armitage的Cortana腳本語言的精神繼承者。但兩者並不兼容。要管理腳本,請轉到Cobalt Strike -> ScriptManager。

圖8.腳本管理器

Cobalt Strike中的默認腳本定義了所有Cobalt Strike的彈出菜單,並格式化Cobalt Strike 控制台中顯示的信息。通過Aggressor Script引擎,您可以覆蓋這些默認值並根據您的偏好自定義Cobalt Strike。

您還可以使用Aggressor Script向Cobalt Strike的Beacon添加新功能並自動執行某些任務。

要了解有關Aggressor Script的更多信息,請參閱以下文檔:

  • https://www.cobaltstrike.com/aggressor-script/

來源:Ms08067安全實驗室