cobalt strike(以下簡稱cs)是紅隊在滲透攻擊中的一款神器,使用穩定,功能全面。本文是對cs生成的exe檔案進行分析,看看cs生成的木馬有什麼高明之處。
工具準備:cobalt strike
idax32dbg
exeinfope
cs能生成的木馬有很多種,如下圖所示:
這裡我不一一介紹,有興趣的同學自行去研究。我們這裡先選擇windows executable
注:windows executable 生成可執行的分段payload
windows executable(s) 生成可執行的不分段payload
生成之後我們會得到乙個exe檔案,這是我們今天進行逆向的主角。
cs生成的exe其實是乙個loder,也就是載入器,載入器載入裡面的shellcode來執行主要功能,所以我們進行逆向分析的時候也分成兩個步驟:外層loder分析和內層shellcode分析。
我們先用exeinfope對檔案進行簡單了解
無殼。接下來扔進ida進行靜態分析。
main函式這裡呼叫了兩個函式之後呼叫了乙個sleep,跟進27f0發現沒什麼東西,我們直接看1840
pipe是關鍵字,呼叫sprintf函式,拼接乙個管道名。接下來建立了乙個執行緒,進入建立的執行緒1713裡看看
帶著兩個引數進入1648,接著看
這就是乙個標準的建立管道的乙個過程,重點我們關注一下writefile那裡,向管道寫入,寫的就是我們的傳參,這應該就是加密之前的shellcode。
接下來返回到1840
返回時進入了17e2
先分配乙個空間,然後進入1732
標準的從管道讀,讀的東西就是我們剛才寫進的東西。再看158e
先開闢空間,然後將我們剛才讀出來的東西與4個迴圈數進行異或(經過多次除錯,發現這四個數每次都是不一樣的),最後得到一串解密後的資料,我們有理由猜測,這解密後的資料就應該是執行的shellcode,最後開啟執行緒執行shellcode。當然,光猜是不行的,我們要進行動態除錯到記憶體裡去抓抓看。接下來開啟x32dbg進行動態除錯。
我們跟進到40158e裡
異或之後的資料儲存到了ds:[edi+ecx],我們到記憶體裡跟一下
我們可以這是乙個非常典型的pe檔案,也就是外層載入器載入了乙個dll檔案,這個dll檔案應該是cs馬實現功能的主要地方。
至此,我們外層的載入器分析告一段落。
進入到startaddress函式裡,有乙個jmp eax,會直接跳到我們剛才讀出來的dll,它裡面的函式是這樣的
第乙個call不用太看,call ebx大概看了一下,開闢了一段空間,把這一段的資料寫進去,然後下乙個call eax轉到另乙個地方開始執行,這個地方就是我們dll的入口點了。
一點點往裡跟蹤,看看我們能不能找到有什麼有用的資訊
網路請求行為:
設定休眠:
這裡跟了一下,發現有個sleep函式,應該是與預設心跳有關那裡。
操作相關:
注意這裡,我們有乙個internetreadfile,把返回值讀到eax裡,這個地方就是判斷你輸入了什麼指令,對應這幾種情況
程式的大體邏輯就是這樣。
至此,我們已經對cs馬的執行邏輯有了基本的了解。
當然,我們只是分析了一種的情況,分段的馬外層是一樣的,但內層有區別,我們簡單看一下,
首先看一下解密後的shellcode
很明顯和之前不一樣了
迴圈的在獲取api
發起請求,用virtualalloc開闢一段空間,然後不斷的用internetreadfile讀取檔案,最後得到的dll就和上面的差不多了。
經過分析我們發現,cs的馬主要的乙個載入方式是用載入器解密shellcode,然後執行dll,所有主要功能都在dll裡面,理論上載入器我們可以隨意更換的。
生成python程式的exe檔案
pyinstaller f py生成單個exe檔案。閃過一堆提示後,程式放在dist資料夾下面,然後我使用cmd控制台切換到dist路徑,執行exe檔案,提示缺少package,比如six。我開啟python命令列,輸入import six,一切正常。然後我輸入 pyinstaller f py w...
縮小vs生成的exe檔案
在做讓mcu程式顯示自身crc值的同時,也要做乙個校驗碼軟體,用來計算其crc值。在用vs2012中的mfc製作這個小工具的時候,生成的檔案非常大 3 4mb 明明裡面沒啥大型的東西,怎麼會占用那麼多尺寸呢?用壓縮軟體開啟生成的exe檔案,發現裡面嵌入了大量的png資源。解決方法 步驟1 開啟 st...
mybatis逆向工程生成的Example類的使用
在example 除了這有的以外 and or,還有聯表查詢,批量增刪改?這些怎麼寫?通過criteria構造查詢條件 userexample userexample new userexample userexample.setorderbyclause username asc asc公升序,d...