TL;DR:EtherHide(或 EtherHiding)是把惡意 payload 託管在智能合約上、並用 eth_call 等方法讀取的 C2 技術。本文含 2025 年實戰案例(SePolia/BSC)、CTF 解題與 pyinstaller 逆向步驟,並整理偵測與追蹤建議。

本文有將一些專有名詞介紹在最底下,有看不懂得可以先到最底下瀏覽

簡介

分析惡意程式建立威脅情資報告,我們總在追查攻擊者的位置

攻擊者也不斷改變 c2 的隱藏方式和建立方式

底下列出一些過去到現在看到的 c2 建立方式和傳資料方式:

  • VPS
  • web hosting
  • Pastebin
  • Twitter
  • Github / Gitee
  • Telegram
  • Google Calendar

本文探討的是 EtherHide 技術,這是一種使用智能合約作為 C2 的技術

什麼是 EtherHide

EtherHide 是將任何 payload 插入到區塊鏈上的智能合約,之後透過外部呼叫並執行

因為區塊鏈的特性,所以插入的 payload 不會被刪除,可以被穩定的使用

且因為 EtherHide 使用區塊鏈網路作為 c2 infra ,所以現有的追蹤方式比較難應用到這部分

這裡摘要 EtherHide 相關資訊

  • EtherHide 最早出現於 2023 年 10 月 [2]
    • 過去駭客是入侵智能合約進行竊盜,現在是利用合約合法的託管惡意程式
  • 雖然名字有 Ether ,但他不是專用於以太坊,此技術適用於各種智能合約平台
  • 攻擊者使用 EtherHide 技術的好處
    • 區塊鏈的匿名性:追蹤攻擊者變得困難
    • 區塊鏈的不可逆性:惡意程式將永遠保存在鏈上,無法被刪除
    • 區塊鏈的去中心化:政府無法發布通知要求網站將上面的檔案刪除,也難以封鎖特定 ip
    • 無須在受害者電腦存放大量惡意程式檔案,降低被偵測到的風險

EtherHide 如何運作

EtherHide 是透過將惡意程式以智能合約的方式去託管到區塊鏈上

所以可能的攻擊利用方式:

  • 攻擊者入侵有漏洞的網站 (常見使用過時 plugin 的 wordpress 網站),在網站中嵌入 javascript 程式碼,該 javascript 程式碼會透過比如幣安的 SDK 和智能合約互動,以此獲取惡意的 payload

幣安智能鏈(BSC, Binance Smart Chain)上的 eth_call 方法常見用於獲取惡意程式碼,
而不會在交易的 log 中留下痕跡 [3]

以下會介紹目前看到網路文章探討的真實世界案例以及 CTF 上面看到的題目

CTF 競賽

2025.07.13 - 資安菁英實戰培育課程-第二期臺北場: 網路威脅防禦競賽

課程介紹

題目簡介

競賽題目裡面,有一個題目,題目給了一個 qcow2 檔案,
說是一個被駭客攻擊後,dump 出來的虛擬磁碟映像檔案

題目要求我們要找到駭客的 c2 ,並知道駭客傳遞的內容是什麼

解題分享

找尋惡意程式在哪

首先掛載 qcow2

掛載方式為:

1
2
3
4
5
6
7
sudo modprobe nbd max_part=8

qemu-nbd -c /dev/nbd1 file.qcow2

sudo mkdir -p /mnt/nbd1p2

sudo mount -o ro /dev/nbd1p2 /mnt/nbd1p2

上面的做法是

  1. 載入 nbd module
  2. 掛載 qcow2 到 nbd devices
  3. 將裡面的檔案系統掛載到 /mnt/nbd1p2

掛載好之後,因為他是 windows 系統,想先看一下 event log

這裡使用一個 github 工具: chainsaw

這個工具可以分析 evtx ,並搜尋特定的事件

常見使用的 event code 為底下表格所列

