北朝鮮(DPRK)とつながりのある攻撃グループが、「Cross-Chain TxDataHiding(XCTDH)」キャンペーンで運用しているブロックチェーン基盤のコマンド&コントロール(C2)インフラを拡張しました。新たに加わったのは、イーサリアムを利用した復旧用チャネル「HashHiding」です。
この手法は、通常のイーサリアム送金の受信アドレスに、稼働中のC2のIPアドレスとポート番号を埋め込みます。感染したシステムは、ドメインやスマートコントラクト、トランザクションのcalldataに頼らずに、攻撃者のインフラを再取得できます。
今回の攻撃は従来の3チェーン構成を維持したまま、イーサリアムを軽量なC2シグナリング層として加えています。これにより、4つのブロックチェーンで構成され、従来型の妨害対策に耐えられるよう設計された仕組みになりました。
新たに確認されたJavaScriptコンポーネント_Zは、2026年9月に本キャンペーンの既存のBSCペイロードチェーンから配信された/initのレスポンスに含まれていました。
難読化を解除すると、約6万9,470文字のモジュールは、ハードコードされたシグナル用ウォレット0x33ff3edaf55a8e03dcbc7cb40d498a49cd499891から送信されたトランザクションを探して、イーサリアムメインネットのブロックをスキャンするコードに集約されました。
HashHidingは、悪意あるコードをトランザクションのinputフィールドに入れません。代わりに、IPv4アドレスとポート番号のわずか6バイトを、イーサリアムのtoアドレスの先頭部分にエンコードします。
たとえば、受信アドレス0xB5D6959401bbb5D69594005000ff8C84e0b715b1は181[.]214[.]149[.]148:443にデコードされます。残りのバイトには、予備のエンドポイントとパディングが格納されています。
この構造は、2026年8月に公開された「NullReceiver」の受信アドレス手法とよく似ています。
この研究では、北朝鮮関連のnpmマルウェアが、スマートコントラクトのストレージやcalldataではなく、送金額ゼロのイーサリアム送金の受信アドレスからC2の場所を抽出していたことが示されました。
ただしRansom-ISACの追跡では、この広範なXCTDHキャンペーンに関連する最初のビーコンが確認されたのは2026年6月23日でした。NullReceiverの公開より数週間前にあたります。
HashHidingはCross-Chain TxDataHidingに取って代わるものではなく、2つの手法は役割が異なります。
XCTDHは、大きな暗号化ペイロードをBSCトランザクションのcalldataに隠します。TRONとAptosは、BSCのトランザクションハッシュを伝える間接参照の役割を担います。
これに対してHashHidingが運ぶのは、稼働中のC2エンドポイントだけです。マルウェアは、これを使って通信チャネルを立ち上げたり、再確立したりできます。
9月のサンプルでは、3つのC2解決経路が並行して動作していました。ハードコードされたエンドポイント、TRON/AptosからBSCへのペイロードチェーン、そしてイーサリアムを使ったHashHidingです。

Ransom-ISACがこの広範なキャンペーンを初めて報告したのは2025年10月のことです。当時は、マルウェアがTRONとAptosをポインタ層として使い、BSCトランザクションのcalldataに埋め込まれた暗号化ペイロードのトランザクションハッシュを取得する仕組みを説明していました。
イーサリアム用スキャナーは、まず公開RPCサービスを選択し、直近のブロック番号を取得します。次に指数的なオフセットで過去に遡って検索し、シグナル用ウォレットからの送金を特定します。そして宛先アドレスをデコードし、復元したサーバーから/bootを取得します。
ブロックチェーンC2へのHashHiding
この手法により、アドレスのローテーションは安価になります。攻撃者は、更新版マルウェアの配布やドメインの変更をしなくても済みます。新しいIPとポートをエンコードした偽の受信アドレスに向けて、少額のイーサリアムトランザクションをもう1件送るだけです。

キャンペーンは、開発者を狙ったソーシャルエンジニアリングを続けています。手口には、Telegramを使った偽の求人オファー、武器化されたGitHubリポジトリ、トロイの木馬化されたnpmパッケージ、そして追加したJavaScriptを隠すために空白で水増しした悪意ある設定ファイルなどがあります。
以前の分析では、この攻撃はDEV#POPPER.jsというNode.js製のRATと、PythonベースのOmniStealer認証情報窃取ツールに関連づけられていました。
更新された/initエンドポイントは、4つのコンポーネントを返します。C2のベースURLである_U、ブートストラップコードの_H、DEV#POPPER RATの_B、そしてHashHidingスキャナーの_Zです。
_Bは_Zを、フェイルオーバー用に温存せず、切り離したバックグラウンドプロセスとして起動します。つまり、イーサリアムのチャネルは、侵害された各ホストで即座に、かつ独立して動き始めます。
DEV#POPPERは現在、WebSocketによるC2通信、コマンド実行、シェルの生成、クリップボード監視、キーロギング、IDEを狙った永続化の機能を備えています。
これとは別に、キャンペーンのドロッパーチェーンはPythonをインストールしてOmniStealerを取得します。OmniStealerは、ブラウザーのデータ、パスワードマネージャー、クラウドストレージの認証情報のほか、153種類の暗号資産ウォレットを標的にします。
Datagovernance consulting

オンチェーンの活動を見ると、2026年6月23日から9月21日までの間に、イーサリアムのシグナル用ウォレットから2,655件のビーコントランザクションが送信されていました。
観測されたC2エンドポイントには、80番と443番ポートの23[.]27[.]20[.]187、181[.]214[.]149[.]147:443、181[.]214[.]149[.]148:443があります。
防御側は、次のような対策でハンティングを進める必要があります。イーサリアム、TRON、Aptos、BSCの各プロバイダーに対して、不審なJSON-RPCリクエストを送るNode.jsプロセスを探します。eth_getTransactionByHashを呼び出すJavaScriptを調査します。開発環境から上記のIPへのアウトバウンド通信を監視します。
恒常的に使われているBSCのインフラアドレス0x9bc1355344b54dedf3e44296916ed15653844509とイーサリアムのシグナル用ウォレットも、確度の高い侵害指標(IOC)として追跡すべきです。
IOC
| エンドポイント | ポート | 返却内容 |
|---|---|---|
/init |
443 | _B(RAT)と_Z(HashHidingスキャナー)を含む303KBのJSON |
/$/boot |
80 | XOR暗号化されたドロッパー(Python 3.13と7-Zipをインストールし、OmniStealerを取得) |
/$/1 |
80 | XOR暗号化されたOmniStealer |
注: IPアドレスとドメインは、誤って名前解決されたりハイパーリンク化されたりしないよう、意図的に無害化([.]など)しています。無害化の解除は、MISP、VirusTotal、SIEMなど、管理されたスレットインテリジェンス基盤の中だけで行ってください。
SOCのアラート調査を1件あたり21分短縮。即座に対応できるIOCコンテキストで、SOCを強化します。 SOCにTI Lookupを導入する
翻訳元: https://gbhackers.com/hashhiding-to-blockchain-c2/