淺談windows 2008如何安裝Cobalt Strike
看了windows 2008如何安裝Cobalt Strike ,覺得自己也有很多想法想說說,首先安裝使用這塊其實沒文章里說的那么麻煩的,在win2k8上啟動msfrpc,直接幾行就行:
@echo off CALL "D:/metasploit\scripts\setenv.bat" cd D:\metasploit\apps\pro\msf3\ ruby msfrpcd -U msf -P msf -S -f
在windows上所謂的破解cobaltstrike,也沒那么麻煩,一個bat搞定:
@echo off del C:\Users\Administrator\.cobaltstrike.prop java -XX:+AggressiveHeap -XX:+UseParallelGC -jar D:\tools\cobaltstrike-trial\cobaltstrike.jar
這樣永遠都是21天試用。
關于cobaltstrike(以下簡稱CS) ,它不僅僅是一個圖形界面化了的MSF,更重要的是它帶來的附加功能和團隊協作能力,官網(http://www.advancedpentest.com/)有詳細的視頻教程,作者語速適中,聽力沒問題的應該能聽懂吧?如果有需要我可以考慮做幾個中文的教程.另外,作者(Raphael Mudge,blog地址:http://blog.strategiccyber.com) 的博客上也有大量相關技術資料,仔細品讀會有不少收獲的。
最重要的是,強烈建議不要在windows下用CS連接本地MSFRPC,我跟作者溝通過,windows下可能會出現些莫名其妙的問題,最好是在kali下運行,很穩定,功能也都可以用。而最重要的一點是,CS支持team合作模式,也就是說它有個teamserver程序,可以通過msfrpc把MSF當成一個服務端,支持多個人遠程登錄到CS的teamserver端,協同滲透.而這個teamserver只支持linux,so,do you get it?(當然,如果你使用的是teamserver模式的話,那CS客戶端運行在linux或者windows上就都可以了)
關于beacon,這個東西最吸引人的地方可能就是它的DNS和DNS-TXT回連方式了(當然,它還支持http方式)。利用DNS查詢包和應答包來進行通訊,方法是:你要有一個可控的域名,然后再添加一個A記錄,指向到你的外網IP(運行CS的機器,如果是teamserver模式,那就是運行teamserver的機器的外網IP),然后再添加幾個NS記錄(一般2~3個就夠了),將其解析倒你添加的那條A記錄上。這樣,當beacon運行時(以DNS或DNS-TXT方式),就會去查詢你設置的NS服務器,查詢包最終會到達你的機器,然后產生應答包,如此往來通訊。DNS模式采用的是輪詢機制,每隔一段時間來服務器查詢一下有沒有要執行的任務,有就執行然后回傳結果,沒有就繼續等待下次輪詢。這種方式很大程度上可以繞過內網的很多限制,但是缺點就是每次承載的數據量是有限的,所以在大數據量的情況下,會產生非常多的DNS包。好在beacon支持實時轉換通訊模式,可以使用mode命令隨時切換到HTTP模式上。所以一般情況下,使用beacon的dns模式回連成功后,根據實際情況再進行模式的轉換(具體操作效果,在官網視頻里有演示)。
因為我使用MSF的目的只有兩個:信息收集和后滲透。所以我一般很少使用MSF和CS里自帶的自動化攻擊模塊去直接攻擊目標(雖然自動化帶來了便利,但是同樣帶來了不可控的過程,我不喜歡不可控的東西!),因此beacon對我來說就是個后滲透的工具(可以理解為RAT都行,因為beacon已經具備了RAT幾乎所有的功能了),然而CS里的beacon只能是在使用各種攻擊手段(比如溢出,釣魚等等)成功在目標機器上運行了stager后(即第一階段的shellcode),由stager負責將beacon拉回到目標機器上加載執行,這不符合我的要求。我一般都是成功拿到目標機器權限后,為了進一步做內網滲透才會用beacon,這就需要我自己單獨上傳beacon去執行。而CS它是在你選擇好各種攻擊參數后,就自動在你的機器上生成一個.dll文件,而這個文件已經被兩次encode過了(使用的是MSF自帶的encoder:shikata_na_gai和alpha_mix)。所以沒法直接拿來用,而在cobaltstrike.jar文件里,有個resource目錄下面會有一個beacon。dll,這個dll就是沒有加密前的模板文件,我們只需要弄懂它的配置信息是怎么寫的(由于自己的白癡腦子,這個我花了好久時間才搞定),就可以基于這個模板文件,做自己的生成器,并利用dll2shellcode將其轉換為shellcode,然后用自己的加密方式加密,這樣免殺效果一流,而且可以應用到多個場合下。(關于dll2shellcode,現在這個DD應該都普及了吧?任意dll轉成shellcode有兩種實現方式,一種是中規中居的加載dll,解析其導入表再重寫重定位表等等,另一種是一種猥瑣方式的加載就是將dll直接轉換成binary code后在其前面附上一段shellcode負責將dll的binary code解密還原后直接內存加載,不管哪種方式效果是一樣的。現在任意exe轉換成shellcode也不是難事了,有了這兩個神器,有沒有源碼,你都可以進行免殺和改進了,翻翻過去的工具,哪些是非常好卻因為免殺問題而坐了冷板凳的呢?)
在這里,我順便提一下MSF里的meterpreter,你稱它神器一點都不為過。懂編程,會玩shellcode的朋友,可以將meterpreter的多種回連方式的shellcode提取出來,定位出回連地址和端口的位置,自己進行加密封裝,然后做成一個生成器,從此,你將擁有一款強大的后滲透專用的RAT!
說到這里我不禁要贊嘆一下,老外的思想確實有很多值得學習的地方,這也是我常年混跡于國外各種論壇,blog等帶給我的好處。有關于MSF和CS的東西我有很多要說的,但限于篇幅一次也說不完,這都是我長期使用的經驗,有機會一一道來吧。有想交流的可以跟帖或者直接給我發郵件:moriarty@cetgroup.org。
最后我要說的是,MSF真是個好東西,如果你精通ruby,又已經把MSF的代碼吃透了,那這個MSF在你手里就不僅僅是一個工具了,你可以任意修改和擴展它,使得它更適應你當前的工作。你能想象的到的工作,用它一個就夠了!
官網更新的最新版本1.48我已經都下載(mac,linux和windows版本)下來了,對于懶人朋友可以從這里直接下載這三個包: