Cisco Japan Blog

Emmenhtal と Amadey を使用した MaaS 攻撃、ウクライナの組織を標的とした脅威と関連

2 min read



  • 2025 年 4 月、Cisco Talos は Amadey を使用してペイロードを送り込む Malware-as-a-Service(MaaS)攻撃を特定しました。
  • MaaS 攻撃者は偽の GitHub アカウントを使用してペイロード、ツール、Amadey プラグインをホストしていました。これは、Web フィルタリングを回避し、利便性を高めることを目的としていたと考えられます。
  • 攻撃者の戦術、手法、手順(TTP)の一部は、2025 年初頭にウクライナの組織を標的として実行された SmokeLoader フィッシング攻撃で使用されたものと共通しています。
  • SmokeLoader 攻撃で確認されたものと同じ Emmenhtal 亜種が、この MaaS 攻撃において Amadey ペイロードおよびその他のツールのダウンロードに使用されていました。

2025 年 2 月初旬、Talos はウクライナの組織を標的としたとみられる、請求書の支払いや請求に関する内容のフィッシングメールのクラスターを確認しました。これらのメールには圧縮されたアーカイブファイル(ZIP、7Zip、RAR など)が添付されており、少なくとも 1 つの JavaScript ファイルが含まれていました。この JavaScript ファイルは、複数の難読化レイヤを用いて PowerShell ダウンローダーを偽装していました。JavaScript と PowerShell スクリプトを実行すると、被害者のシステムに SmokeLoader がダウンロードされ、実行されるという仕組みでした。収集したサンプルで確認された難読化手法と Orange Cyberdefensepopup_icon 社が説明している手法に注目すべき類似点があることから、Talos はこれらの JavaScript ダウンローダーが Emmenthal ローダーであると判断しました。

Talos は、このフィッシング攻撃で収集された Emmenhtal ローダーの分析中に、構造が非常に似ているものの、元のアクティビティクラスターのものではないと思われる別のサンプルを VirusTotal 上で特定しました。特に注目すべき点は、これらのサンプルがメールで送られたわけではなく、GitHub 上の複数の公開リポジトリで発見されたことです。また、次の段階のペイロードとして SmokeLoader が送り込まれることもありませんでした。代わりに、Emmenhtal を使用して Amadey を送り込み、この Amadey が GitHub 上の特定の公開リポジトリからさまざまなカスタムペイロードをダウンロードしていました。

マルウェアに関連する GitHub アカウントと、このアカウントに関連するリポジトリ内でホストされているファイルをさらに調査した結果、これらは、GitHub の公開リポジトリをオープンディレクトリとして使用してカスタムペイロードを段階的に送り込む、大規模な MaaS 攻撃の一部である可能性が高いことが判明しました。

MaaS 攻撃で GitHub の公開リポジトリを利用

MaaS とは、サービスを運営する攻撃者がマルウェアや既存のインフラへのアクセスを販売するビジネスモデルです。Talos が特定した攻撃では、Amadey を利用して、偽の GitHub リポジトリからさまざまなマルウェアファミリを感染ホストにダウンロードしていました。最初に活動が行われたのは 2025 年 2 月で、これは SmokeLoader 攻撃とほぼ同時期です。

単一のインフラから複数の異なるマルウェアファミリが配布されているという事実は、Amadey に関与している攻撃者が、他の攻撃者や攻撃グループにペイロードを提供していることを示唆しています。さらに、セカンダリペイロードのコマンドアンドコントロール(C2)インフラは、Amadey の C2 とは別のものです。

Emmenhtal と Amadey

Emmenhtal ローダーは、Krollpopup_icon 社と Orange Cyberdefensepopup_icon 社によって報告されていたマルチステージ ダウンローダーです。2024 年 8 月に Orange Cyberdefense 社が「Emmenhtal」と命名しましたが、「PEAKLIGHT」と呼ばれることもあります。後者は Mandiantpopup_icon 社による名称で、最終段階の PowerShell ダウンローダーを指しています。Orange Cyberdefense 社と Talos は 2024 年 4 月まで遡って、Emmenhtal ローダーに関連していると思われるアクティビティを確認しています。

