APT10使用新技術對日本公司發起攻擊
介紹
2018年7月,FireEye檢測並阻止了針對日本媒體行業的APT10(Menupass)活動。該組織通過傳送包含惡意文件的魚叉式網路釣魚電子郵件進行傳播,此惡意檔案會導致安裝UPPERCUT後門。這個後門被稱為ANEL。
攻擊概述
在郵件中被傳遞的檔案是Microsoft Word文件,其中包含了惡意VBA巨集。雖然惡意檔案的內容不可讀,但標題與海事,外交和朝鮮問題有關。
檔名 MD5 大小 C2
自民黨海洋総合戦略小委員會が政府に提言申し入れ.DOC 4f83c01e8f7507d23c67ab085bf79e97 843022 “eservake.jetos[.]com
82.221.100.52
151.106.53.147”
グテマラ大使講演會案內狀的.doc f188936d2c8423cf064d6b8160769f21 720384 “eservake.jetos[.]com
151.106.53.147
153.92.210.208 “
米國接近に揺れる北朝鮮內部的.doc cca227f70a64e1e7fcf5bccdc6cc25dd 733184 “eservake.jetos[.]com
153.92.210.208
167.99.121.203”
下圖顯示了誘餌文件的巨集功能。在此函式的底部,我們可以看到可讀文字。因此,對拉丁美洲問題感興趣的人可能是此活動的目標。

最初被投遞的Word文件受密碼保護,這可能是為了繞過檢測。輸入密碼(在電子郵件正文中提供)後,則向用戶顯示一個文件,該文件將請求使用者啟用惡意巨集,如下圖所示。

安裝UPPERCUT巨集後:

隨後的執行工作流程如下:
1.巨集將三個PEM檔案padre1.txt,padre2.txt和padre3.txt放入到受害者的%TEMP%資料夾,然後將它們從%TEMP%複製到%AllUserProfile%資料夾。
2.巨集通過Windows certutil.exe程式使用以下命令對已刪除的檔案進行解碼(certutil.exe是一個合法的內建命令列程式,用於管理Windows中的證書):
C: Windows System32 cmd.exe“/ c certutil -decode C: ProgramData padre1.txt C: ProgramData GUP.txt
C: Windows System32 cmd.exe“/ c certutil -decode C: ProgramData padre2.txt C: ProgramData libcurl.txt
C: Windows System32 cmd.exe“/ c certutil -decode C: ProgramData padre3.txt C: ProgramData 3F2E3AB9
3.巨集通過可擴充套件儲存引擎的程式esentutil.exe發起以下命令建立具有適當副檔名的檔案副本(esentutil.exe也是Windows中預安裝的合法程式):
C: Windows System32 esentutl.exe“/ y C: ProgramData GUP.txt / d C: ProgramData GUP.exe / o
C: Windows System32 esentutl.exe“/ y C: ProgramData libcurl.txt / d C: ProgramData libcurl.dll / o
刪除的檔案包括以下內容:
GUP.exe:GUP,一個免費的(LGPL)通用更新程式。GUP是Notepad ++用於軟體更新的開源二進位制檔案。這裡使用的版本是由Notepad ++進行數字簽名的4.1版本:

