團伙背景
Kimsuky,別名 Mystery Baby、Baby Coin、Smoke Screen、Black Banshe 等,奇安信內部跟蹤編號為 APT-Q-2。該 APT 組織于 2013 年公開披露,攻擊活動最早可追溯至 2012 年。Kimsuky 主要攻擊目標為韓國,涉及國防、教育、能源、政府、醫療以及智囊團等領域,以機密信息竊取為主。該組織通常使用社會工程學、魚叉郵件、水坑攻擊等手段投遞惡意軟件,攻擊手法多樣,擁有針對 Windows 和 Android 平臺的攻擊武器。
事件概述
近期奇安信威脅情報中心發現一批 Kimsuky 組織使用的 Endoor 樣本,該后門軟件使用 Go 語言編寫,曾在我們于 2024 年初發布的報告《軟件安裝包偽裝下的 Kimsuky(APT-Q-2)竊密行動》[1]中提及,韓國安全廠商 Ahnlab 將其命名為 Endoor,名字取自樣本中 Go 函數路徑帶有的 “/En/En/” 字符串[2]。
詳細分析
相關樣本信息如下:
MD5 | VT?上傳時間 | 文件名 | 文件類型 |
e5c4f8ad27df5aa60ceb36972e29a5fb | 2025-06-04 00:10:15 UTC | ex.pdf_ | EXE |
b15cadf2a4e6670c075f80d618b26093 | 2025-06-06 07:03:07 UTC | icon.db | DLL |
DLL 樣本本身為 Endoor,而 EXE 樣本是從自身數據解密出 Endoor 并在內存加載,不過兩者使用的 Endoor 核心代碼幾乎一致,因此先以 DLL 樣本為例進行分析,再介紹 EXE 樣本作為加載器額外添加的操作。
Endoor
DLL 樣本(MD5: b15cadf2a4e6670c075f80d618b26093)的惡意功能通過導出函數 XX 進入,最終調用 Go 編寫的函數 main_XX。
Endoor 核心代碼帶有 “local.github.com” 字符串,疑似偽裝為開源代碼掩蓋其惡意行為。
初始化操作
首先生成標記受害者的 UID。獲取 Endoor 感染設備的的主機名和用戶名,字符串拼接后計算 MD5 hash,提取 hash 值前 5 字節并轉換為十六進制字符串格式,再帶上 “XX-” 前綴和表示是否具有管理員權限的后綴(”N” 或 “Y”)。完整的 UID 格式如下:
“XX-[MD5 hash 部分值]N”或者”XX-[MD5 hash 部分值]Y” |
切換工作目錄,并創建 lock 文件保證惡意程序單例運行,lock 文件以生成的 UID 命名。執行完這些初始化操作后,Endoor 進入 LoopSession 的循環。
C&C 通信
Endoor 連接的 C&C 服務器 URL 為 “hxxp://june.drydate.p-e.kr:53/”,通過 POST 請求傳遞數據,與 C&C 服務器的交互主要有獲取下發指令(DownloadCommand)和回傳結果(UploadResult)兩部分。
(1) 獲取下發指令
獲取指令的請求數據格式如下,參數 1 的值為 “2”,參數 2 的值在 UID 后添加了字符 “1”。
a[9 字節隨機字符串]=2&b[9 字節隨機字符串]=[UID]1&c[9 字節隨機字符串]= |
接收到服務器響應后,Endoor 判斷首字母是否為 “S”(表示 Success),如果是則嘗試對首字母之外的其他數據進行 base64 解碼。解碼數據由 4 字節的加密 key 和加密數據組成,然后進一步執行解密操作。
(2) 回傳結果
回傳結果的請求數據格式如下,參數 1 的值為 “1”,參數 2 的值在 UID 后加了字符 “2”。
x[9 字節隨機字符串]=1&y[9 字節隨機字符串]=[UID]2&z[9 字節隨機字符串]=[加密數據] |
POST 請求中的加密數據通過隨機生成的 4 字節 key 進行加密,然后再用 base64 編碼。
回傳數據后,后門根據服務器響應是否為 “S” 判斷是否回傳成功。
后門指令
獲取指令后,后門根據響應數據的前兩字節進行指令分發,之后的數據作為指令參數。
后門支持的指令如下:
C&C?指令 | 函數名 | 功能 |
“01” (0x3130) | Process_Sleep | 休眠指定時間,結束當前 C&C 通信會話 |
“02” (0x3230) | Process_Cmd | 創建 shell,執行指定遠程命令 |
“03” (0x3330) | Process_Pwd | 獲取當前工作目錄 |
“04” (0x3430) | Process_Cd | 切換工作目錄 |
“05” (0x3530) | Process_Conn | 向指定服務器建立 TCP 連接 |
“06” (0x3630) | Process_Exit | 退出后門程序 |
“07” (0x3730) | Process_Where | 獲取后門程序的文件路徑 |
“08” (0x3830) | Process_Dirsize | 獲取指定目錄的統計信息(子目錄和文件數量,目錄中文件總大?。?/td> |
“09” (0x3930) | Process_GetInfo | 獲取設備信息,包括主機名、用戶名、CPU 信息、內存信息、網卡信息 |
“10” (0x3031) | Process_CmdPath | 設置執行shell 命令的文件路徑(默認為 cmd.exe) |
“11” (0x3131) | Process_Codepage | 設置代碼頁,默認為euc-kr(韓語) |
“12” (0x3231) | Process_Hibernate | 設置下次連接的具體日期時間(解析時區為韓國時區Asia/Seoul),結束當前C&C 通信會話 |
“13” (0x3331) | Process_Die | 刪除后門程序文件 |
“14” (0x3431) | Process_SocksAdd | 添加 Socks5 代理,并建立連接 |
“15” (0x3531) | Process_SocksList | 列出 Socks5 代理 |
“30” (0x3033) | Process_Upload | 向感染設備上傳文件 |
“31” (0x3133) | Process_Download | 從感染設備下載文件 |
加載器
EXE 樣本(MD5: e5c4f8ad27df5aa60ceb36972e29a5fb)通過異或解密的方式從自身數據中恢復出一段 Shellcode,然后執行。
Shellcode 進一步解密出一段 PE 文件數據,長度為 0x6f7000 字節,并在內存中加載執行。
提取的 PE 中包含基本相同的 Endoor 代碼。
該 Endoor 樣本會檢查程序啟動時的命令行參數,如果不帶指定參數運行,則直接執行自刪除操作。支持的參數有 “dkgei” 和 “dkeig” 兩種。
參數 “dkgei” 下,樣本將自身復制為當前用戶目錄下的”svchost.exe” 文件(即”C:\\\\Users\\\\[用戶名]\\\\svchost.exe”),然后創建名為 “Windows Backup” 的計劃任務,以參數 “dkeig” 啟動。如果計劃任務創建成功,則進行自刪除,否則嘗試與 C&C 服務器通信。
參數 “dkeig” 運行模式下,則直接進入與 C&C 服務器的通信過程。
溯源關聯
此次發現的 Endoor 樣本和之前披露的 Kimsuky 后門[1]特征完全一致,包括網絡通信的數據格式、后門指令的代碼和對應功能。
不過此次 Endoor 后門有兩點和歷史樣本不一樣的地方,首先是記錄下一次連接 C&C 服務器的時間不再保存在注冊表中,而是直接存儲在樣本的全局變量里。其次,樣本在自刪除時,使用的是硬編碼路徑 “C:\\\\Programdata\\\\Cache.db”,而不是樣本實際的保存位置,比如上面提到的 Endoor 樣本將自身復制為 svchost.exe,這會導致自刪除操作無法生效,推測可能是攻擊者在調整代碼時留下的錯誤。
C&C 服務器域名 june.drydate.p-e.kr 綁定 IP 162.216.114.133,該 IP 在近期還綁定了其他類似的域名:summer.cooldate.p-e.kr 和 uni.oxford.p-e.kr,后者可能模仿牛津大學。
總結
本次發現的 Endoor 后門在功能上變化不大,但攻擊者掩蓋攻擊的方式別出心裁,一方面是惡意函數的文件路徑以 local.github.com 開頭,試圖偽裝為來自 github 的開源代碼,避開代碼審查,另一方面后門連接 C&C 服務器的 53 端口,而不是常規的 80 或者 443 端口,一定程度上可以繞過對惡意流量的檢測,體現了 Kimsuky 組織在實施攻擊時不斷調整手法的靈活性。
防護建議
奇安信威脅情報中心提醒廣大用戶,謹防釣魚攻擊,切勿打開社交媒體分享的來歷不明的鏈接,不點擊執行未知來源的郵件附件,不運行標題夸張的未知文件,不安裝非正規途徑來源的 APP。做到及時備份重要文件,更新安裝補丁。
若需運行,安裝來歷不明的應用,可先通過奇安信威脅情報文件深度分析平臺(https://sandbox.ti.qianxin.com/sandbox/page)進行判別。目前已支持包括 Windows、安卓平臺在內的多種格式文件深度分析。
目前,基于奇安信威脅情報中心的威脅情報數據的全線產品,包括奇安信威脅情報平臺(TIP)、天擎、天眼高級威脅檢測系統、奇安信 NGSOC、奇安信態勢感知等,都已經支持對此類攻擊的精確檢測。
IOC
MD5
b15cadf2a4e6670c075f80d618b26093
e5c4f8ad27df5aa60ceb36972e29a5fb
d4db59139f2ae0b5c5da192d8c6c5fa0
C&C
june.drydate.p-e.kr
summer.cooldate.p-e.kr
uni.oxford.p-e.kr
URL
hxxp://june.drydate.p-e.kr:53/
參考鏈接
[1].https://mp.weixin.qq.com/s/kKNkTAlUpLL2skXq3TcBfw
[2].https://asec.ahnlab.com/en/63396/