Emmenhtal 亜種は、他のファイルに埋め込まれていることもあれば、それ単体で展開されることもあります。通常、各ローダーは 4 つのレイヤで構成されており、3 つは難読化として機能し、残りの 1 つが最終的な PowerShell ダウンローダースクリプトです。これらのレイヤについては後半の「アクティビティクラスター間に見られる Emmenhtal の類似点」セクションで説明します。

Amadey(または Amadey ボット)は、2018 年後半にロシア語圏のハッキングフォーラムに登場し、500 ドルで販売されていました。当初はさまざまな攻撃者がボットネットを構築するためにこのマルウェアを使用していました。Amadey は Redline、Lumma、StealC、SmokeLoader といった他のマルウェアをドロップすることも確認されています。

Amadey の主な機能は、システム情報を収集し、感染ホストにセカンダリペイロードをダウンロードすることです。しかし、Amadey はモジュール型であり、さまざまなプラグインによって機能を拡張できます。これらのプラグインはダイナミック リンク ライブラリ(DLL)の形式で提供され、スクリーンショット機能やログイン情報の収集など、必要とする機能に応じて選択できます。一般的にはダウンローダーとして使用されていますが、Amadey は深刻な脅威をもたらす可能性があります。

オープンディレクトリとして GitHub を利用

Talos は MaaS 攻撃の調査中に、次の 3 つの GitHub アカウントが、ツール、セカンダリペイロード、Amadey プラグインをホストするためのオープンディレクトリとして使用されていることを発見しました。

  • Legendary99999
  • DFfe9ewf
  • Milidmdds

GitHub リポジトリからのファイルのダウンロードは、ファイルホスティングを簡単に行う手段であるだけでなく、GitHub ドメインをブロックするように設定されていない Web フィルタリングを回避する手段にもなり得ます。オープンソースの攻撃ツールやその他のマルウェアの使用を抑制するために、社内環境で GitHub をブロックしている組織もありますが、ソフトウェア開発チームを抱える多くの組織では、何らかの形で GitHub へのアクセスが必要になります。このような環境では、悪意のある GitHub からのダウンロードを通常の Web トラフィックと区別することが難しい場合があります。

Talos は上記のアカウントを GitHub に報告し、GitHub はすぐに当該アカウントを削除しました。GitHub チームの協力と迅速な対応に感謝の意を表したいと思います。

Legendary99999

「Legendary99999」は最も頻繁に利用されたアカウントのようであり、ランダムに命名されたリポジトリが 160 個以上存在し、各リポジトリの「Releases」セクションにはファイルが 1 つ含まれていました。

図 1. Legendary99999 の GitHub アカウントの概観

「Legendary99999」でホストされていたファイルは、さまざまなマルウェアファミリのペイロードのコレクションです。これらのファイルを GitHub リポジトリでホストすることにより、リポジトリの「Releases」セクションの URL から簡単にダウンロードできるようになります。

https://github.com/[account_name]/[repository_name]/releases/download/[release_name]/[file_name]

ホストが Amadey に感染すると、このサービスを利用する攻撃者は、送り込むペイロードを選び、上述の URL からファイルをダウンロードするだけで攻撃を実行できました。

Talos は、アカウント名、ファイル名、リポジトリ構造、およびホストされているマルウェアの種類(Amadey を使用して送り込まれる情報窃取マルウェア)の共通点から、この攻撃者と関連している可能性のある他の GitHub アカウントも発見しました。これらのリポジトリに関連するファイルが VirusTotal で「初めて確認された」のは 2025 年 1 月 3 日でした。Talos が確認した時点では、これらのアカウントはいずれもアクティブではありませんでした。