Event Type Event ID
Process Creation (Sysmon) 1
Network Connections (Sysmon) 3
Image Loads (Sysmon) 7
File Creation (Sysmon) 11
Registry Events (Sysmon) 13
Powershell Script Blocks 4104
Process Creation 4688
Scheduled Task Creation 4698
Service Creation 7045

這裡找尋 powershell 的事件 (4104)

所以使用底下指令:

1
./chainsaw search -t 'Event.System.EventID: =4104' evtx_arrack_samples/'

會看到底下被混淆的 powershell 指令

把上面的解混淆就可以看到底下內容

上圖可以得到的資訊是

  1. 第一階段的 c2 是 ao[.]pe
  2. 持久化位置在 start up 資料夾底下

之後我們到上述的資料夾就能看到惡意程式,這裡紀錄一下他的 hash

  • MD5: 561b6768046839520f6912c9c7a2f445

這個有在 VirusTotal 上面,所以有興趣的人可以自行下載來看

分析惡意程式

在 VirusTotal 上面瀏覽可以看到有連線到Sepolia 測試網

底下 any.run 上可以知道這個惡意程式是透過 pyinstaller 打包成 windows 執行檔案

逆向的方式為

  1. 將 pyinstaller 打包的檔案轉回 pyc 檔案
  2. 將 python byte code 轉回 python source code

解 pyinstaller 檔案我用這個網站

會得到底下一堆檔案,理論上主程式會跟程式檔案名稱相同,所以應該是 c2.pyc

python byte code 轉回 python 的 source code 我使用這個網站

底下截一小部分的惡意程式的程式片段

根據上述的線索,可以到這個網址進行查詢

上圖可以看到他的交易資料是一串 hex 資料,我們把它解密後就能知道駭客透過區塊鏈作為 c2 傳遞的內容

Hackcon2018 CTF - EtherHide

題目簡介

解題分享

Ropsten Test Network 已經於 2022 年 10 月被宣告停用,目前平台基本沒支援該測試網路的資料了

底下內容純紀錄此 Youtube 影片的片段畫面

從題目的敘述可以知道 2 個資訊:

  1. network: Ropsten Test Network
  2. Address: 0x94f23F189583e828E73573905A19d93E21D0E957

只要上去區塊鏈瀏覽的相關平台找該地址的資料,就會看到它的歷史交易資料,裡面就會有答案

過去的查詢網址:https://ropsten.etherscan.io/ (目前已經被棄用)

下圖取自 youtube ,也就是查詢該地址的一個交易紀錄

將上圖的 hex decode 就能看到答案,也就是下圖

取自 youtube

網路文章彙整整理

2025.10.01 - Investigating a ClearFake/ClickFix + Etherhide campaign

參考文章連結

這篇文章講述的是 ClearFake + EtherHide

整個攻擊流程為

  1. 在受感染的 wordpress 植入惡意的 javascript
  2. 當受害者瀏覽網站,會執行惡意的 JavaScript 並連接和執行儲存在 BSC 的惡意指令
  3. 最終部署 Lumma (一種資料竊取的惡意程式)

此次事件使用的 address: 0x7d0b5A06F8c43011fB66Eb90f61525A827eaE0d7

可以在BscScan網站瀏覽歷史交易資料

2025.04.22 - Detecting Fake CAPTCHA Campaigns: ClickFix, ClearFake, and Etherhide

參考文章連結

這一篇談論到 ClearFake 搭配 EtherHide

裡面是各種資料參雜在一起,跟 EtherHide 有關的主要為底下 2 點:

  1. 觀察到 powershell/mshta 惡意指令鑲嵌到 BSC 智能合約上
  2. 此篇文章這部分敘述應是參考 Atea report

2025.01.02 - EtherHiding and ClickFix: new mask of social engineering campaign

這篇文章分析寫得很詳細,值得好好閱讀

參考文章連結

這篇文章描述的攻擊事件流程為

  1. 在受感染的 wordpress 網站植入惡意 javascript 程式碼
  2. 受害者瀏覽受感染網站會執行惡意程式碼,並連接到 BSC 上面

