APT 10使用更新的TTP瞄準日本機構
一、簡介
2018年7月,FireEye裝置檢測到並阻止了針對日本媒體行業的APT 10(Menupass)活動。 APT 10是FireEye自2009年以來一直追蹤的中國網路間諜組織,他們有針對日本實體的歷史。
在此攻擊活動中,該組織傳送了包含惡意文件的魚叉式網路釣魚電子郵件,用於安裝UPPERCUT後門。這個後門在安全社群中以 ANEL 而聞名,直到最近它才有了beta或RC(候選版本)。本文將討論我們在此後門的多個版本中觀察到的更新和差異。
二、攻擊流程
攻擊始於Microsoft Word文件,其中包含附加到魚叉式網路釣魚電子郵件的惡意VBA巨集。雖然惡意檔案的內容不可讀(見圖3),但其日文標題與海事,外交和朝鮮問題有關。表1顯示了UPPERCUT的IoC。
表1:UPPERCUT IoC
對於朝鮮的誘餌文件而言,一個具有相同標題的新聞文章隨時可線上獲取。同樣值得注意的是,在瓜地馬拉的誘餌中,攻擊者使用了日語中瓜地馬拉的不尋常拼寫。Google搜尋相同的拼寫,最高結果引導我們進入了2018年8月舉行的瓜地馬拉大使講座活動的網頁。圖1顯示了活動頁面的螢幕截圖。
圖1:瓜地馬拉大使講座活動的網站
圖2為顯示誘餌文件的巨集。在此函式的底部,可以看到與圖1中的聯絡資訊相匹配的可讀文字。因此,對拉丁美洲問題感興趣的人可能是此次行動的目標。
圖2:顯示誘餌文件的巨集
最初的Word文件受密碼保護,可能是為了繞過檢測。輸入密碼(在電子郵件正文中提供)後,將向用戶顯示一個文件,該文件將請求使用者啟用惡意巨集,如圖3所示。
圖3:誘餌檔案
圖4顯示了惡意巨集執行時會發生什麼。
圖4:安裝UPPERCUT的巨集
執行工作流程如下:
1.巨集將三個PEM檔案padre1.txt,padre2.txt和padre3.txt釋放到受害者的%TEMP%資料夾,然後將它們從%TEMP%複製到%AllUserProfile%資料夾。
2.巨集使用以下Windows certutil.exe命令對已釋放的檔案進行解碼(certutil.exe是一個合法的內建命令列程式,用於管理Windows中的證書):
3.巨集使用可擴充套件儲存引擎實用程式(esentutil.exe)使用以下命令建立具有適當副檔名的檔案副本(esentutil.exe也是Windows中預安裝的合法程式):
釋放的檔案包括以下內容:
· GUP.exe : GUP,免費(LGPL)通用更新程式。 GUP是Notepad ++用於軟體更新的開源二進位制檔案。這裡使用的版本是由Notepad ++進行數字簽名的4.1版本,如圖5所示。
·libcurl.dll: 惡意載入程式DLL
· 3F2E3AB9: 加密的載荷
圖5: Notepad++ 簽名的updater
4.巨集啟動合法的可執行檔案GUP.exe。
· 可執行側載惡意DLL(libcurl.dll),它解密並執行位於同一資料夾中的shellcode(3F2E3AB9)。
· shellcode對另一個DLL進行解碼和解壓縮,它是UPPERCUT的更新變體。在解碼DLL之前,shellcode使用基於ntdll_NtSetInformationThread的反除錯技術,該技術使執行緒與偵錯程式分離,如圖6所示。然後將DLL載入到記憶體中,並呼叫隨機命名的匯出函式。
圖6:shellcode使用的反除錯技術
5.巨集使用Windows esentutl.exe刪除最初釋放的.txt檔案,並將文件文字更改為嵌入訊息。
完整的攻擊流圖如圖7所示。
圖7:攻擊流程
一些威脅演員利用使用 Windows certutil.exe 解碼有效載荷的技術, APT 10 繼續採用這種技術。
三、UPPERCUT的演化
圖8顯示了UPPERCUT的更新時間表。在圖中繪製了Loader的PE編譯時間和dropper的建立時間(Word文件)。由於時間戳被覆蓋並用零填充,因此這裡沒有顯示較新版本中的loader的編譯時間。我們無法瞭解UPPERCUT 5.2.x系列,但可能會在2017年12月至2018年5月期間每隔幾個月釋出一次小修訂。
圖8:UPPERCUT更新的時間表
與以前的版本不同,在最新版本中匯出函式名隨機化(表2)。
表2:UPPERCUT的靜態特性
最新UPPERCUT樣本中的另一個新功能是,如果惡意軟體無法從命令和控制(C2)伺服器接收HTTP響應,則會在Cookie標頭中傳送錯誤程式碼。錯誤程式碼是GetLastError函式返回的值,並在下一個信標中傳送。這可能包括幫助攻擊者瞭解問題,如果後門無法收到響應的話(圖9)。此Cookie標頭是一個唯一的指示器,可用於基於網路的檢測。
圖9:回撥示例
早期版本的UPPERCUT在與C2通訊時使用了硬編碼字串“this is the encrypt key”,用於Blowfish加密。但是,在最新版本中,金鑰對每個C2地址都是唯一的硬編碼,並使用C2計算的MD5雜湊來確定使用哪個金鑰,如圖10所示。
圖10:Blowfish金鑰生成
例如,表3列出瞭解碼後的有效載荷126067d634d94c45084cbe1d9873d895中的硬編碼C2地址、MD5雜湊以及相應的Blowfish金鑰。
表3:Blowfish金鑰的示例
在此示例中,hxxp[:]//151.106.53[.]147/VxQG的MD5雜湊值為f613846eb5bed227ec1a5f8df7e678d0。當惡意軟體與此URL互動時,將選擇bdc4b9f5af9868e028dd0adc10099a4e6656e9f0ad12b2e75a30f5ca0e34489d作為Blowfish金鑰。如果URL的MD5雜湊值與列出的任何雜湊值不匹配,則將使用預設金鑰f12df6984bb65d18e2561bd017df29ee1cf946efa5e510802005aeee9035dd53。
從惡意軟體產生的網路流量的另一個差異是在C2通訊期間已經在URL查詢值中添加了編碼的代理資訊。表4顯示了在較新版本中從後門傳送到C2伺服器的引數。這些是通過POST請求傳送的,如圖9所示。
表4:URL引數
此外,使用與以前相同的RGPH雜湊演算法對命令字串進行雜湊處理。新版本支援另外兩個命令0xD290626C85FB1CE3和0x409C7A89CFF0A727(表5)。
表5:支援的命令
四、總結
雖然APT 10始終針對相同的地理位置和行業,但他們使用的惡意軟體正在積極發展。在較新版本的UPPERCUT中,後門初始化Blowfish加密金鑰的方式發生了重大變化,這使得分析人員更難檢測和解密後門的網路通訊。這表明APT 10有足夠能力維護和更新其惡意軟體。
為了緩解威脅,建議使用者在其設定中禁用Office巨集,而不是開啟來自未知來源的文件。 FireEye多向量執行(MVX)引擎能夠使用以下檢測名稱識別和阻止此威脅:
·APT.Backdoor.Win.UPPERCUT
· FE_APT_Backdoor_Win32_UPPERCUT