アカウント リポジトリでホストされているマルウェアの種類
legend1234561111 Rhadamanthys、Lumma
legendary69696911 Lumma
legendary6911331 Redline、Lumma
legendarik1111 不明

DFFE9EWF

「DFfe9ewf」はテスト用のアカウントだったと考えられます。リポジトリ名にはすべて「test」が含まれており、2025 年 2 月以降、新たなコミットは一度も行われていません。なお、「Legendary99999」への最初のコミットが行われたのも 2 月でした。

図 2. DFfe9ewf の GitHub アカウントの概観

この GitHub アカウントは、このセクションで取り上げる他の 2 つのアカウントと共通点はありませんが、MaaS 攻撃に関連付けられたファイルが、このアカウントに関連付けられた少なくとも 1 つのリポジトリとやり取りしていました。

「DFfe9ewf」にはリポジトリが 6 個しかなく、そのうちの 1 つは DInvoke のフォークでした。DInvoke は、マネージドコードから任意のアンマネージドコードを呼び出すためのツールです。攻撃者は、DInvoke を使用してプロセスインジェクションを実行し、Windows API のフックを回避することで検出を逃れることがよくあります。

リポジトリ「test3」には、正規の Selenium WebDriver ファイルのほか、Microsoft Edge 用のバージョンと Google Chrome 用のバージョン(ChromeDriver)が含まれています。WebDriver は、対象のブラウザをリモートからプログラムで制御し、Web ベースのアプリケーションのテストを自動化するための強力な開発ツールです。しかし、被害者のマシン上で WebDriver が悪用されると、悪意のある URL からのペイロードの取得やローカルのブラウザデータへのアクセスなど、さまざまなタスクがリモートで実行される可能性があります。

WebDriver は多くの開発者にとって便利なツールですが、悪用されると深刻なセキュリティリスクとなり得ます。WebDriver を使用する際のセキュリティ上の考慮事項については、こちらpopup_iconの ChromeDriver のドキュメントをご覧ください。

MILIDMDDS

3 つ目のアカウント「Milidmdds」には、「Legendary99999」と類似したランダムな名前のリポジトリが 10 個含まれていました。このアカウントには、感染したホストに最終的にペイロードをダウンロードする悪意のあるスクリプトが複数含まれていました。

図 3. Milidmdds の GitHub アカウントの概観

アクティビティクラスター間に見られる Emmenhtal の類似点

Talos による調査の結果、SmokeLoader 攻撃と Amadey MaaS アクティビティでは、TTP と侵害の指標が類似していることが明らかになりました。「Milidmdds」GitHub アカウントでホストされている JavaScript ファイルのうち 3 つは、SmokeLoader 攻撃で使用された Emmenthal スクリプトとほぼ同じものです。ランダム化された変数名と関数名、および最終的な PowerShell スクリプトのダウンロード先が異なる点を除けば、コードの大部分はすべてのサンプルで共通しています。「Milidmdds」のさまざまなリポジトリで見つかったローダーファイルの名前は、以下のとおりです。

  • Work.js
  • Workhmv.js
  • Putikatest.js

これらのスクリプトが実際に使用された事例は確認していませんが、SmokeLoader の場合と同様に、フィッシングメールで送り込んだり、悪意のあるファイルに埋め込んだりすることを意図していたと考えられます。

ここからは、ウクライナの組織を標的としたフィッシング攻撃で使用された Emmenhtal ローダー(サンプル 1)と「Milidmdds」リポジトリ内のローダー(サンプル 2、サンプル 3、サンプル 4)との類似点を説明します。

Emmenhtal サンプルで使用されている最初の難読化レイヤでは、一連の 2 文字の変数が定義されており、それぞれに 2 桁または 3 桁の数値が割り当てられています。これらの変数は、「qiXSF」などのランダムな名前の変数に定義されている、コンマ区切りの長い文字列に適用されます。

