1、概述Lazarus組織近期利用社交平台實施新型釣魚攻擊,通過社交平台誘導受害者使用被改造成木馬的開源軟件,從而獲取到受害主機的控制權限。觀成科技安全研究團隊發現該組織在某次攻擊活動中使用了被改造成木馬的開源軟件UltraVNC。 UltraVNC是一款開源的遠程管理工具,Lazarus組織在該工具中嵌入了惡意下載器。下載器會從CC服務器(互聯網失陷主機)獲取惡意DLL並在內存中加載,與服務器的CC通信全程使用HTTPS加密協議,加密載荷裡的通信交互數據本身又使用了自定義的加密方式進行二次加密。
2、通信過程表2-1 樣本信息表
該樣本類型為ISO,其中包含兩個文件:Amazon_Assessment.exe、ReadMe.txt。木馬化UltraVNC執行後,通過HTTPS加密協議上傳系統信息,從CC服務器下載並執行擴展DLL文件。
圖2-1 木馬化UltraVNC通信過程圖
2.1上線木馬化的UltraVNC獲取註冊表鍵值”\HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS\SystemManufacturer”,即受害主機的生產廠商信息和工作組名稱,用“|”符號連接後進行Base64編碼並附加在樣本中硬編碼的URL後面,形如:https://kaonnews.com/wp-admin/network/sitemap.php?2E9AE1F528B27A798D8BE424E4E7A4E6=。然後,URL使用單字節0x89進行異或加密,加密後的信息通過HTTPS加密協議發送給CC服務器。見圖2-1中的①。
圖2-2 上線包(HTTPS)
圖2-3 上線包(HTTPS解密後)
2.2解密釋放惡意DLL攻擊者通過社交平台誘導受害者使用木馬化的UltraVNC連接ReadMe.txt中記錄的IP 54.182.16.65後,見圖2-1中的②。 UltraVNC中攻擊者添加的代碼會計算該IP字符串的哈希值,將其作為密鑰,循環異或解密樣本中包含的惡意Dll文件,並在當前進程中加載運行。
2.3上傳系統信息惡意DLL獲取電腦名、系統磁盤信息、用戶名、當前進程ID等信息,生成隨機數作為通信校驗的key(也用於URI生成)。
圖2-4 DLL中硬編碼的通信URL
圖2-5 上傳信息數據(加密前)
DLL對數據進行ZIP壓縮+自定義加密+Base64編碼處理後使用HTTPS加密上傳到CC服務器,見圖2-1中的③。
圖2-6 上傳系統信息(HTTPS)
圖2-7 POST上傳系統信息(HTTPS解密後)
圖2-8 自定義加密算法
2.4URI生成DLL除上線包外使用的URI均隨機生成,URI參數數量為1到3個。 DLL首先生成第一個隨機數用來選擇不同的參數,參數列表如下圖所示,再生成第二個隨機數來決定參數的值,參數值可以是隨機字符串,也可以是參數字符串與通信檢驗的Key加法運算後的數據。
圖2-9 通信隨機選取的部分參數列表圖
2.5下發後續攻擊載荷該DLL在使用POST請求上傳系統信息後,每分鐘向目標URL發送無載荷GET請求,用來獲取下階段攻擊載荷。 CC服務器下發的數據也經過了ZIP壓縮+自定義加密+Base64編碼。該DLL接收到下發的數據後解密,解密後的數據包含URL(用來替換樣本通信的URL)以及擴展DLL文件,樣本會加載運行下載的擴展DLL,作為下階段攻擊載荷,見圖2-1中的④。
圖2-10 模擬服務器下發後續載荷格式圖
3、總結Lazarus組織在該款木馬化開源工具中硬編碼了多個常見的URL參數字段,發送心跳包時,使用隨機數來選擇參數、生成參數的值,導致了心跳包長度不固定,弱化了加密通信中的數據長度特徵。 Lazarus組織使用的CC服務器為失陷主機,TLS通信證書為失陷主機的正常HTTPS業務證書,從而將攻擊流量隱藏到了大量的正常HTTPS訪問流量之中,阻礙了研究人員對其服務器特徵的收集。但是該款木馬化開源工具訪問失陷主機的TLS客戶端指紋和瀏覽器正常訪問失陷主機的TLS客戶端指紋是有較大差異的。另外該工具在請求後續載荷的時候有每分鐘1次的心跳行為,雖然心跳包長度並不固定,但是長度是在一定範圍內變化的,具有一定流行為特徵。