您好,登錄后才能下訂單哦!
小編給大家分享一下摩訶草APT團伙新腳本類攻擊樣本的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
“摩訶草”組織,又稱Hangover、Viceroy Tiger、Patchwork、Dropping Elephant、MONSOON,國內其他安全廠商也稱其為白象、豐收行動。
該組織是一個以長期針對中國、巴基斯坦及其他部分南亞國家從事網絡間諜活動的APT組織。從2013年5月16日由國外安全廠商Norman首次曝光以來,該組織的網絡攻擊活動異常的活躍,并被國內外不少安全廠商相繼發現其攻擊事件和使用的惡意代碼。
360公司也曾在2016年8月4日發布了《摩訶草組織(APT-C-09)來自南亞的定向攻擊威脅》一文【1】,詳細介紹了該組織發起的歷史4次攻擊行動,并對其歷史使用的攻擊工具和基礎設施的關聯性進行比較和總結。
“摩訶草”組織主要針對我國的政府機構、科研教育領域以及軍事領域的目標人員進行攻擊,其主要使用魚叉攻擊,也使用基于即時通訊工具和社交網絡作為惡意代碼的投遞途徑。其攻擊使用的惡意代碼主要針對Windows系統,歷史也出現過針對其他平臺的惡意代碼。
360威脅情報中心在近期對“摩訶草”組織的攻擊活動監測過程中,發現其投入使用的新的攻擊樣本,我們決定發布此篇子分析報告,揭露該組織最新的攻擊技術細節。
“摩訶草”組織的攻擊活動從2013年5月16日首次曝光以來,其歷史的攻擊行動及使用的攻擊工具和資源也被國內外安全廠商多次揭露,但從360威脅情報中心對該組織的持續監測顯示,該組織的攻擊行動從未停止,并持續保持著一個比較高的頻度活躍。
自我們上一次公開發布“摩訶草”組織的完整分析報告,已經過去了一年多,我們發現該組織在過去一年依然延續了過去的一些攻擊模式,但使用的攻擊工具和惡意代碼還是出現了一些顯著變化。
我們發現,“摩訶草”組織最近發起了一次可能是針對東歐部分國家的攻擊事件,并使用了其新制作的一些基于腳本的攻擊惡意代碼文件,和過去常見的采用誘導漏洞文檔類的攻擊載荷手法出現了一些明顯變化,并且已經有部分烏克蘭用戶遭受此類攻擊并被植入遠控木馬。
目前我們尚不能確定該攻擊事件背后的攻擊動機,但為了預防該組織在未來的攻擊行動中進一步大規模使用該類攻擊惡意代碼,我們決定披露其部分技術細節并預警,以便能更好的防御其未來使用該類攻擊技術。
下面我們將重點分析“摩訶草”組織最新的腳本類攻擊惡意代碼技術。
在“摩訶草”組織最新制作的攻擊惡意代碼中,我們發現其主體模塊使用JS和PowerShell腳本進行編寫,并利用多次解密、拼接來釋放和加載下一階段的攻擊載荷。
下圖為該惡意代碼的結構和執行流程。
Dropper JS是一個96KB的腳本,其會釋放一個中間JS腳本。其前面部分為hex形式的附加數據被作為注釋語句存放;后面的腳本會先獲取當前正在執行腳本的路徑,并讀取自身文件數據,找到前面注釋的附加數據拼接起來,轉換成二進制形式,保存到”%temp%\laksasokpaslkak.js”,最后通過WScript容器執行這個腳本。
該腳本會首先判斷目標主機是否存在卡巴和NOD32程序,如果存在則腳本退出;如果不存在,會把腳本里的“dllData”和“code”兩個數據一起寫入到一個PowerShell腳本文件中,其名字為隨機生成的5個字節。最后執行該PowerShell腳本。
該PowerShell腳本以數組形式亂序放置Base64編碼的數據,通過Base64解碼并解壓成PowerShell腳本后,采用了一種Bypass UAC的形式來執行該腳本。其使用的Bypass UAC技術在另一個APT組織“海蓮花”的攻擊工具中也曾使用【2】。其通過修改注冊表鍵值劫持eventvwr.exe,調用SC命令創建一個服務,并指向解密后的PowerShell腳本。
PowerShell Loader腳本也是隨機生成的名字,其主要功能是加載主體遠控模塊。
該腳本從內存中加載payload,如下為加載代碼流程:
其中“strexp”保存的為遠控模塊的文件數據,經過base64decode解碼得到原始文件內容為一個DLL文件,其導出模塊名為socksbot.dll。最后使用ReflectiveLoader技術加載。
通過對加載的部分代碼分析,我們推測其可能參考了開源的代碼實現【3】,并添加了在64位Windows系統下的兼容性代碼。
該函數首先獲取當前函數的地址,然后往前搜索PE頭部“MZ”標志以定位該DLL模塊的基地址。
通過hash獲取3個函數LoadLibrary、GetProcAddr、VirtualAlloc的地址。
然后調用VirtualAlloc分配一片內存空間。
把該DLL模塊復制到新申請的內存中。
然后執行DllMain。
DllMain會首先獲取一些硬件信息計算出機器碼。機器碼是根據驅動器信息、電腦名和用戶名算出來的:
然后會獲取GetProcAddress和LoadLibraryA的地址,并把sub_1000234A代碼通過復寫進程的方式注入svchost.exe宿主中,如圖:
注入后的代碼會初始化網絡套接字,發送一次touch包,然后創建一個主線程函數,如下:
在主線程中會連接C&C服務器地址5.8.88.64:80。
這里我們詳細分析該遠控模塊使用的控制通信協議,其基于HTTP協議實現控制通信。
1. touch包
控模塊會發送touch數據包,其會根據機器碼生成對應的php路徑用作HTTP訪問的請求路徑,其將機器碼和隨機生成的密鑰加密并附上密鑰信息。
其具體算法實現如下:
計算后生成的機器碼字符串是放到HTTP數據包的GET數據里,例如生成的字符串為j2ylvj50suxr8vzss17s3.php,那么加密后的機器碼數據為j2ylvj50suxr8vzss17s3。其前16字節是機器碼加密后的數據,從16字節開始到末尾是隨機生成的密鑰信息,密鑰長度在5-16字節隨機,數值的范圍在0-35隨機,然后通過編碼成可見字符。
當服務器接收到該字符串會采用如下方式解密還原機器碼:
1) 分割出加密的機器碼和密鑰
2) 通過解密算法去解密前面16字節的機器碼。
例如這里對j2ylvj50suxr8vzss17s3.php進行解密。
分割j2ylvj50suxr8vzs為加密的16字節機器碼,s17s3為隨機生成的密鑰。解密算法如下。
從而解密還原出原始的機器碼:
其隨后構造成HTTP格式的數據包發送出去。
如圖為構造HTTP數據包的函數,UserAgent是通過ObtainUserAgentString函數生成的。
2. 指令下發
遠控服務器是通過不同的HTTP狀態碼來下發控制指令,受控端會進行判斷。
在返回的HTTP數據包頭中,Date字段中存放服務器返回的機器碼。
受控端會對服務器下發的控制信息進行解密,解密算法如下:
其解密密鑰為136字節。
EC1ABCB66F641126C2250C5CF26C9902BD53043EAAF5FE0374597261674FD732E2C0498A9FA06203C5641323C3B4DDCB5CD8A22A0EDCAE39A11D7E98A2B1B6276C595E7CC1E1A0C743B8C075416C7DB3CB509AB5059556E99D2818BDDDEEE508AC871474239CC4B5527A8AED49949D5A421C785484ED084F1FCD3D3CFD1D8D8B
3. 回傳數據
受控端接受到控制服務器下發的指令后,會根據HTTP返回的狀態碼確定要執行的命令,例如返回碼是203的時候就會上傳執行,返回碼是202的時候就會截屏和獲取進程列表。
并且上傳數據按如下格式構造:
4個字節長度 + 1字節token + 加密后的內容。
例如這里執行獲取屏幕截屏和進程快照信息,并加密發送到控制服務器。
該遠控模塊實現了以下控制命令,包括:
上傳執行腳本
上傳執行PE
回傳屏幕截屏
回傳進程列表
其使用HTTP協議進行控制通信,采用這種控制協議也更便于攻擊者使用Web頁面來可視化控制和管理失陷主機,其HTTP協議通信步驟如下:
1) 機器中木馬后,會每隔不定時間間隔去連接C&C服務器的80端口,根據HTTP協議發送touch包,發送的http數據包的GET數據中包括編碼后的長度隨機的機器碼。
2) 服務器收到touch包后,會記錄下來最近一次活躍時間,判斷是否在線。
3) 服務器如果需要對受控端進行控制,就會回一個202或者203的HTTP狀態碼,下發指令。下發的指令是在http數據段里面,數據包格式為4個字節長度+1個字節token+加密后的內容。
4) 受控端收到命令后,會判斷服務器返回的http狀態碼,根據不同的狀態碼去解析數據包去執行不同的命名,然后把執行后的結果回傳給服務器。
5) 控制者可以通過對服務端的Web界面對受害者進行控制。
交互操作可以總結為如下圖:
360威脅情報中心通過對PowerShell Loader腳本中的關鍵字搜索,發現了其在一個VPS主機上搭建的Web控制端頁面。
主控端的界面如下,最后一次測試時間應該在2017年6月,已經在近半年以前。
通過該Web管理后臺可以對受控機器進行控制操作。
另外一個Loots頁面保存了控制端發送控制指令后的一些日志數據,包括執行命令、上傳文件、截屏、下載文件、執行腳本的功能。
我們從日志數據中找到了一個名為setup.js的腳本文件,其代碼和我們分析的laksasokpaslkak.js的代碼大致一樣。
通過把該腳本中的DLL數據用同樣的方法解密出來后,發現和前面分析的遠控模塊socksbot.dll完全一樣,其C&C為46.166.163.243,與測試機IP 46.166.163.242屬于同一網段。
查詢360威脅情報平臺數據確定其屬于“摩訶草”組織。
我們可以看到測試機執行命令后的一些結果日志。
執行ipconfig命令的結果
我們還發現攻擊者曾在測試機上測試上傳其另外的遠控木馬程序和從遠程地址下載惡意載荷。
這個Web版木馬控制端程序的網站域名(yds.deckandpatio.ca)綁定的IP地址為91.235.129.203。
這個IP的別名為:vds8262.hyperhost.name。
我們發現其是在一個烏克蘭的服務商上申請注冊的VPS服務器,其服務商官網為https://hyperhost.ua/ru。而yds.deckandpatio.ca這個域名應該是其提供的一個免費的二級域名。
通過分析“摩訶草”組織最新制作并投入使用的攻擊惡意代碼,攻擊者選擇腳本類語言來重新實現攻擊載荷的投放組件,可能源于其對開發工具的便利性和效率的傾向性。
雖然我們沒有明確線索證實該次針對烏克蘭人員的攻擊事件中該類攻擊腳本是如何誘導受陷用戶下載和運行的,但根據其過去的攻擊模式推測,其可能采用如下幾種方式。
構造包含有惡意腳本的自解壓執行的壓縮包;
魚叉攻擊,并附帶有包含惡意腳本的壓縮包文件或附有惡意腳本壓縮程序下載的釣魚鏈接;
在社交網絡上發送附有惡意腳本壓縮程序下載的釣魚鏈接;
也不排除其可能通過入侵網站,在頁面植入惡意腳本代碼的方式。
從“摩訶草”過去采用的攻擊模式和使用的惡意代碼技術來看,該組織比較偏好于使用腳本和C#來開發攻擊工具的習慣。我們推測其更傾向于選擇能夠快速開發和實現攻擊的方式,并且通過不斷更新和變化的攻擊工具來逃避檢測和隱藏其攻擊行徑。攻擊者還制作了可用于Web管理的控制后臺程序來方便大規模管理和控制受陷主機。
從我們發現的攻擊者注冊的VPS服務器及其Web控制頁面,攻擊者發起新的攻擊和使用新的惡意代碼工具至少會提前半年進行準備和測試。
目前我們還無法推測其發起此次攻擊事件的動機,可能是該組織針對東歐部分國家發起的定向攻擊,也不排除是其發起的一次基于新制作的攻擊武器的一次實戰演練。所以我們在此對該類惡意代碼的部分技術細節進行披露,以便于提前防御該組織在未來的攻擊行動中進一步大規模使用該類攻擊惡意代碼。
看完了這篇文章,相信你對“摩訶草APT團伙新腳本類攻擊樣本的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。