HW : Cobalt Strike 應該這樣學


 

閱讀本文大概須要 5 分鐘。html

 

   2020年 第  14  篇文章 ,flag 繼續 python

每週至少更一篇linux

前言

良好的習慣是人生產生複利的有力助手

上一篇文章中講解了elf loader的實現,接下來會有文章繼續拓展這個內容:打造無execve的shellcode版 bash,將來的linux滲透大殺器。git

今天不分享這個,以前分享HW資料的時候,有朋友後臺給我留言讓我分享一下HW中的攻擊,有點超出個人能力邊界了。github

可是想一想 HW中使用 Cobalt-Strike 仍是挺多的,因而就分享一下Cobalt-Strike的學習吧,花了一週的時間看了官方手冊,以及網上公開的資料,對Cobalt-Strike有了總體認識。web

此次的分享比較宏觀,但願能對你們Cobalt-Strike的學習有必定的啓發做用吧。shell

一.高質量的輸入

輸入windows

Cobalt Strike 4.0 手冊 :安全

關注公衆號,回覆 【13】返回下載連接。bash

Cobalt Strike|Beacon原理淺析

https://www.secpulse.com/archives/124454.html

啓明星辰ADLab:滲透利器Cobalt Strike在野利用狀況專題分析

https://nosec.org/home/detail/4449.html

Cobalt-Strike 系列

http://blog.leanote.com/cate/snowming/Cobalt-Strike

Cross C2

https://github.com/gloxec/CrossC2/blob/master/README_zh.md

基於DNS、HTTP和HTTPS隧道協議的木馬流量分析

http://www.lucien116.com/archives/261

滲透測試神器Cobalt Strike使用教程

https://www.freebuf.com/company-information/167460.html

滲透利器Cobalt Strike - 第2篇 APT級的全面免殺與企業縱深防護體系的對抗

https://xz.aliyun.com/t/4191

Cobalt-Strike-Aggressor-Scripts

https://github.com/qiyeboy/Cobalt-Strike-Aggressor-Scripts

Cobalt Strike手冊-環境搭建與基本功能:

https://cloud.tencent.com/developer/article/1512022

70.遠控免殺專題(70)-終結篇:

https://mp.weixin.qq.com/s/4shT8tP-Gu3XX7fnWKQHAA

二.思考整理輸出

思考整理輸出

找到比較合適資料後,不要匆忙地去學習細節,容易陷入裏面,沒法產生對Cobalt-Strike的總體認知,沒法實現對知識的降維打擊。

在學習Cobalt-Strike的過程當中 ,先從定位,架構,功能,核心概念四個方面入手,至於對抗就屬於比較細節的內容了,你們實踐就能夠了。總體思路以下圖所示。

定位

首先須要瞭解一下Cobalt-Strike 的定位,沒有什麼解決方案是萬能的,瞭解它的定位才能知道它的適用邊界。在官方手冊中有說明:

Cobalt Strike 是一個爲對手模擬和紅隊行動而設計的平臺,主要用於執行有目標的攻擊和模擬高級威脅者的後滲透行動

簡單說就是適合有肯定目標的apt攻擊,對那種大範圍的「無腦」攻擊,例如ddos,僵屍網絡,是不適用的。

下圖是官方手冊中描述Cobalt-Strike的一個攻防過程,有各類安全防護工具,也有攻擊突破。

架構

Cobalt-Strike 是一個C/S結構,比較特殊的是屬於多對多的關係,以下圖所示:


一個client能夠鏈接多個server, 一個server能夠被 多個client鏈接,在下圖中 cobaltstrike.exe對應的是client,teamserver 對應的是 server。 


雖然不少文章也是如上文描述Cobalt-Strike的架構,可是我我的認爲被攻擊機器上的木馬也應該屬於client端,只是功能和角色不同罷了。

類比一下,好比咱們使用的QQ和微信,騰訊的服務器屬於server端,裏面維持着全部client的通訊和數據存儲,每一個人的QQ APP 屬於client,而QQ項目組員工的運維平臺也應該屬於client。

下圖描述了Cobalt-Strike在攻擊過程當中的架構關係:

功能

總結起來,Cobalt-Strike 就幹了兩件事 :種馬 和 用馬。在本機,簡單使用Cobalt-Strike 演示一下種馬和用馬。

