火眼:伊朗威脅組織的攻擊技術詳解
介紹
從2018年1月到2018年3月,通過FireEye的動態威脅(Dynamic Threat)情報,我們觀察到攻擊者利用最新的代碼執行和持久性技術,將基於宏的惡意文檔傳播給亞洲和中東的個人。
我們把這一活動歸因於「TEMP.Zagros」,是一個伊朗關係行動者,自2017年5月起就一直活躍著。該行動者從事的是在中亞和西南地區的政府和防禦實體進行大量的網路釣魚攻擊。網路釣魚攻擊電子郵件和附加的惡意宏文件通常都包含地緣政治主題。一旦被成功執行,惡意文檔就會安裝一個我們跟蹤的POWERSTATS後門。
在分析這些文件時,一個更有趣的觀察是重用了最新的AppLocker旁路,以及用於間接代碼執行的橫向移動技術。橫向移動技術中的IP地址被本地機器IP地址取代,以實現系統上的代碼執行。
活動時間表
在該惡意活動中,威脅行動者的戰術、技術和程序(TTPs)在一個月後就改變了,他們的目標也是如此。圖1顯示了此釣魚活動的簡要時間軸。
圖1:最近觀察到的釣魚攻擊活動時間軸
攻擊活動的第一部分(從2018年1月23日到2018年2月26日)使用了一個基於宏的文檔,刪除了一個VBS文件和一個INI文件。INI文件包含Base64編碼的PowerShell命令,該命令將通過使用wscript.exe執行的VBS文件生成的命令行,用PowerShell進行解碼和執行。流程鏈如圖2所示。
圖2:攻擊活動第一部分流程鏈
調用PowerShell來解碼INI文件中Base64編碼的PowerShell命令並執行該命令,而該命令早些時候已被宏刪除。VBS通過MSHTA調用PowerShell的一個例子如圖3所示。
圖3:VBS通過MSHTA調用PowerShell
攻擊活動的第二部分(從2018年2月27日到2018年3月5日)使用了宏的一種新變種,該變種不使用VBS進行PowerShell代碼執行。相反,它使用了最近公開的一種利用INF和SCT文件的代碼執行技術,我們將在後續內容中對此進行解釋。
感染載體
我們相信,本次活動中所有攻擊的感染載體都是以電子郵件附件形式發送的基於宏的文檔。我們能夠獲得的一封電子郵件是針對土耳其用戶的,如圖4所示:
圖4:包含基於宏的文檔附件的釣魚攻擊電子郵件
我們觀察到的惡意Microsoft Office附件似乎是專門為四個國家的個人用戶精心設計的,這四個國家分別是:土耳其、巴基斯坦、塔吉克和印度。下面是四個例子,在文末攻擊指標部分有一個完整的列表。
圖5:來自巴基斯坦國民議會的文件
圖6顯示了一份來自土耳其武裝部隊的文件,內容是用土耳其語書寫的內容。
圖6:來自土耳其武裝部隊的文件
圖7顯示了一份來自銀行技術發展與研究研究所(由印度儲備銀行建立)的文件。
圖7:來自銀行技術發展與研究研究所的文件
圖8顯示了用塔里克語寫的來自塔吉克共和國內務部的一份文件。
圖8:用塔里克語寫的,來自塔吉克共和國內務部的一份文件
這些基於宏的文檔都使用類似的通過命令和控制(C2)伺服器的代碼執行技術、持久性技術和通信技術。
通過INF和SCT間接代碼執行
這個利用INF和SCT文件的腳本代碼執行技術,在2018年2月被發現並記錄下來。在最近的觀察活動中,威脅組織——TEMP.Zagros——使用以下技術武裝其惡意軟體。
Word文檔中的宏將三個文件放入硬編碼路徑:C:programdata。由於路徑是硬編碼的,所以上述文件只能在操作系統Windows 7及以上版本執行。下面是三個文件:
· Defender.sct——基於scriptlet文件的惡意JavaScript。
· DefenderService.inf——用於調用上述scriptlet文件的INF文件。
· WindowsDefender.ini——Base64編碼和混淆的PowerShell腳本。
在刪除三個文件之後,宏將設置以下註冊表鍵以實現持久性:
REGISTRYUSERSIDSoftwareMicrosoftWindowsCurrentVersio nRun"WindowsDefenderUpdater" = cmstp.exe /s c:programdataDefenderService.inf
系統重新啟動後,cmstp.exe將被用於通過INF文件間接地執行SCT文件。這是可能的,因為在INF文件中我們發現了以下部分:[UnRegisterOCXSection]
%11%scrobj.dll,NI,c:/programdata/Defender.sct
該部分通過INF的DefaultInstall_SingleUser部分被間接調用,如圖9所示。
圖9:通過INF的DefaultInstall_SingleUser部分間接調用SCT
這種代碼執行的方法是為了躲避安全產品而執行的。FireEye MVX和HX Endpoint Security(HX端點安全技術)成功地檢測了該代碼執行技術。
SCT文件分析
Defender.sct文件的代碼是一個混淆的JavaScript。SCT文件執行的主要功能是對WindowsDefender.ini文件的內容進行Base64解碼,並使用下面的命令行執行解碼的PowerShell Script:
powershell.exe -exec Bypass -c iex([System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String((get-content C:\ProgramData\WindowsDefender.ini)
其餘的惡意活動是由PowerShell Script執行的。
PowerShell文件分析
PowerShell腳本使用了幾個層次的混淆,以隱藏其實際的功能。除了混淆處理技術之外,它還可以在分析機器上檢測安全工具,如果檢測到安全工具的存在,該腳本還可以關閉系統。
其中一些關鍵的混淆處理技術是:
· 字元替換:字元替換和字元串反轉技術的幾個實例(圖10)使分析變得困難。
圖10:字元替換和字元串反轉技術
· PowerShell環境變數:現在,惡意軟體作者通常使用環境變數來屏蔽諸如「IEX」之類的關鍵字元串。該腳本使用環境變的量一些實例是:
· $eNv:puBLic[13]+$ENv:pUBLIc[5]+"x"
· ($ENV:cOMsPEC[4,26,25]-jOin"")
· XOR編碼:PowerShell腳本的最大部分是使用單個位元組鍵進行XOR編碼,如圖11所示。
圖11:PowerShell腳本是使用單個位元組鍵進行XOR編碼的
在對PowerShell Script的內容進行了混淆之後,我們可以將其劃分為三個部分。
第一部分
PowerShell腳本的第一部分負責設置PowerShell腳本其餘部分使用的不同的關鍵變數,特別是下面的變數:
· TEMpPAtH = "C:ProgramData"(用於存儲臨時文件的路徑)
· Get_vAlIdIP = https://api.ipify.org/(用於獲取機器的公共IP地址)
· FIlENAmePATHP = WindowsDefender.ini(用於存儲Powershell代碼的文件)
· PRIVAtE = Private Key exponents
· PUbLIc = Public Key exponents
· Hklm = "HKLM:Software"
· Hkcu = "HKCU:Software"
· ValuE = "kaspersky"
· SYSID
· DrAGon_MidDLe = [array of proxy URLs]
在這些變數中,有一個讓人特別感興趣的變數,DrAGon_MidDLe,它存儲代理URL的列表(詳細信息在文末攻擊指標部分的網路指標部分)將用於與C2伺服器交互,如圖12所示。
圖12:DrAGon_MidDLe存儲用於與C2伺服器交互的代理URL列表
第二部分
PowerShell腳本的第二部分有能力對在系統和C2伺服器之間交換的消息進行加密和解密。用於加密和解密的演算法是RSA,該演算法利用了PowerShell腳本第1部分中包含的公共和私有關鍵指數。
第三部分
PowerShell腳本的第三部分是最大的部分,具有各種各樣的功能。
在分析過程中,我們觀察了一個代碼段,在該代碼段中有一個消息用中文編寫並被硬編碼在腳本中,當與C2伺服器連接的過程中,如果出現錯誤,該消息則被列印出來:
此消息的英文翻譯是:「不能連接到網站,請等待龍」。
PowerShell腳本的這一部分提供的其他功能如下:
· 通過利用Windows管理工具(WMI)查詢和環境變數從系統中檢索以下數據:
? 網路適配器配置的IP地址
? 操作系統名稱
? 操作系統的架構
? 計算機名
? 計算機域名
? 用戶名
所有這些數據都是連接和格式化的,如圖13所示:
圖13:由PowerShell腳本檢索到的連接和格式化的數據
· 通過將REGISTER命令發送到伺服器,將受害者的機器註冊到C2伺服器。作為響應,如果狀態正常,那麼將從C2伺服器接收一個TOKEN,TOKEN用於同步受害者機器和C2伺服器之間的活動。
在發送到C2伺服器時,數據被格式化如下:@
· 截屏
· 檢查安全工具的存在(在附錄中詳細說明),如果發現了任何安全工具,那麼系統將被關閉,如圖14所示。
圖14:在發現安全工具時系統被關閉
· 能夠從C2伺服器接收PowerShell腳本並在機器上執行。有幾種技術用於執行PowerShell代碼:
?如果命令以「Excel」開頭,那麼它就利用了Excel.Appilcation的DDEInitiate Method執行代碼:
?如果命令以「Outlook」開頭,那麼它就會利用Outlook.Application和MSHTA執行代碼:
?如果命令以「risk」開頭,則執行是通過DCOM對象執行的:
· 文件上傳功能。
· 通過在Windows註冊表中設置以下鍵,能夠禁用Microsoft Office保護視圖(如圖15所示):
?DisableAttachmentsInPV
?DisableInternetFilesInPV
?DisableUnsafeLocationsInPV
圖15:禁用Microsoft Office保護視圖
· 遠程重啟或關閉或清理系統的能力,是建立在從C2伺服器接收的命令之上,如圖16所示。
圖16:重啟、關閉和清除命令
· 能夠在給定秒數內休眠。
下表總結了這個PowerShell腳本支持的主要C2命令。
總結
該惡意活動向我們展示了TEMP.Zagros在最新的代碼執行和持久性機制技術方面的最新進展,並且他們可以快速地利用這些技術來更新他們的惡意軟體。通過將多個混淆層組合在一起,它們阻止了逆向工程的過程,並試圖避開安全產品。
用戶可以在他們的設置中禁用Office宏,並且更加謹慎的在文檔中啟用宏(特別是當有提示時),即使這些文檔來自看似可信的源,以此保護自己免受此類攻擊。
攻擊指標
宏基文檔和散列
網路指標
代理URL列表(由於篇幅過長,此處僅列出幾條,詳見原文)
hxxp://alessandrofoglino[.]com//db_template.phphxxp://www.easy-home-sales[.]co.za//db_template.phphxxp://www.almaarefut[.]com/admin/db_template.phphxxp://chinamall[.]co.za//db_template.phphxxp://amesoulcoaching[.]com//db_template.php……
附錄
檢查機器上的安全工具:
win32_remotewin64_remote64ollydbgProcessHackertcpviewautorunsautorunscfilemonprocmonregmonprocexpidaqidaq64ImmunityDebuggerWiresharkdumpcapHookExplorerImportRECPEToolsLordPEdumpcapSysInspectorproc_analyzersysAnalyzersniff_hitwindbgjoeboxcontroljoeboxserver
本文翻譯自:https://www.fireeye.com/blog/threat-research/2018/03/iranian-threat-group-updates-ttps-in-spear-phishing-campaign.html ,如若轉載,請註明原文地址: http://www.4hou.com/technology/10761.html


※通過補丁比對分析發現HPE IMC系統代碼執行漏洞
※分析CVE-2018-6376–Joomla!二階SQL注入
TAG:聚鋒實驗室 |