Go 語言撰寫的最新勒索病毒 Agenda 採用客製化攻擊

 

一個使用 Go 語言撰寫的最新勒索病毒正瞄準亞洲與非洲的醫療和教育機構。這個名為「Agenda」的勒索病毒會針對每個受害機構而客製化。

最近趨勢科技新發現了一個使用 Go 程式語言撰寫的勒索病毒(勒索軟體,Ransomware) 瞄準了我們的一家客戶,這一點從勒索病毒使用的電子郵件地址和登入憑證可以證實。使用 Go 語言 (亦稱 Golang) 來撰寫勒索病毒似乎已成為駭客集團之間的一個普遍 現象。這種作法之所以變得熱門,一個可能原因是 Go 語言採用靜態方式組譯其所需的函式庫,大幅增加了資安分析的難度。

根據我們的調查顯示,這個新的勒索病毒專門瞄準亞洲和非洲企業,據黑暗網路(Dark Web,簡稱暗網)上一位名叫「Qilin」的使用者所發表的貼文 (此人似乎跟勒索病毒集團有所關連) 以及勒索病毒本身的勒索訊息來看,此勒索病毒叫作「Agenda」。

Agenda 會將系統重新開機至安全模式,並且會終止許多伺服器相關的處理程序和服務,同時還提供了多種執行模式。從趨勢科技蒐集到的樣本來看,此勒索病毒會根據每一家受害機構而客製化,內含獨一無二的公司識別碼 (ID) 以及外洩的帳號細節。

攻擊目標


所有我們蒐集到的樣本都是使用 Go 語言撰寫的 64 位元 Windows PE (Portable Executable) 檔案,所以是專為 Windows 系統所開發。這個勒索病毒集團瞄準了印尼、沙烏地阿拉伯、南非與泰國的醫療和教育機構。每個勒索病毒樣本都是針對受害機構而客製化。根據我們的調查顯示,這些樣本含有外洩的帳號資料、密碼,以及非重複的企業識別碼 (此識別碼同時也用來當成加密後檔案的副檔名)。

我們認為 Qilin (也就是 Agenda 勒索病毒集團) 特別提供一些選項讓加盟夥伴使用,針對每家受害機構製作客製化惡意檔案,這些選項包括:公司識別碼、RSA 金鑰、加密前要終止的系統處理程序與服務。此外,贖金的金額也可隨公司而異,從 5 萬至 80 萬美元不等。

圖 1:Qilin 針對贖金討價還價的範例。

圖 2:Qilin 要求的贖金金額範例。


與其他勒索病毒相似之處


我們注意到 Agenda 與  Black Basta、Black Matter 及 REvil (亦稱 Sodinokibi) 勒索病毒有相似之處。

在支付贖金的網站與透過某 Tor 網站驗證使用者的作法上,Agenda 與 Black Basta 和 Black Matter 非常相似。而 Agenda 在修改 Windows 密碼並使用下列指令來將電腦重新開機進入安全模式的作法上,則是和 Black Basta 及 REvil 類似。

C:\windows\system32\bcdedit.exe  /set safeboot{current} network

攻擊過程


我們在調查一起該勒索病毒的事件時,發現駭客是經由某個對外服務的 Citrix 伺服器進入受害機構。我們相信駭客應該是使用了一個合法的帳號進入這台伺服器,然後才在受害網路內部移動。我們之所以這麼認為,是因為其勒索病毒當中含有合法的特權帳號。

駭客先使用外洩的帳號,經由 RDP 連線至 Active Directory,接著在系統上植入  Nmap.exe 和 Nping.exe 兩個工具來掃描整個網路。然後再使用網域群組原則來推送排程工作。

圖 3:透過群組原則推送的排程工作。

圖 4:電腦上產生的排程工作。

我們發現,從 Citrix 伺服器被駭客入侵到企業感染勒索病毒之間的期間非常短:只有不到兩天的時間。駭客似乎在第一天就掃描了整個網路,接著就建立一個群組原則物件 (GPO) 來將勒索病毒派送到各電腦上。

圖 5:Agenda 勒索病毒攻擊過程。

細部分析與值得注意的特點


Agenda 勒索病毒是一個使用 Go 語言撰寫的 64 位元 Windows PE 檔案。Go 程式具備跨平台特性,而且可完全獨立運作,即使系統上並未安裝 Go 語言解譯器也無妨。這是因為 Go 會將所有必要的函式庫 (功能套件) 都直接組譯到執行檔內。

此勒索病毒執行時,可透過指令列參數來指定各種功能,細節請看下表。

參數 說明
-alter {int}指定子處理程序的連接埠號碼。
-encryption {value}指定使用自訂的加密器而非使用內嵌的加密器。
-ips {IP Address}指定 IP 位址。
-min-size {value}指定要加密的最小檔案大小 (如:1 KB、1 MB、1 GB、666 KB)
-no-proc指定不要終止的處理程序。
-no-services指定不要終止的服務。
-password {string}指定帳號密碼
-path {directory}指定要掃描的路徑,如果指定這個參數時未提供路徑,那麼就掃描所有目錄。
-safe開機進入安全模式。
-stat顯示惡意程式當前的組態設定,例如:要終止的處理程序和服務、加密設定等等。

