Posts macOS/NukeSped Dropper Threat Analysis
Post
Cancel

macOS/NukeSped Dropper Threat Analysis

Intro.

ESET 安全團隊在今年 5/4 時發布了推特,說明在 virustotal 上發現了疑似 lazarus 的惡意程式,並且使用的是針對 MacOS 用戶的 mach-O 格式,並且擁有 x64/arm64 的雙架構。主要會被認為是 lazarus 的原因在於程式丟出來的 PDF 檔與其他樣本極為相似。本篇 blog,將會對這隻惡意程式進行分析。

Dropper

一開始先分析初始被丟到 virustotal 的這隻 dropper,使用 codesign 檢視程式可以發現程式是經過 APPLE 開發者簽章的,名稱為 goldenbook2021@icloud.com,從名稱來看應該是攻擊者隨意註冊的免洗帳號。在 flag 的欄位,攻擊者有開起 hardened runtime 來保護自身程式算是蠻注重安全的(?

codesign1

檢查 entitlement 時發現這隻程式特別去允許了 get-task-allow,這個權利在一般來說是用於讓程式擁有偵錯別隻行程的能力,然而也時常被濫用於 code injection 等惡意行為。

codesign2

Decoy

程式一開始會注入一個 decoy pdf檔在 Library/Fonts/BitazuCapital_JobDescription.pdf

decoy

而這個 pdf 就是被指認為 lazarus 的依據。原因如 ESET 所說,在於 PDF 所使用的版本,以及封面的裝飾以及標題使用的顏色。

decoy

接著程式組合了一段命令 open 'Users/<username>/Library/Fonts/BitazuCapital_JobDescription.pdf' && rm -rf '/Users/<username>/Library/Saved Application State/com.apple.Terminal.savedState' 這段命令前半段是讓程式開啟 decoy pdf 作為一個檢視 pdf 的偽裝,接著後段是刪除 terminal 的 savedState 檔,這個 savedState 檔主要是用來內部還原程式內容用的,因此推測是為了掩滅掉執行紀錄。

openpdf

最後程式就進到主要解開第二段 payload 的函數 thExec

Drop file

進到 thExec 函數後一開始會生成三個檔案名稱,/Users/<name>/Library/Fonts/safarifontsagent_/Users/<name>/Library/Fonts/fontsupdater_/Users/<name>/Library/Fonts/safarifontsagent

file_drop

然而後面寫入檔案內容時,實際只有使用到前面兩個檔名,第三個檔案在後面並沒有被使用。

file_drop

接著是組合出兩個解壓縮檔的命令,檔案會解壓縮出兩個檔案

  • FinderFontsUpdater.app
  • safarifontsagent

file_drop

檔案放置完成後,最後就是將程式運行起來,並且製作持久化,這邊執行的方式是利用 Application bundle 的方式來開啟,而不是直接執行一隻可執行檔,可能是為了讓程式更符合一般用戶執行程式的方式。

當程式沒有正常開啟時就會重新在下一次指令,並且將其放到自動啟動內。

file_drop

Persistence

在 macOS 底下常見的開機執行是要將運行的 plist 檔案放在 LaunghDaemon 或是 LaunghAgents,而這隻惡意程式也不例外,將 hardcode 的 plist 放在 /Users/<name>/Library/LaunchAgents/ 的路徑底下,名稱為 com.safari.fontsyncagent.pyncagent.plist,而這個 plist 內部運行的主程式會指向可執行檔 /Users/<name>/Library/Fonts/safarifontsagent

file_drop

Second-stage payload

  • FinderFontsUpdater.app
  • safarifontsagent

這邊兩隻程式一樣是有經過簽章的

FinderFontsUpdater.app

單純是一隻執行器用來將 /Users/<name>/Library/Fonts/safarifontsagent 跑起來而已

Downloader (safarifontsagent)

safarifontsagent 這隻 downloader 會使用 curl 到 https://onlinestockwatch[.]net/<username>.jpg 下載第三段的 payload,然而現在這個domain 已經沒辦法使用因此無法下載到第三段主要的惡意行為算是蠻可惜的

資訊搜集

程式利用 sw_vers -productVersion 來搜集系統版本,以及使用 sysctlbyname(hw.cpufrequency),來搜集 CPU 頻率

結論

此惡意程式使用在 dropper 和 downloader的部分使用純 c 來寫,在 啟動器 app 的部分使用 objective-c 來寫,再來此惡意程式在偽裝上算是下足了功夫,不僅額外做了一個應用程式,並且還假裝的打開了一份 PDF。再來是 downloader 下載 C2 的方式竟然是要用使用者的名稱當作下載路徑名稱,這樣的操作想必是用在攻擊極度特定的人士,攻擊者已經清楚知道該台電腦使用者名稱的狀況。

This post is licensed under CC BY 4.0 by the author.