図 4. 難読化の最初のレイヤ、サンプル 1(左)とサンプル 2(右)

この最初のスクリプトが実行されると 2 番目のスクリプトが現れます。2 番目のスクリプトは、ActiveXObject 関数を使用して、WScript.Shell によってエンコードされた PowerShell コマンドを実行します。

図 5. 難読化の 2 番目のレイヤ、サンプル 1(左)とサンプル 2(右)

3 番目のレイヤは、AES で暗号化された BLOB(Binary Large Object)を含む PowerShell コマンドです。

図 6. 最初の PowerShell コマンド、サンプル 1(左)とサンプル 2(右)

BLOB には、AES で暗号化された別の PowerShell スクリプトが含まれています。これは最初のスクリプトによって復号され実行されます。この最終スクリプトが、ハードコードされた IP アドレスから次の段階のペイロードのダウンロードを開始します。ウクライナの組織を標的としたフィッシング攻撃では、この最終ペイロードは SmokeLoader と、おとりの PDF でした。前述の GitHub の公開リポジトリで見つかった Emmenhtal ローダーファイルは、以下を含むさまざまなファイルをダウンロードすることが確認されました。

  • Amadey
  • PuTTY.exe の正規コピー
  • AsyncRAT

GitHub の公開リポジトリで見つかった Emmenhtal ローダーが送り込んだファイルの一覧に PuTTY の正規コピーが含まれていたことは、この MaaS 攻撃の柔軟性を示しており、顧客の要求に応じて必要なツールを配布できることを物語っています。

最終的に復号された PowerShell ダウンローダーの例を以下に示します。

図 7. 最終的な PowerShell スクリプト、サンプル 1(左、SmokeLoader のダウンロード)とサンプル 2(右、Amadey のダウンロード)

図 8. 最終的な PowerShell スクリプト、PuTTY のダウンロード(左)と AsyncRAT のダウンロード(右)

関連する Emmenhtal の亜種

MP4 ファイルの亜種

この記事で取り上げている両方のアクティビティクラスターの調査中に、Talos は MP4 ファイルを装った Emmenhtal のサンプルを確認しました。次の 2 つの URL が pivqmane[.]com でホストされている .mp4 ファイルにリンクしています。

  • pivqmane[.]com/testonload[.]mp4/
  • pivqmane[.]com/doc/fb[.]mp4

ここでホストされていた 2 つの .mp4 ファイルはすでに削除されていますが、このファイル形式の悪用は、MaaS 攻撃と SmokeLoader 攻撃のもう 1 つの類似点として注目されます。また、Emmenhtal 亜種の一部が MP3 や MP4 ファイルを装っているpopup_iconという Orange Cyberdefense 社の報告内容とも一致しています。

特化型の亜種「Checkbalance.py」

Talos は今回の調査中に、「Milidmdds」GitHub アカウント上で、別の特異なファイルを発見しました。「checkbalance.py」という名前の悪意のある Python スクリプトです。これまでに説明したサンプルとは異なり、このサンプルは最初の難読化レイヤは使用していませんでしたが、後続段階の PowerShell は前述のものとほぼ同一でした。この亜種は Emmenhtal ローダーの進化形とも考えられますが、より可能性が高いのは、特定の攻撃向けに開発された特化型の亜種であるということです。

初期状態では、このスクリプトは Zerion 仮想通貨アカウントの内容を列挙するシンプルなツールを装っています。しかし、スクリプトには Base64 でエンコードされ圧縮された BLOB を含む大規模なラムダ関数も含まれており、この BLOB がラインタイムに実行されます。その後、ユーザーには「Аккаунт кончились」というキリル文字のエラーメッセージが表示されます。興味深いことに、このメッセージは文法的に正しくありません。「Аккаунт」は単数形であるのに対し、「кончились」は複数形だからです。しかし、メッセージの文脈から判断すると、「アカウントはもう存在しません」あるいは「アカウントは終了しました」といった意味だと考えられます。