表 1:Agenda 可使用的指令列參數。

Agenda 使用了一些執行時期組態設定來設定它的行為,包括:RSA 公開金鑰、加密條件、要終止的處理程序和服務清單、加密檔案副檔名、登入憑證,以及勒索訊息。

執行時期組態設定 說明
public_rsa_pemRSA 公開金鑰。
directory_black_list加密時要排除的目錄。
file_black_list加密時要排除的檔案名稱。
file_pattern_black_list加密時要排除的副檔名。
process_black_list要終止的處理程序。
win_services_black_list要終止的服務。
company_id加密檔案副檔名。
accounts登入憑證。
note勒索訊息。

表 2:Agenda 的執行時期組態設定。

當 Agenda 執行,一開始會先檢查以下系統登錄數值來判斷電腦是否正在安全模式下執行:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control SystemStartOptions

如果發現電腦正在安全模式下執行,就終止執行。

勒索病毒接著執行「vssadmin.exe delete shadows /all /quiet」這道指令來移除系統備份還原點,並根據執行時期組態設定來終止某些處理程序和服務,其中有些是防毒軟體的處理程序和服務。

處理程序 服務
a2service.exeacronis vss provider
a2start.exeacronis vss provider
aawservice.exeacronisagent
ashserv.exeacronisagent
avengine.exeacronisagentd
avkwctl.exeavbackup
blackd.exeavbackupd
cfp.execcevtmgr
fsav32.exemacmnsvc
fsdfwd.exemacmnsvcd
fsguiexe.exemasvc
kpf4gui.exemasvcd
mcods.exemcshield
mcpalmcfg.exesentinelagent
mcproxy.exesentinelagentd
mcregwiz.exesentinelhelperservice
mcsacore.exesentinelhelperserviced
mcshield.exesentinelstaticengine
mpfagent.exesentinelstaticengined
mpfservice.exeshmonitor
msmpeng.exeshmonitord
msscli.exesmcinst
nisum.exetmccsf
ntrtscan.exetmccsfd
pccpfw.exetmlisten
tmntsrv.exetmlistend

表 3:Agenda 會終止的一些處理程序和服務。

接著,Agenda 會在系統登錄當中建立 RunOnce 開機自動執行數值「*aster」指向「enc.exe」檔案,這是一個它植入公用資料夾的勒索病毒複本:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce*aster = %Public%\enc.exe

變更使用者密碼並重新開機進入安全模式


Agenda 還會使用一種技巧來讓它在執行加密時不被發現:它會變更預設使用者的密碼,並設定使用新的密碼自動登入,好讓「-safe」指令列參數發揮作用,接著就跟 REvil 一樣,Agenda 會將受害電腦重新開機進入安全模式,開機之後便開始執行加密。

Agenda 先會列出裝置上的所有本機使用者,找出哪一位是預設使用者。

圖 6:Agenda 找出本機預設使用者的程式碼。

找出預設使用者後,Agenda 接著將該使用者的密碼更改成「Y25VsIgRDr」。

圖 7:Agenda 變更本機預設使用者密碼的程式碼。

接著,在系統登錄機碼「Winlogon」底下建立一些數值:

SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\

AutoAdminLogon value =1

DefaultUserName = {username}

DefaultDomainName ={domainname}

DefaultPassword={ Y25VsIgRDr}

圖 8:Agenda 在系統登錄機碼「Winlogon」底下建立的數值。

變更好預設使用者的密碼並啟用自動登入之後,Agenda 接著使用以下指令將受害電腦重新開機進入安全模式:

C:\windows\system32\bcdedit.exe  /set safeboot{current} network

當加密程序完成之後,勒索病毒會再使用以下指令將電腦重新開機進入正常模式:

C:\Windows\System32\bcdedit.exe /set safeboot network bcdedit /deletevalue {default} safeboot

假扮合法帳號登入


Agenda 的另一項特點是能夠使用本機帳號登入憑證來執行勒索病毒檔案,也就是它執行時期組態設定中的登入憑證。

圖 9:Agenda 內嵌的本機帳號登入憑證。

Agenda 首先讀取執行時期組態設定中的帳號,分離出使用者名稱、網域和密碼。接著使用這些資料透過  LogonUserW API 函式試圖登入本機使用者帳號。

圖 10:Agenda 讀取執行時期組態設定帳號欄位的程式碼。

圖 11:Agenda 試圖登入讀取到的帳號。

接下來,Agenda 會產生一個隨機的連接埠號碼,然後用  CreateProcessAsUserW API 函式來執行勒索病毒並傳入指令列參數「-alter」來指定這個連接埠號碼。