1. 啓動TeamServer

192.168.0.108:這是主機ip

qiye:這是client 與teamserver 鏈接使用的口令

2. 啓動Cobalt-Strike 鏈接teamserver

雙擊 cobaltstrike.exe,teamserver默認端口 爲50050,輸入User(隨意只是個標識),輸入password(見上文) 。

最後connect 鏈接上線: 

3. 建立Listener和beacon

在Attacks中選擇 PE的攻擊方案生成 exe,你也能夠選擇其餘的payload,好比生成 宏和html 應用。 

接着選擇反連http的payload,選擇listener中監聽的ip和端口,listener是和teamserver是一側的,生成的木馬文件則是位於被攻擊主機,木馬保存爲artifact.exe。

4. 木立刻線

雙擊artifact.exe,木立刻線,在被攻陷主機上執行個whoami。

核心概念

看你對一個事物是否清楚,主要是能明白其中的核心概念。

TeamServer

TeamServer是整個系統中的「大腦」,包括數據的存儲和共享,並維持着client的鏈接和流量中轉

Listener

附屬TeamServer的監聽設施,與Beacon呼應 ,生成一個Beacon 對應一個Listener與之鏈接。

Beacon

Beacon 在Cobalt-Strike 中是很常見的概念,它是Cobalt Strike運行在目標主機上的payload,Beacon在隱蔽信道上爲咱們提供服務,用於長期控制受感染主機,簡單理解的話就是一個木馬。Beacon payload 有兩種傳輸方式,第一種,像我上文使用的那樣,是生成一個完整功能的payload。第二種是分段傳輸payload,屬於 Staging模式,主要分爲兩個部分:

  1. stager :payload加載器,很精簡的彙編指令

  2. stage:真正的payload

這種模式適用於漏洞場景。假如windows有一個遠程代碼漏洞,exp 須要使用較短的shellcode,有長度限制,這很常見,否則沒法觸發,若是Cobalt-Strike 直接生成一個完整木馬,是沒法使用的,那能夠先生一個精簡的payload加載器,裏面的功能只有下載和執行,完整的payload在下載的內容中。

對抗

Cobalt-Strike 在滲透測試過程當中,主要對抗如下安全防護產品:

  1. 防火牆

  2. 殺軟

  3. EDR

  4. IDS

檢測手段無外乎,針對文件,流量和行爲,具體在思惟導圖中,你們能夠看一下 高質量的輸入 章節中的對抗方式,再也不贅述。

最後

Cobalt-Strike 進行對抗很靈活,你們按照官方手冊好好練習,提供一份 破解版 cobaltstrike3.14 ,你們在公衆號 回覆【14】便可。

最近有朋友說在後臺和我交流技術不是很方便,下面是個人微信號,想進行技術交流的能夠加我,備註公衆號賣貨的,伸手黨不要加我,謝謝。

     

推薦閱讀

WebShell通用免殺的思考

WebShell "幹掉" RASP

無文件執行:一切皆是shellcode (中)

無文件執行:一切皆是shellcode (上)

linux無文件執行— fexecve 揭祕

沙盒syscall監控組件:strace and wtrace

無"命令"反彈shell-逃逸基於execve的命令監控(上)

APT組織武器:MuddyC3泄露代碼分析

Python RASP 工程化:一次入侵的思考

教你學木馬攻防 | 隧道木馬 | 第一課


若是你們喜歡這篇文章的話,請不要吝嗇分享到朋友圈,並置頂公衆號。

關注公衆號:七夜安全博客

回覆【11】:領取Sandboxie源碼

  • 回覆【1】:領取 Python數據分析 教程大禮包

  • 回覆【2】:領取 Python Flask 全套教程

  • 回覆【3】:領取 某學院 機器學習 教程

  • 回覆【4】:領取 爬蟲 教程

  • 回覆【5】:領取編譯原理 教程

  • 回覆【6】:領取滲透測試教程

  • 回覆【7】:領取人工智能數學基礎

  • 回覆【8】:領取 python神經網絡 教程 

  • 回覆【9】:領取 安卓逆向 教程  

本文分享自微信公衆號 - 七夜安全博客(qiye_safe)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索