技術分析
RSS

中國駭客 HUAPI 的惡意後門程式 BiFrost 分析

4.15.2020Global Support & Service
Share:
關鍵字:HUAPI、PLEAD、GhostCat、CVE-2020-1938、Linux、BiFrost、RC4、RAT

前言

TeamT5 近期接獲情資,於台灣某學術網路的圖書館網站上發現存有惡意程式。經過 TeamT5 研究員分析調查發現,該網站系統使用 Tomcat 7.0.73 作為網頁伺服器且開啟 8009 通訊埠,TeamT5 研究員驗證網站具有 Ghostcat(CVE-2020-1938) 漏洞,詳見下圖。
圖一、Nmap 掃描結果
駭客利用 Tomcat 網頁伺服器預設開啟的 AJP 服務(預設為 8009 通訊埠),可達到遠端指令執行(Remote Code Execution, RCE)之目的並上傳檔案。於該案例中,駭客疑似透過 Ghostcat 漏洞上傳 BiFrost 惡意程式,使該圖書館系統成為惡意程式下載站(Download Site)。

惡意程式分析

該惡意程式(8fd3925dadf37bebcc8844214f2bcd18)於 2020 年 1 月 31 日被上傳至 Virustotal 平台,當時的各家防毒軟體的偵測率並不佳,僅有 6 家防毒軟體能夠有效識別,詳見下圖。
圖二、惡意程式於一月底上傳至 VirusTotal 且一開始防毒軟體的偵測率並不佳
TeamT5 取得該惡意後門程式並進行分析,該惡意後門程式檔名為 md.png,但檔案格式為 UNIX ELF 執行檔,推測是利用 PNG 副檔名偽裝在 Tomcat 網站伺服器上,詳見下圖。
圖三、偽裝為 PNG 的 ELF 執行檔
使用 TeamT5 的 ThreatSonar 惡意威脅鑑識系統可有效辨識出該惡意程式並可以偵測到中繼站 IP 位址(107.191.61.247),詳見下圖。
圖四、ThreatSonar 偵測畫面
經過逆向分析,該惡意後門程式具有上傳/下載/列舉/刪除/搬移檔案(File)、執行/結束程序(Process)、開啟/關閉遠端命令列介面程式(Remote Shell)等功能,其中惡意後門程式與中繼站的連線內容會使用修改過的 RC4 演算法進行加密,此專屬特徵可用來辯認出此惡意程式,詳見下圖。
圖五、惡意後門程式使用修改後的 RC4 加密演算法

攻擊族群分析

該惡意程式為 Linux 版本的 BiFrost 後門程式,其版本號為 5.0.0.0。根據 TeamT5 長期研究的情資顯示,該惡意程式為中國駭客組織 HUAPI(又名為 PLEAD)慣用的後門程式。HUAPI 駭客組織自 2007 年開始活躍至今,攻擊台灣超過 10 年的時間。TeamT5 觀察到 HUAPI 所開發的惡意程式有時會使用加殼來阻擋研究人員分析,且通常會使用修改後的 RC4 演算法來加密傳輸。HUAPI 長期攻擊政府、高科技、電信或研究智庫單位,根據 TeamT5 的統計結果,超過 5 成的受害單位為政府機關,受害國家包含台灣、美國、日本及南韓,其中針對台灣政府機關進行入侵攻擊的為多。

影響與建議

若用戶有使用 Tomcat 服務作為網頁伺服器,且版本為以下之一者:
  • Apache Tomcat 9.x < 9.0.31
  • Apache Tomcat 8.x < 8.5.51
  • Apache Tomcat 7.x < 7.0.100
  • Apache Tomcat 6.x
TeamT5 建議需要立即進行版本更新,避免遭到駭客利用 Ghostcat 漏洞進行遠端控制,甚至上傳惡意檔案。
另外,若用戶若遭遇針對性進階持續威脅(Advanced Persistent Threat, APT)時,則需要使用如 TeamT5 的 ThreatSonar 惡意威脅鑑識系統,IT 管理者可以在最短時間內偵測並回應這類的惡意威脅。TeamT5 建議可將下方威脅指標(Indicator of Compromise, IOC)匯入到各式資安設備中偵測與識別威脅。
  • 107.191.61.247
  • 8fd3925dadf37bebcc8844214f2bcd18
  • Yara Rule
    rule RAT_BiFrost_UNIX
    {
        meta:
        description= "HUAPI UNIX BiFrost RAT"
        author = "TeamT5"
        date = "2020-04-15"
        
        strings:
        $hex1 = {25 ?? 00 00 00 85 C0 75 37 8B 45 F0 89 C1 03 4D 08 8B 45 F0 03 45 08 0F B6 10 8B 45 F8 01 C2 B8 FF FF FF FF 21 D0 88 01 8B 45 F0 89 C2 03 55 08 8B 45 F0 03 45 08 0F B6 00 32 45 FD 88 02}
        $hex2 = {8B 45 F0 03 45 08 0F B6 00 30 45 FD 8B 45 F0 89 C1 03 4D 08 8B 45 F8 89 C2 02 55 FD B8 FF FF FF FF 21 D0 88 01}
        
        condition:
        all of them
    }

外部參考資料

4.15.2020Global Support & Service
Share:

Related Post