圖 12:Agenda 使用 -alter 參數產生一個新的處理程序。

允許網路共用


Agenda 不光只加密一台工作站電腦上的資料,也會感染網路上的共用磁碟。

勒索病毒會新增一個系統登錄機碼,然後重新啟動「 LanmanWorkstation」服務。在新增系統登錄機碼之後,它會設定數值「EnableLinkedConnections = 1」來讓共用網路磁碟能夠存取,然後重新啟動  LanmanWorkstation 服務。如此一來,Agenda 就能讓一些特權指令使用網路共用磁碟。

圖 13:Agenda 將系統登錄數值「EnableLinkedConnection」設成「1」。

圖 14:Agenda 重新啟動 LanmanWorkstation 服務。

加密演算法

Agenda 使用 AES-256 演算法來加密檔案,並使用 RSA-2048 來加密產生的金鑰。首先它會使用一個名為「generateKye」的函式,接著使用  rand_read() API 函式,來產生加密所需的金鑰與初始化向量 (IV)。

圖 15:Agenda 產生隨機金鑰的程式碼。

隨機金鑰產生好後,Agenda 接著使用 AES-256 演算法來加密目標檔案。最後再使用執行時期組態設定中的金鑰與 RSA-2048 演算法將檔案加密金鑰也加密。

檔案加密後,Agenda 會將執行時期組態設定中的公司識別碼附在被加密的檔案名稱後面作為副檔名。接著,在每個被加密的目錄當中產生一份勒索訊息檔案,檔名為「 {company_id}-RECOVER-README.txt 」。

圖 16:Agenda 的勒索訊息。


處理程序注入


Agenda 會在「公用資料夾」當中產生一個名為「 pwndll.dll」的檔案,這是一個木馬程式 (趨勢科技命名為「  Trojan.Win64.AGENDA.SVT」)。這個 pwndll.dll 檔案是從合法的 WICloader.dll 修改而來,使用 C 語言撰寫 (非 Go 語言)。Agenda 將這個 DLL 注入  svchost.exe  處理程序來讓勒索病毒檔案能持續執行。

圖 17:Agenda 將 pwndll.dll 注入 svchost.exe 處理程序。

圖 18:Agenda 使用 pwndll.dll 來執行勒索病毒樣本。


結論與解決之道


勒索病毒一直在持續演變,開發出更精密的方法與技巧來侵襲企業。根據我們的研究顯示,Agenda 這個新的目標式勒索病毒特別使用 Go 語言來撰寫,使它更難被偵測和分析。

此勒索病毒利用 Windows 電腦的安全模式來躲避偵測,以便在不被發現的情況下執行加密動作。此外,這個勒索病毒還使用本機帳號冒充成合法使用者登入系統並執行勒索病毒檔案,如果登入成功,還有機會加密其他的電腦。而且它還會終止各種防毒軟體相關的處理程序和服務,並將其 DLL 注入 svchost.exe 當中。

企業和一般使用者可建立以下良好資安習慣就能防範 Agenda 這類勒索病毒:

  • 啟用多重認證 (MFA) 防止駭客在網路內部橫向移動。 
  • 遵守 3-2-1 原則來備份重要檔案:3 份備份、2 種儲存媒體、1 個不同的存放地點。  
  • 定期修補和更新系統。讓作業系統與應用程式隨時保持更新非常重要,因為這樣才能防止駭客利用軟體漏洞。 

企業也可採用一套具備多層式偵測及回應功能的資安解決方案,例如 Trend Micro Vision One™ 即具備多層式防護與行為偵測,能協助攔截可疑行為和工具,不讓勒索病毒造成危害。此外還有 Trend Micro Apex One™ 可提供進一步的自動化威脅偵測及回應來防範端點遭遇進階威脅,例如無檔案式威脅與勒索病毒。



🔴 一般用戶

假使您也不幸成了受害者,請保持冷靜,最好向外尋求協助,但不要支付贖金。而平時,最好可以安裝一套防毒軟體的即時防護。如 趨勢科技 PC-cillin 的「勒索剋星」可為您的寶貴檔案提供多一層防護。》立即免費下載試用

PC-cillin 防詐防毒、守護個資,支援Windows11 ✓手機✓電腦✓平板,跨平台防護3到位➔ 》即刻免費下載試用

 🔴 企業用戶
建議企業採用一套跨世代的多層式防護技術來防止最新勒索病毒攻擊,在適當時機套用適當的技術來保護您的使用者和資料。》立即前往了解

如需更多有關這起攻擊的入侵指標資訊,請下載這份文件

MITRE ATT&CK 手法與技巧

●原文出處: New Golang Ransomware Agenda Customizes Attacks 作者:Mohamed Fahmy、Nathaniel Gregory Ragasa、Earle Maui Earnshaw、Bahaa Yamany、Jeffrey Francis Bonaobra 與 Jay Yaneza