此事件的惡意 address: 0x9179dda8B285040Bf381AABb8a1f4a1b8c37Ed53

可以在 bscscan 網站上面瀏覽這個事件的合約

2024.12.05 - ClearFake Campaigns Trick Users Into Copying and Executing Powershell Code

參考文章連結

此篇文章比較多在介紹 ClearFake 相關內容

2024.07.02 - EtherHiding and Fake-Updates Used to Deliver Malware

參考文章連結

這一篇談論到,作者觀察最近有透過 EtherHide 傳播 Fake-Updates 惡意程式,並最終安裝了 Lumma 資料竊取惡意程式

攻擊流程:

  1. 使用者瀏覽了受感染的網站 (wordpress)
  2. 網站執行攻擊者嵌入的惡意 javascript ,跳出虛假的更新 (Fake Updates) 軟體資訊
  3. 點擊假更新資訊,會在背後執行 powershell 指令,之後下載一個惡意壓縮檔案並執行裡面的惡意程式

2024.02.02 - Smargaft Harnesses EtherHiding for Stealthy C2 Hosting

參考文章連結

這一篇是說他們看到有惡意程式的 c2 是放在 BSC 智能鏈上面,但觀察到防毒廠商將這些惡意程式仍定義為 Mirai ,他們重新命名這些惡意程式為 Smargaft

這些惡意程式的主要功能是做 DDoS

xlab 表示這是他們第一次在殭屍網路上面看到使用 EtherHide 攻擊技術

image
圖片取自:XLAB Blog

Smargaft 惡意程式會透過 json rpc 和區塊鏈網路通訊,取得 c2 資訊

  • 獲取鏈上的資料,是使用幣安的 SDK 裡面的 eth_call 方法

2023.10.13 - “EtherHiding” — Hiding Web2 Malicious Code in Web3 Smart Contracts

參考文章連結

此篇文章被其他文章引用,被認為是最早發現 EtherHide 的起始文章

文章提到的摘要整理

  1. 觀察到 EtherHiding 是利用幣安的 BSC 智能合約來託管惡意程式
  2. 觀察到攻擊者入侵大量的 wordpress 網站來誤導使用者下載惡意虛假的「瀏覽器更新」檔案
  3. 此篇文章主要探討 ClearFake 攻擊活動

知識補充

什麼是 C2

攻擊者植入惡意程式到受害者電腦上,惡意程式會回連到攻擊者的機器

我們稱惡意程式連回去的攻擊者機器為 C2

什麼是 ClearFake

這是一種利用社交工程欺騙使用者執行惡意指令的方法

攻擊者會在受感染的網站 (常見於 wordpress) ,植入惡意的 javascript 程式碼

並且當使用者瀏覽到受駭的網站時,會跳出一個虛假的更新內容,欺騙使用者點擊

一旦使用者被騙點擊相關資訊 (常見是要求你要更新檔案,才可完整瀏覽該網站或執行某些事情)

使用者就會執行攻擊者的惡意指令

ClearFake 搭配 EtherHide 的意思

上述提及當使用者瀏覽到受駭的網站時,會跳出一個虛假的更新內容,欺騙使用者點擊

搭配 EtherHide 的意思就是使用者點擊惡意虛假內容時,會連接到 BSC 智能鏈上抓取攻擊者預先設置好的惡意指令

什麼是 BSC

BSC 是幣安於 2020 年上線的區塊鏈平台,類似以太坊,支援 DApp 和智能合約

為何惡意程式愛用 eth_call

eth_call 是幣安的 SDK 提供的一個方法,可以讓使用者從智能合約中讀取資料,而不會產生任何交易費用,甚至不會有任何紀錄在區塊鏈上面

所以攻擊者可以使用 eth_call 這個方法來讓惡意程式從鏈上獲取資料

參考資料

[1]: EtherHiding: Hiding Malware On the Blockchain
[2]: “EtherHiding” — Hiding Web2 Malicious Code in Web3 Smart Contracts
[3]: eth_call (BSC)