Mac用戶當心山寨版 iTerm2 App的網路釣魚攻擊

一款偽裝 iTerm2 App的應用程式會下載並執行惡意軟體,並從受害者電腦裡收集個人資料。

在九月初,中國問答網站知乎上有一位使用者回報搜尋關鍵字iTerm2會出現一個山寨網站item2.net,它偽裝成合法的iterm2.com(圖 1)。但透過iterm2.net上的連結會下載到惡意版本的iTerm2 App(macOS 終端模擬器)。當執行此應用程式時,它會下載並執行g.py,一個來自47[.]75[.]123[.]111的惡意Python腳本。這惡意腳本被趨勢科技偵測為TrojanSpy.Python.ZURU.A,它會從受害者電腦上收集個人資料。

一款偽裝 iTerm2 App的應用程式會下載並執行惡意軟體,並從受害者電腦裡收集個人資料。

在本月初,中國問答網站知乎上有一位使用者回報搜尋關鍵字iTerm2會出現一個山寨網站item2.net,它偽裝成合法的iterm2.com(圖 1)。但透過iterm2.net上的連結會下載到惡意版本的iTerm2 App(macOS 終端模擬器)。當執行此應用程式時,它會下載並執行g.py,一個來自47[.]75[.]123[.]111的惡意Python腳本。這惡意腳本被趨勢科技偵測為TrojanSpy.Python.ZURU.A,它會從受害者電腦上收集個人資料。

Figure 1. The fraudulent website iterm2.net
圖 1. 詐騙網站iterm2.net

Objective-see之前發表一篇關於此惡意軟體的文章,分析了駭客如何重新封裝iTerm2 App來載入惡意的libcrypto.2.dylib。它會下載並執行其他組件,包括前面提到的g.py腳本和名為「GoogleUpdate」的Mach-O檔案(裡面包含了Cobalt Strike beacon)。這篇文章提供了惡意軟體的詳細資訊。

木馬化應用程式

截至9月15日,iterm2.net仍然活者。不過惡意檔案並沒有直接放在此網站上。此網站包含了連結hxxp://www.kaidingle.com/iTerm/iTerm.dmg,讓使用者下載名為iTerm.dmg的macOS磁碟映像檔(DMG)。無論使用者選擇從山寨網站下載哪個版本的應用程式,都會被導向iTerm.dmg的下載網址;真正的iterm2.com網站為不同版本提供了不同網址和檔案。而且從合法網站下載的檔案採用ZIP檔案格式,而非詐騙網站的DMG檔案(如圖2所示)。

Figure 2. The file downloaded from the fake website (left) and the official website (right)
圖2. 從山寨網站(左)和官網(右)下載的檔案

比較DMG和ZIP檔案的目錄結構可以看出許多不同之處:

  • 木馬化iTerm2 App的所有Mach-O檔案都是用Apple Distribution憑證(如圖 3 所示),而合法iTerm2.app的檔案使用Developer ID應用程式憑證進行程式碼簽章。根據Apple的文件,開發者用Apple Distribution憑證簽章應用程式只有在送到App Store之前,因此從App Store下載的應用程式通常沒有Apple Distribution憑證。
Figure 3. Trojanized iTerm2 app code signing
圖 3. 木馬化iTerm2 App程式碼簽章

  • 木馬化iTerm2 App在其Frameworks資料夾裡包含了合法版本不存在的libcrypto.2.dylib(其SHA-256雜湊值為2c269ff4216dc6a14fd81ffe541994531b23a1d8e0fbd75b9316a9fa0e0d5fef),如圖 4 所示。
Figure 4. The libcrypto.2.lib file added in the trojanized iTerm2 app
圖 4. 木馬化iTerm2 App加入libcrypto.2.lib

  • 在木馬化iTerm2 App裡,主Mach-O檔裡有多一個命令LC_LOAD_DYLIB會載入libcrypto.2.dylib(如圖 5 所示)。
Figure 5. The load command LC_LOAD_DYLIB loads the file libcrypto.2.dylib
圖 5. 命令LC_LOAD_DYLIB會載入libcrypto.2.dylib

根據Objective-see的文章,當受害者執行木馬化iTerm2 App時,libcrypto.2.dylib內的惡意程式碼會自動執行。 這是一種我們之前沒看過的重新封裝合法應用程式方法。