図 9. Checkbalance.py

次に、ラムダ関数は 2 つ目の Python スクリプトを実行します。このスクリプトは、subprocess.run メソッドを使用してエンコードされた PowerShell コマンドを実行します。生成される PowerShell は、前述の JavaScript 亜種とほぼ同一です。

図 10. 最初の PowerShell コマンド、Checkbalance.py

最終的な PowerShell コマンドは、IP アドレス「185[.]215[.]113[.]16」から Amadey のペイロードを「amnew.exe」という名前のファイルとしてダウンロードします。「checkbalance.py」に含まれていた最終的な PowerShell スクリプトは、「Milidmdds」リポジトリで見つかったサンプル 2(「work.js」)から生成されたものと同一です。

実行後、このペイロードは Amadey の既知の C2 アドレスである「hxxp://185[.]215[.]113[.]43/Zu7JuNko/index.php」に接続します。

図 11. 最終的な PowerShell スクリプト、Checkbalance.py

カバレッジ

今回の脅威は、以下の製品で検出してブロックすることが可能です。

侵害の指標(IOC)

この脅威の IOC は、こちらpopup_iconの GitHub リポジトリで提供しています。

Cisco Secure Endpoint(旧 AMP for Endpoints)は、この記事で説明したマルウェアの実行を阻止するのに最適です。Cisco Secure Endpoint の無料トライアルはこちらからお申し込みください。

Cisco Secure Email(旧 E メールセキュリティ)は、攻撃の一環として攻撃者が送りつける不正な電子メールをブロックします。Cisco Secure Email の無料トライアルはこちらからお申し込みください。

Threat Defense Virtual適応型セキュリティアプライアンスMeraki MX など、Cisco Secure Firewall(旧次世代ファイアウォールおよび Firepower NGFW)アプライアンスは、この脅威に関連する悪意のあるアクティビティを検出できます。

Cisco Secure Network/Cloud Analytics(Stealthwatch/Stealthwatch Cloud)は、ネットワークトラフィックを自動的に分析し、接続されているすべてのデバイスで、望ましくない可能性があるアクティビティをユーザーに警告します。

Cisco Secure Malware Analytics(Threat Grid)は、悪意のあるバイナリを特定し、シスコのすべてのセキュリティ製品に保護機能を組み込みます。

Cisco Secure Access は、ゼロトラストの原則に基づいて構築された、最新のクラウド提供型セキュリティサービスエッジ(SSE)です。Cisco Secure Access はユーザーがどこで作業していても、インターネット、クラウドサービス、プライベート アプリケーションへのシームレスかつ透過的でセキュアなアクセスを提供します。Cisco Secure Access の無料トライアルにご興味をお持ちの場合は、シスコのアカウント担当者または認定パートナーまでお問い合わせください。

Umbrella(シスコのセキュア インターネット ゲートウェイ(SIG))は、社内ネットワークの内外で悪意のあるドメイン、IP、URL への接続をブロックします。

Cisco Secure Web Appliance(旧 Web セキュリティアプライアンス)は、危険性のあるサイトを自動的にブロックし、ユーザーがアクセスする前に疑わしいサイトを検査します。

特定の環境および脅威データに対する追加の保護対策は、Firewall Management Center から入手できます。

Cisco Duopopup_icon は、ユーザーに多要素認証を提供し、承認されたユーザーのみがネットワークにアクセスできるようにします。

オープンソースの Snort サブスクライバルールセットをお使いであれば、Snort.org で購入可能な最新のルールパックをダウンロードすることで、最新状態を維持できます。

 

本稿は 2025 年 7 月 17 日にTalos Grouppopup_icon のブログに投稿された「MaaS operation using Emmenhtal and Amadey linked to threats against Ukrainian entitiespopup_icon」の抄訳です。

 

コメントを書く