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安全實驗室