一旦執行,惡意軟體會連上伺服器並接收下列指令:

  • 下載g.py腳本到/tmp/g.py並執行
  • 下載「GoogleUpdate」到/tmp/GoogleUpdate並執行
  • 使用g.py腳本收集資料

Python腳本g.py會從受害者電腦收集下列系統資料和檔案,然後傳送到伺服器:

  1. 作業系統資訊
  2. 使用者名稱
  3. 已安裝應用程式
  4. 本地IP地址
  5. 下列檔案和資料夾副本:
    1. ~/.bash_history’
    1. ~/.zsh_history
    1. ~/.gitConfig
    1. /etc/hosts
    1. ~/.ssh
    1. ~/.zhHistory
    1. ~/Library/Keychains/Login.keychain-db
    1. ~/Library/Application Support/VanDyke/SecureCRT/Config/
    1. ~/Library/Application Support/iTerm2/SavedState/
  6. 下列資料夾內的內容:
    1. ~/ – {目前使用者的目錄}
    1. ~/Desktop
    1. ~/Documents
    1. ~/Downloads
    1. /Applications

其他木馬化應用程式和假網站


我們進一步分析木馬化iTerm2 App的Apple Distribution憑證後在VirusTotal上找到類似的木馬化應用程式(表 1),這些應用程式都使用相同方法木馬化。

表 1. 在VirusTotal上發現的其他木馬化應用程式

檔名SHA-256雜湊值偵測名稱
iTerm.app.zip5f59ead37fa836c6329a7ba3edd4afc9a2c5fec61de4e0cdb8e8a41031ae4db0TrojanSpy.MacOS.ZURU.A
SecureCRT.dmgae0510032cd4699ef17de7ed1587918ffcd7ff7c9a77fc45f9d68effe2934132Trojan.MacOS.ZuRu.PFH
SecureCRT.dmg1e462f8716275dbae6acb3ff4f7a95624c1afb23c5069fa42a14ed49c2588921Trojan.MacOS.ZuRu.PFH
Microsoft Remote Desktop.dmg5ca2fb207762e886dd3336cf1cb92c28f096a5fbb1798ea6721b7c94c1395259TrojanSpy.MacOS.ZURU.A
Navicat15_cn.dmg6df91af12c87874780cc9d49e700161e1ead71ae045954adbe7633ec9e5e45ffTrojanSpy.MacOS.ZURU.A
Navicat15_cn.dmg91541cfc0474d6c06376460759517ae94f36fca74d5ab84cf5c23d98bd33939eTrojanSpy.MacOS.ZURU.A

在 VirusTotal搜尋iterm2.net所用的SSL指紋後發現了其他詐騙網站。如圖6所示,這些網站都解析到相同的IP地址,43[.]129[.]218[.]115。

Figure 6. Other fake websites found on VirusTotal
圖 6. 在VirusTotal上發現的其他山寨網站

我們曾經可以連上其中一個假網站snailsvn.cn,但當時其網頁的下載連結是空的,因此無法確定該網站是否曾被用來散播木馬化的SnailSVN,Mac OS X上的Apache Subversion(SVN)客戶端(圖 7)。但當本文撰寫時,這些網域都無法連上。

Figure 7. The fake SnailSVN website
圖 7. 偽造的SnailSVN網站

下載伺服器

用來代管木馬化檔案的伺服器kaidingle[.]com是在9月7日註冊,目前仍處在活動狀態。根據 VirusTotal,它除了iterm.dmg還代管了其他DMG檔案,如SecureCTR.dmgNavicat15_cn.dmg(圖 8)。截至9月18日,後面兩個DMG檔案仍可從伺服器下載。

Figure 8. URLs relating with download server
圖 8. 下載伺服器相關的網址

根據伺服器在WHOIS的查詢資訊,同一註冊者名下還有四個其他網域(圖 9)。但到目前為止,這些網域都沒有跟惡意軟體有關的跡象。

Figure 9. Other domains from the same registrant
圖 9. 同一註冊者的其他網域

第二階段伺服器

VirusTotal在IP 地址47[.]75[.]123[.]111(與惡意g.py腳本相同的地址)下記錄了多個與第二階段伺服器相關的網址(從9月8日到17日,如圖10所示)。

Figure 10. URLs under the second-stage server
圖 10. 第二階段伺服器下的網址

除了g.py腳本和「GoogleUpdate」組件是木馬化iTerm App的一部分,第二階段伺服器還代管了其他四個作為滲透後工具的Mach-O檔案(表 2)。

表2. 代管在第二階段伺服器的其他Mach-O檔案

檔名SHA-256雜湊值偵測名稱
la79ef23214c61228a03faea00a1859509ea3bf0247219d65ae6de335fde4061f5開放原始碼的內網滲透掃描器框架   (https://github.com/k8gege/LadonGo)
ioxf005ea1db6da3f56e4c8b1135218b1da56363b077d3be7d218d8284444d7824f端口轉發和內網代理服務工具   (https://github.com/EddieIvan01/iox)
netscan-darwin-amd64          d12ef7f6de48c09e84143e90fe4a4e7b1b3d10cee5cd721f7fdf61e62e08e749Netscan掃描網路以找出特定IP/IP範圍內的開啟端口及該網路正在使用的IP地址   (https://github.com/jessfraz/netscan/releases)
Hosta83edc0eb5a2f1db62acfa60c666b5a5c53733233ce264702a16cb5220df9d4eBackdoor.MacOS.Wirenet.PFH

值得注意的是,第二階段伺服器的 IP 地址跟「GoogleUpdate」連接的IP地址(47[.]75[.]96[.]198)相似。這兩個IP地址均由香港阿里巴巴代管。如圖 11 所示,47[.]75[.]96[.]198 下的網址跟第二階段伺服器內的註冊時間大致相同,這顯示這兩個伺服器可能是由同一名駭客建置。

Figure 11. URLs under the same server as “GoogleUpdate”
圖 11. 與「GoogleUpdate」同在一伺服器下的網址

廣告網站


如前面的使用者報告所描述,搜尋引擎結果的第一條是在子網域rjxz.jxhwst.top底下。透過Google搜尋此地址會出現兩個結果,但指向網頁存檔(圖 12),在本文撰寫時,它們的實際網頁已經關閉。

Figure 12. Google caches of the two fake sites
圖 12. 兩個山寨網站的Google網頁存檔

第一個搜尋結果為「Microsoft Remote Desktop」,其地址為hxxp://rjxz.jxhwst.top/3,但根據其網頁存檔(圖 13)和程式碼(圖 14),我們發現它會將使用者導向山寨網站hxxp://remotedesktop.vip

Figure 13. The cache of the fake “Microsoft Remote Desktop” page
圖 13.  假「Microsoft Remote Desktop」的網頁存檔
Figure 14. The source code of the fake page
圖 14. 假網頁代碼

檢視其主頁,我們發現二級網域jxhwst.top屬於中國北方的一家農業公司。除了子網域rjxz.jxhwst.top外,這個二級網域還有44個其他子網域,幾乎都用於與農業公司無關的廣告(圖 15)。公司可能將這些子網域出租給其他人作為廣告用途,但無法防止它們被用於非法目的。如果是這樣,駭客會租用子網域來散播惡意軟體。

Figure 15. The subdomains of the agriculture company
圖 15. 農業公司的子網域

安全建議

  • 為了保護系統抵禦此類威脅,使用者應該只從官方或合法應用商店下載應用程式。要謹慎對待搜尋引擎的結果,記得仔細檢查網址以確保它們確實指向官方網站。Mac用戶可以考慮使用多層次安全解決方案,如趨勢科技的PC-cillin for Mac,它提供了加強的反詐騙保護,能夠標示和封鎖試圖竊取個人資料的詐騙網站。PC-cillin for Mac也是趨勢科技PC-cillin

的一部分,這是套多平台解決方案,提供全面位安全防護和多裝置保護來對抗網路威脅。

入侵指標 (IOC)

檔名SHA-256雜湊值偵測名稱
SecureCRT.dmg1e462f8716275dbae6acb3ff4f7a95624c1afb23c5069fa42a14ed49c2588921TrojanSpy.MacOS.ZURU.A
com.microsoft.rdc.macos5ca2fb207762e886dd3336cf1cb92c28f096a5fbb1798ea6721b7c94c1395259  TrojanSpy.MacOS.ZURU.A
iTerm.app.zip5f59ead37fa836c6329a7ba3edd4afc9a2c5fec61de4e0cdb8e8a41031ae4db0TrojanSpy.MacOS.ZURU.A
Navicat15_cn.dmg6df91af12c87874780cc9d49e700161e1ead71ae045954adbe7633ec9e5e45ffTrojanSpy.MacOS.ZURU.A
Navicat15_cn.dmg91541cfc0474d6c06376460759517ae94f36fca74d5ab84cf5c23d98bd33939eTrojanSpy.MacOS.ZURU.A
SecureCRT.dmgae0510032cd4699ef17de7ed1587918ffcd7ff7c9a77fc45f9d68effe2934132TrojanSpy.MacOS.ZURU.A
iTerm.dmge5126f74d430ff075d6f7edcae0c95b81a5e389bf47e4c742618a042f378a3faTrojanSpy.MacOS.ZURU.A
Microsoft Remote Desktop.dmg4e8287b61b0269e0d704c6d064cb584c1378e9b950539fea366ee304f695743fTrojanSpy.MacOS.ZURU.A
libcrypto.2.dylib4aece9a7d73c1588ce9441af1df6856d8e788143cd9e53a2e9cf729e23877343TrojanSpy.MacOS.ZURU.A
libcrypto.2.dylib4e8287b61b0269e0d704c6d064cb584c1378e9b950539fea366ee304f695743fTrojanSpy.MacOS.ZURU.A
libcrypto.2.dylib8db4f17abc49da9dae124f5bf583d0645510765a6f7256d264c82c2b25becf8bTrojanSpy.MacOS.ZURU.A
libcrypto.2.dylib62cae3c971ed01c61454e4c3d9a8439cdcb409a8e1c5641e5c7c4ac7667cb5e5TrojanSpy.MacOS.ZURU.A
libcrypto.2.dylibaba7c61d2c16cdae17785a38b070df57aa3009f00686881642be31a589fabe0aTrojanSpy.MacOS.ZURU.A
libcrypto.2.dylibaf2cb957387b7c4b0c5c9fa24a711988c9e8802e758622b321c9bdc5720120d2TrojanSpy.MacOS.ZURU.A
libcrypto.2.dylibe8184e1169373e2d529f23b9842f258dddc1d24c77ced0d12b08959967dfadefTrojanSpy.MacOS.ZURU.A
libcrypto.2.dylib2c269ff4216dc6a14fd81ffe541994531b23a1d8e0fbd75b9316a9fa0e0d5fefTrojanSpy.MacOS.ZURU.A
g.pyffb0a802fdf054d4988d68762d9922820bdc3728f0378fcd6c4ed28c06da5cf0TrojanSpy.Python.ZURU.A

MITRE攻擊戰略、技術和步驟(TTP)

攻擊戰略ID名稱介紹
初始進入(Initial Access)T1566.002魚叉式釣魚連結來自搜尋引擎結果的釣魚網站
執行(Execution)T1059.006Python下載Python腳本
T1204.002惡意檔案執行重新封裝的iTerm2 App會啟動惡意軟體dylib libcrypt.2.dylib
防禦逃脫(Defense Evasion)T1140去混淆/解碼檔案或資訊惡意軟體dylib內的字串經過AES和Base64編碼
T1036偽裝 (6)惡意軟體dylib加進重新封裝的iterm2 App
收集(Collection)T1560.002經由程式庫壓縮收集各種資訊並加進zip壓縮檔
T1005來自本地系統的資料收集系統資訊、bash歷史記錄和登入憑證資訊
T1602來自設定庫的資料 (2)收集/Library/Application Support/VanDyke/SecureCRT/Config 的內容
資料滲出(Exflitration)T1041透過C2管道滲出檔案被外洩到hxxp://47[.]75[.]123[.]111/u.php


@原文出處:Mac Users Targeted by Trojanized iTerm2 App 作者:Steven Du, Luis Magisa

訂閱資安趨勢電子報,每日掌握資安趨勢

PC-cillin 完整防詐攻略:保護資料/偵測威脅/防範侵入,識破各種詐騙手法,全面防護更安心。 不只防毒,更防詐騙! 不只防毒也防詐騙 ✓手機✓電腦✓平板,跨平台防護3到位➔ 》即刻免費下載試用
FB IG Youtube LINE 官網