libcurl.dll:惡意載入程式DLL
3F2E3AB9:加密的shellcode
-
巨集啟動合法的可執行檔案GUP.exe。
可執行檔案中側載惡意的DLL(libcurl.dll),它解密後並在同一資料夾中的shellcode(3F2E3AB9)中執行。shellcode對另一個DLL進行解碼和解壓縮,這是UPPERCUT的更新變體。在解碼DLL之前,shellcode使用基於ntdll_NtSetInformationThread的反除錯技術,該技術導致執行緒與偵錯程式分離。然後將DLL載入到記憶體中,並呼叫隨機命名的匯出函式。
shellcode使用的反除錯技術:
5.巨集使用Windows esentutl.exe刪除最初刪除的.txt檔案,並將文件文字更改為嵌入訊息。完整的攻擊概述如下圖所示。
一些攻擊者會利用Windows certutil.exe( ofollow,noindex" target="_blank">https://www.fireeye.com/blog/threat-research/2017/12/targeted-attack-in-middle-east-by-apt34.html )進行有效負載解碼( https://securelist.com/apt-trends-report-q2-2017/79332/ ),而APT10( https://www.pwc.co.uk/cyber-security/pdf/cloud-hopper-annex-b-final.pdf )繼續採用這種技術。
UPPERCUT的演變
下圖顯示了UPPERCUT的更新時間表。在圖中繪製了載入器的PE編譯時間和dropper的建立時間(Word文件)。由於時間戳被覆蓋並用零填充,使用這裡沒有顯示新版本中的載入器的編譯時間。

與以前的版本有所不同,如今的函式名稱在最新版本中隨機化起來。
編碼有效載荷 解碼的有效載荷
MD5 尺寸 匯入雜湊 匯出功能 版
aa3f303c3319b14b4829fe2faa5999c1 322164 182ee99b4f0803628c30411b1faa9992 l7MF25T96n45qOGWX 5.3.2
126067d634d94c45084cbe1d9873d895 330804 5f45532f947501cf024d84c36e3a19a1 hJvTJcdAU3mNkuvGGq7L 5.4.1
fce54b4886cac5c61eda1e7605483ca3 345812 c1942a0ca397b627019dace26eca78d8 WcuH 5.4.1
新的UPPERCUT存在一個新功能:如果惡意軟體無法從命令和控制(C2)伺服器接收HTTP響應,則會在Cookie標頭中傳送錯誤程式碼。錯誤程式碼是GetLastError函式返回的值,並在下一個信標中傳送。這可能幫助攻擊者瞭解攻擊情況,如果後門無法收到響應。此Cookie標頭是一個唯一的指示器,可用於基於網路的檢測。

早期版本的UPPERCUT在與C2通訊時使用了硬編碼字串“this is the encrypt key”,用於Blowfish加密。但是,在最新版本中,金鑰對每個C2地址都有了唯一的硬編碼,並使用C2計算的MD5雜湊來確定使用哪個金鑰。

下表列出了126067d634d94c45084cbe1d9873d895的載荷中的硬編碼C2地址,MD5雜湊以及相應的Blowfish金鑰。
C2 MD5 Key
hxxp[:]//151.106.53[.]147/VxQG f613846eb5bed227ec1a5f8df7e678d0 bdc4b9f5af9868e028dd0adc10099a4e6656e9f0ad12b2e75a30f5ca0e34489d
hxxp[:]//153.92.210[.]208/wBNh1 50c60f37922ff2ff8733aaeaa9802da5 fb9f7fb3c709373523ff27824ed6a31d800e275ec5217d8a11024a3dffb577dd
hxxp[:]//eservake.jetos[.]com/qIDj c500dae1ca41236830b59f1467ee96c1 d3450966ceb2eba93282aace7d7684380d87c6621bbd3c4f621caa079356004a
Default Default f12df6984bb65d18e2561bd017df29ee1cf946efa5e510802005aeee9035dd53
在此示例中,hxxp [:] // 151.106.53 [.] 147 / VxQG的MD5雜湊值為f613846eb5bed227ec1a5f8df7e678d0。當惡意軟體與此URL互動時,將選擇bdc4b9f5af9868e028dd0adc10099a4e6656e9f0ad12b2e75a30f5ca0e34489d作為Blowfish金鑰。如果URL的MD5雜湊值與列出的任何雜湊值不匹配,則將使用預設金鑰f12df6984bb65d18e2561bd017df29ee1cf946efa5e510802005aeee9035dd53。與以往版本的另一個差異是在C2通訊期間在URL查詢值中添加了編碼的代理資訊。下圖顯示了在較新版本中從後門傳送到C2伺服器的引數。這些引數是通過POST請求傳送的。

此外,攻擊者使用與以前相同的RGPH雜湊演算法對命令字串進行了雜湊處理。新版本支援另外兩個命令0xD290626C85FB1CE3和0x409C7A89CFF0A727。具體支援的命令為:
命令 描述
0x97A168D9697D40DD 從C2伺服器下載並驗證檔案(XXHash比較)
0x7CF812296CCC68D5 將檔案上傳到C2伺服器
0x652CB1CEFF1C0A00 載入PE檔案
0x27595F1F74B55278 下載,驗證(XXHash比較),執行檔案,並將輸出傳送到C2伺服器
0xD290626C85FB1CE3 格式化當前時間戳
0x409C7A89CFF0A727 以PNG格式捕獲桌面螢幕截圖並將其傳送到C2
以上都不是 收到的緩衝區通過cmd.exe執行,然後輸出傳送到C2伺服器
結論
雖然APT10始終針對固定的地理位置和行業,但他們使用的惡意軟體不斷髮生變化。在較新版本的UPPERCUT中,後門初始化Blowfish加密金鑰的方式發生了重大變化,這使得分析師更難以檢測和解密後門的網路通訊。這表明APT10非常能夠維護和更新其惡意軟體。
為了緩解威脅,建議使用者在其設定中禁用Office巨集,不開啟來自未知來源的文件。