朝鮮APT組織Lazarus使用KEYMARBLE後門攻擊俄羅斯
一、簡介
在過去的幾周裡,我們一直在監控針對俄羅斯公司的可疑活動,我們觀察到朝鮮對俄羅斯實體開展的一次攻擊,這個活動暴露了我們之前從未見過的捕食者-獵物關係。雖然將攻擊歸因於某個威脅組織或其他組織是有問題的,但下面的分析揭示了其與朝鮮APT組織Lazarus使用的戰術、技術和工具的內在聯絡。
這一發現來自我們正在跟蹤的為俄羅斯受害者專門設計和製作的多個惡意Office文件。通過仔細檢查這些文件,我們能夠看出它們屬於感染鏈的早期階段,此感染鏈的終端是一個多功能Lazarus後門的更新版本,被US-CERT稱為 KEYMARBLE 。
Lazarus有時也被稱為Hidden Cobra,是當今世界上最流行和最活躍的APT組織之一。此臭名昭著的組織,據稱是朝鮮贊助的威脅行為者,被認為是過去十年中一些重大安全事件的幕後黑手。其中包括 Sony Pictures Entertainment hack ,孟加拉國銀行搶劫案( Bangladesh bank heist )以及眾多其他高風險業務,例如從全球至少五種不同的加密貨幣交換服務中盜竊價值數百萬美元的加密貨幣。
雖然我們的活動時間表與上週EST安全報告( report )中針對韓國安全公司的“Operation Extreme Job”活動重疊,但我們觀察到兩個活動中採用了不同的策略、技術和程式(TTP)。
長期以來,安全界一直認為,Lazarus至少分為兩個分支:第一分支名為Andariel,主要側重於攻擊韓國政府和組織,第二分支是Bluenoroff,其主要關注的是貨幣化和全球間諜活動。同時進行的兩次活動之間的差異再次證實了多個分支同時運作的理論。
然而,這一事件代表了朝鮮威脅行動者對受害者的不尋常選擇。通常,這些攻擊反映了朝鮮與美國、日本和韓國等國家之間的地緣政治緊張局勢。但在本案例中,針對的是俄羅斯機構。
二、感染鏈
在分析中,我們遇到兩種不同的感染流程。
主要感染流程包括以下三個步驟:
1、一個包含兩個檔案的ZIP檔案:良性誘餌PDF文件和攜帶巨集的惡意Word文件。
2、惡意巨集從Dropbox URL下載VBS指令碼,然後執行。
3、VBS指令碼從dropzone伺服器下載CAB檔案,使用Windows expand.exe實用程式提取嵌入的EXE檔案(後門),最後執行它。
起初,感染鏈由上述所有階段組成,但在某一時刻,攻擊者決定跳過感染鏈的第二階段,修改惡意Word巨集直接“下載並執行”第三階段的Lazarus 後門。
圖1: 感染流程
1.偽裝Office文件
與此活動相關的所有文件在26-31/01/19時間週期,從俄羅斯的不同來源上傳到VirusTotal,看起來與原始檔名相似。
所有文件包括類似的元資料,其中“home”作為作者姓名,以及韓語內碼表。
在活動期間,攻擊者利用多個誘餌影象來說服受害者點選“啟用內容”按鈕並觸發惡意巨集程式碼。
“2018.11.2~2019.1.26_ErrorDetail.doc”
首次提交: 2019-01-31 13:45:04
內碼表: Korean
作者: home
注意: 圖片中的西里爾文字元
SHA-1: 088c6157d2bb4238f92ef6818b9b1ffe44109347
“Serial_Numbers.xls”
首次提交: 2019-01-31 06:56:00
內碼表: Korean
作者: home
SHA-1:4cd5a4782dbed5b8e337ee402f1ef748b5035709
“LosAngeles_Court_report.doc”
首次提交: 2019-01-26 09:59:50
內碼表: Korean
作者: home
SHA-1:e89458183cb855118539373177c6737f80e6ba3
2.惡意巨集
該活動在dropper的XLS和DOC變體中有著非常相似的巨集程式碼。
巨集本身非常簡單明瞭,但在本案例中,保持巨集簡單並且沒有任何高階混淆技巧,導致惡意文件無法被Virus Total上許多著名的安全供應商檢測到。
其中在一個文件中的下載階段,HTTP請求標頭中出現了Dropbox “Host”欄位(無法解釋其作用)。
圖2: HTTP請求標頭中的Dropbox “Host”欄位
謎團很快解決了,因為我們找到了另一個相關樣本,它從Dropbox下載了感染鏈的下一階段。很明顯,在此活動期間Dropbox是第二階段感染的原始來源。
圖3: 負責從DropBox下載第二階段感染的程式碼
3.誘餌文件
在此活動期間,至少有一個惡意Office文件最初是通過ZIP檔案分發的,另外還有另一個名為NDA_USA.pdf的PDF誘餌文件。
圖4: ZIP中包含的誘餌和惡意檔案
良性文件試圖使檔案看起來合法,內容為StarForce技術的NDA。StarForce是俄羅斯一家提供軟體複製保護解決方案的公司。
圖5: 傳送給誘餌受害者的良性文件
4.Dropzone
眾所周知,Lazarus組織利用一系列受到入侵的伺服器進行運營,此次也不例外。
此活動中的最終有效載荷以CAB檔案的形式從受感染的伺服器下載,稍後將其擴充套件為KEYMARBLE後門。重要的是要注意CAB檔案偽裝成受感染主機上的JPEG影象(http://37.238.135 [.]70/img/anan.jpg)。
仔細觀察受感染的伺服器,可以看出其為South Oil Company資訊部門的網站。該伺服器位於伊拉克,由EarthLink Ltd. Communications&Internet Services託管。
圖6: 伊拉克伺服器遭到入侵
三、KEYMARBLE 後門
KEYMARBLE是一個通用的後門,NCCIC在去年八月的報告中描述過。惡意軟體是一種遠端管理工具(RAT),為操作人員提供從受害者機器獲取資訊的基本功能。一旦執行,它會進行多次初始化,聯絡C&C伺服器並無限期地等待來自它的新命令。每個接收的命令由後門在適當的函式內處理,該函式收集資訊或在目標機器上進行相應動作。
1.AV檢測
作為之前描述的感染流程的一部分,所有提到的惡意文件下載的KEYMARBLE均在CAB檔案中壓縮。
有趣的是,通過將後門封裝在CAB檔案中,攻擊者能夠將此樣本的檢測率從五個供應商降低到僅僅兩個。VirusTotal上的檢測結果:
圖7: AV檢測結果
2.版本比較
該惡意軟體類似於其前身的流程和功能。二者都有兩個主要階段 – 初始化階段,建立必要的資料結構並與C&C伺服器通聯;主命令排程迴圈,從伺服器接收命令並將它們傳遞給相應的處理程式。這些階段中的特定機制也出現在源自朝鮮的其他惡意軟體中,其中很多都歸咎於臭名昭著的Lazarus組織。
話雖如此,該變體與之前報道的同一家族樣本存在特殊差異。首先,作者使用了 wolfSSL ,這是一個開原始碼儲存庫,用於向C2伺服器驗證客戶端的身份並加密通訊。這並不是朝鮮惡意軟體第一次使用此庫。Intezer描述了一種不同的RAT,出現在去年對加密貨幣交易的攻擊中。另外,雖然後門處理的大多數命令程式碼在新舊版本中都重疊,但是最近的樣本中省略了一些程式碼,並且修改了其他幾個程式碼,以及處理程式的功能。
在接下來的段落中,我們將概述KEYMARBLE的主要特徵,重點關注其與US-CERT報告中樣本的相關性和區別。
3.初始化
兩個後門變體都以動態Win32 API函式解析操作開始。這是一個非常典型的初始階段,在多個朝鮮惡意軟體中出現,其中函式名列表在執行時解密,然後解析為記憶體中的全域性表。隨後將使用該表中的地址來呼叫所需的API函式。此機制中區分此惡意軟體與其他惡意軟體的一個特徵是利用開源 McbDES2 中的DES演算法實現函式名解密。
圖8: 兩個版本的KEYMARBLE中API解析邏輯的比較
圖9: 使用開源McbDoDES庫進行API函式名解密
此後,KEYMARBLE將開始準備與C&C伺服器通訊所需的資料結構。這將包括啟動WolfSSL相關結構以及與伺服器的初次通聯。對於前者,惡意軟體會將硬編碼的PEM證書釋放到磁碟中的%TEMP%下,檔名為“Thumbss.db”,讀取資料並傳遞給名為ProcessFile的內部WolfSSL函式。依次解析,並將從證書派生的資料分配給用於通訊的全域性上下文結構。此示例中使用的證書可在下面的IOC部分中找到。
圖10: 使用wolfSSL初始化通訊
至於啟動與C2伺服器的通聯,惡意軟體將建立一個套接字,通過呼叫命令引數設定為0x8004667E的ioctlsocket將其設定為非阻塞,並嘗試連線到硬編碼的IP地址194 .45 .8 .41通過埠443。這將無限期的發生,每次連線嘗試之間間隔30分鐘,直到成功,此時惡意軟體將從迴圈中斷並繼續後續工作。
4.通訊協議
在惡意軟體和伺服器之間交換的每條訊息都具有預定義的結構(如圖4所示),類似於TLS應用程式記錄。如前所述,惡意軟體利用SSL進行通訊,因此每個此類訊息將使用客戶端和伺服器SSL在握手期間交換的金鑰進行加密,傳送或接收資料的操作將由指定的wolfSSL函式處理(SendData和 receiveData)。
圖11: 自定義協議訊息結構,類似於TLS記錄。
在啟動與C2伺服器的首次連線後,KEYMARBLE將發出信標訊息。此訊息用於傳送機器的UID,即MD5(ProductID|MAC)的結果,其中第一個欄位是通過查詢SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId登錄檔項獲得的,第二個欄位是通過呼叫GetAdaptersInfo函式獲得的MAC地址。但是,只有在來自伺服器的顯式請求之後才會獲取此UID,並且在完成之前信標中的資料欄位一直為空。
圖12: UUID為ProductID和MAC地址的MD5
在初始信標之後,惡意軟體將進入無限迴圈,等待從伺服器獲取命令程式碼。這些命令將被傳遞給排程函式,其中每個命令將由相應的處理程式處理。該命令分兩部分接收 – 首先伺服器將傳送一條帶有命令資料長度的訊息,然後它才會發出實際的命令程式碼。
圖13: 信標和主訊息迴圈
5.後門命令
命令排程程式是一種非常基本的機制,它使用一個switch case來將控制權傳遞給相應的函式。命令程式碼的範圍從0x1234556到0x1234578,並且大多數與舊版後門中出現的命令重疊。但是,此版本的命令數量較少(18對22),其中只有很少一部分的程式碼和功能與舊版本不同。此外,與接收命令程式碼相似,傳送的每個命令引數(如果需要)將在前面加上一條長度訊息,以指示應為傳送的引數分配緩衝區的大小。
圖14: 比較新舊版本KEYMARBLE的命令排程函式
所有命令,它們的邏輯和響應總結在下表中:
Check Point通過其SandBlast威脅防禦解決方案防範此攻擊。
IOCs
· 2b4fb64c13c55aa549815ec6b2d066a75ccd248e (新KEYMARBLE樣本)
· d1410d073a6df8979712dd1b6122983f66d5bef8 (舊KEYMARBLE 樣本)
·088c6157d2bb4238f92ef6818b9b1ffe44109347 (Maldoc)
·4cd5a4782dbed5b8e337ee402f1ef748b5035709 (Maldoc)
·e89458183cb855118539373177c6737f80e6ba3f (Maldoc)
·a5b2c704c5cff550e6c47454b75393add46f156f (包含PDF的ZIP )
· 194\.45\.8\.41:443 (KEYMARBLE C2)
·hxxp://37\.238\.135\.70/img/anan.jpg (Dropzone 伺服器)
·PEM 證書:
—–BEGIN CERTIFICATE—–
MIIDYjCCAkqgAwIBAgIIAZAXmK+UHF4wDQYJKoZIhvcNAQELBQAwZjELMAkGA1UE
BhMCVVMxGTAXBgNVBAoMEEdsb2JhbFNpZ24gbnYtc2ExPDA6BgNVBAMMM0dsb2Jh
bFNpZ24gT3JnYW5pemF0aW9uIFZhbGlkYXRpb24gQ0EgLSBTSEEyNTYgLSBHMjAi
GA8yMDE4MDkwMjE0NDgwOVoYDzIwMjAwMTE2MTQ0ODA5WjBmMQswCQYDVQQGEwJV
UzEZMBcGA1UECgwQR2xvYmFsU2lnbiBudi1zYTE8MDoGA1UEAwwzR2xvYmFsU2ln
biBPcmdhbml6YXRpb24gVmFsaWRhdGlvbiBDQSAtIFNIQTI1NiAtIEcyMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvwzKLRSyHoRCW804H0ryTXUQ8bY1
n9/KfQOY06zeA2buKvHYsH1uB1QLEJghTYDLEiDnzE/eRX3Jcncy6sqQu2lSEAMv
qPOVxfGLYlYb72dvpBBBla0Km+OlwLDScHZQMFuo6AgsfO2nonqNOCkcrMft8nyV
sJWCfUlcOM13Je+9gHVTlDw9ymNbnxW10x0TLxnRPNt2Osy4fcnlwtfaQG/YIdxz
G0ItU5z+Gvx9q3o2P5jehHwFZ85qFDiHqfGMtWjLaH9xICv1oGP1Vi+jJtK3b7Fa
F9c4mQj+k1hv/sMTSQgWC6dNZwBSMWcjTpjtUUUduQTZC+zYKLNLve02eQIDAQAB
oxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBRe7BnZbn005fj
P5in0Pv6FMWy9x7kzjI2e6JcxXr+LuEisfxACkw2g2yFrQAzZguTSGYiSIDtwURE
A+ALRoZFa9gVwtqKQFOQOBcDYINZIqI8Ma7eprcF/O+tAOzHIRoifyYYpv0Is89x
6xI8og9hRzVTyov5eYK0tqjdMZwRWSQz2hmghhqXx43YlRw0f69iKjJ7MpHtv/Ru
uMPlbwo/VRXY8kywL/GkFG3nPxWKXm7T4nBFp5/sYCvfakPpZDuzEN7igXhOWaqL
TwkCOWQf3m6oX56DDpzeHJmLYEukX7QNjVBF3mTW7LIuPT5rR3nJFYJA9Tf0umvd
B30JttH5
—–END CERTIFICATE—–
參考
· https://www.us-cert.gov/ncas/analysis-reports/AR18-221A
· https://www.intezer.com/lazarus-group-targets-more-cryptocurrency-exchanges-and-fintech-companies/
· https://github.com/wolfSSL/wolfssl
· http://read.pudn.com/downloads198/sourcecode/crypt/ca/930917/McbDES2.hpp__.htm
· https://graphics.stanford.edu/~mdfisher/Code/WebPagePreprocessor/zip.cpp
附錄
在執行代號0x1234558的處理程式期間列舉的每個檔案和目錄使用的結構:
用於程式碼0x123455D處理程式中的收集系統和網路資訊的緩衝區如下所述:
其中info_item是以下結構的FAM:
system_info具有以下結構: