韓国をターゲットに拡がるトロイの木馬「UBoatRAT」

By

Category: Unit 42

Tags: , , ,

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

概要

米Palo Alto Networksの脅威インテリジェンスチームUnit 42 は、「UBoatRAT」と呼ばれる新しい種類のリモートアクセス型のトロイの木馬 (RAT: Remote Access Trojan) による攻撃を特定しました。2017年5月に発見されたこのRATの最初のバージョンは、香港のブログサービスと不正侵入された日本のWebサーバーを使用してコマンドアンドコントロールが行われる、単純なHTTPバックドアでした。その後、RATの開発者はコードにさまざまな新機能を追加し、6月に更新版をリリースしました。9月に発見された最新の亜種による攻撃には、次のような特徴がありました。

  • 韓国またはゲーム業界に関連する人や組織を対象とする
  • Googleドライブによりマルウェアを配布する
  • GitHubからC2 (コマンドアンドコントロールサーバー) のIPアドレスを取得する
  • Microsoft Windowsのバックグラウンド インテリジェント転送サービス (BITS; Background Intelligent Transfer Service) を使用してセッションを永続的に維持

ターゲット

本投稿の執筆時点において、正確な標的は分かっていませんが、Unit 42は韓国やゲーム業界に関連する人や組織を標的にしていると推測しています。この仮説の理由として、マルウェアを配布する際に攻撃者が使用するファイル名には、韓国語のゲームタイトル、韓国のゲーム会社名やゲーム業界で使用される単語が見られることが挙げられます。もう一つの理由としては、UBoatRATはActive Directoryドメインに参加する場合のみ、感染したコンピューター上で悪意ある操作を行うことが挙げられます。自宅でパソコンを使うほとんどのユーザーはドメインに参加しないため、同じように影響を受けることはないと考えられます。下記にてUBoatRATの配信に関連するファイル名をいくつか挙げます。最初の3つのファイル名は韓国語表記で、一般的なビジネスの話題が含まれています。最後のものは、未発表のゲームタイトル「プロジェクトW」と韓国のゲーム会社名が含まれています。

  • 2017년 연봉인상 문의 사항관련 피드백 조사.exe (2017年度昇給調査に関するフィードバック調査)
  • 2017년 연봉인상 문의 사항관련 피드백 전달.exe (2017年度昇給フィードバック)
  • [사업]roykim’s_resume.exe ([Business]RyoKim’s__resume__20170629.exe) ([業務] リョー・キム履歴書 20170629)
  • [Project W]Gravity business cooperation.exe ([プロジェクトW] グラヴィティ・ビジネス・コーポレーション)

配信とインストール

私たちはGoogleドライブから配信された複数のUBoatRATの亜種を確認しました。分析時には以下画像のリンクを含む、一部のリンクのみ有効でした。

図1: Googleドライブからのダウンロード
図1: Googleドライブからのダウンロード

Googleドライブに置かれたzipアーカイブには、フォルダやMicrosoft Excelスプレッドシートに偽装した、悪意ある実行ファイルが含まれています。7月下旬以降にリリースされたUBoatRATの最新亜種では、Microsoft Wordファイルとしても偽装されています。

図2: UBoatRAT偽装の例
図2: UBoatRAT偽装の例

UBoatRATが実行されると、不正侵入された端末上で以下の2点を照合します。

  • Mware, VirtualBox, QEmuなど仮想化ソフトウェアの検出
  • ネットワークパラメータからドメイン名を取得

RATが仮想環境を検出した場合、またはドメイン名を取得できなかった場合、次の偽エラーメッセージが表示され、強制終了します。

図3: 偽エラーメッセージ
図3: 偽エラーメッセージ

上記以外は、C:\programdata\svchost.exe として自身をコピーし、 C:\programdata\init.bat を作成し、このバッチファイルを実行します。その後以下のメッセージを表示して終了します。

図4: インストール後の偽エラーメッセージ
図4: インストール後の偽エラーメッセージ

BITSを利用した永続的なセッション

UBoatRATはMicrosoft Windowsバックグラウンド インテリジェント転送サービス (BITS) を利用してセッションを永続的に維持します。BITSはマシン間でファイルを転送するサービスです。このサービスを使用する最も有名なアプリケーションはWindows Updateですが、他のアプリケーションやユーザーもこのコンポーネントを利用できます。ユーザーがBITSジョブを作成および監視できるコマンドラインツールとしてBitsadmin.exeがあります。このツールには、ジョブがデータの転送を終了したときや、エラーが発生したときにプログラムを実行する /SetNotifyCmdLine オプションがあります。UBoatRATは再起動後でもシステム上で稼働し続けるオプションを利用します。

下記にてinit.batの内容について解説します。2行目でローカルファイル net.exe が %temp%.log に転送されるよう指定されており、ローカルファイルのコピーが完了すると、BITSは3行目に /SetNotifyCmdLine で設定されたUBoatRATファイルを実行します。

bitsadmin /create d1f2g34
bitsadmin /addfile d1f2g34 c:\windows\system32\net.exe  %temp%\sys.log
bitsadmin /SetNotifyCmdLine d1f2g34 “c:\programdata\svchost.exe” “”
bitsadmin /Resume d1f2g34
Del %0

BITSによるジョブは、コンピューターが再起動をしても定期的にマルウェアを実行し続けます。キューからジョブを削除するには、BITSがComplete (完了) または Cancel (キャンセル) の指示を出す必要があります。Microsoftの記事によると、CompleteまたはCancelをコールしない場合、ジョブはデフォルトで90日間残ります。

C2コミュニケーションとバックドアコマンド

UBoatRATを操る攻撃者は、以下のようなURLを使用してC2アドレスと宛先ポート番号を隠したファイルをGitHubに置きます。

https://raw.githubusercontent[.]com/r1ng/news/master/README.md

マルウェアはこのURLにアクセスし、BASE64を使用して文字列 “[Rudeltaktik]” と文字 “!” 間の文字をデコードします。「Rudeltaktik」は、第二次世界大戦中の水中戦の戦略を指すドイツの軍事用語です。

以下の場合、文字列 115.68.49[.]179:80 にデコードされます。
[Rudeltaktik]MTE1LjY4LjQ5LjE3OTo4MA==!

UBoatRATは、カスタムのC2プロトコルを使用して攻撃者のサーバーと通信します。マルウェアはペイロードまたは命令の先頭文字列を “488” (16進数で0x34, 0x38, 0x38) とし、固定鍵 “0x88” による単純なXOR演算でバッファ全体を暗号化します。ネットワークペイロードは常に0xBC, 0xB0, 0xB0で始まります。

図5: “488” マーカー
図5: “488” マーカー
図6: 固定鍵により暗号化された “488” マーカー
図6: 固定鍵により暗号化された “488” マーカー

作成者がRAT UBoat_Server (U-boatはドイツの潜水艦) を呼び出すため、この攻撃者は “488” という数字をドイツ軍の潜水艦の一つから選んだと推測します。

図7: マルウェア内のUBoat_Server
図7: マルウェア内のUBoat_Server

C2サーバーとの隠しチャネルを確立した後、この脅威は下記の攻撃者からのバックドアコマンドを待ちます。

コマンド 説明
alive RATが動作しているかチェックします。
online パケットを定期的にC2サーバーに送信することでRATをオンライン状態に保ちます。
upfile 感染した端末にファイルをアップロードします。
downfile 感染した端末からファイルをダウンロードします。
exec Eventvwr.exeとレジストリハイジャックを用いたUAC (ユーザーアカウント制御) バイパスによりプロセスを実行します。
start CMD シェルを開始します。
curl 指定されたURLからファイルをダウンロードします。
pslist 実行中プロセスを一覧表示します。
pskill 指定したプロセスを終了します。

 UBoatRATの開発

執筆時点では、UBoatRATのサンプルを14個と、攻撃に関連するダウンローダーが一つ識別されました。ほとんどのUBoatRATサンプルは、前述のようにGitHubからC2アドレス (コマンドアンドコントロールサーバーのIPアドレス) を取得していることが発覚しました。5月に公開されたサンプルは、香港のブログサービスと、C2で不正アクセスされた日本の正規Webサーバーに接続しています。このサンプルでは、通信用に通常のHTTPプロトコルを使用しています。サンプルのひとつである香港のブログアカウント、「elsa_kr」は2016年4月から存在していますが、現時点で意味のあるコンテンツはありませんでした。

図8: コマンドアンドコントロールとして使用された公開ブログ
図8: コマンドアンドコントロールとして使用された公開ブログ

マルウェア作成者はさまざまな新機能を搭載した新しいバージョンを6月にリリースしました。このマルウェアの初期版では、GitHubアカウント「elsa999」が所持するリポジトリ「uuu」からC2アドレスを取得します。執筆時点では「uuu」リポジトリは削除されていましたが、削除後は3つのリポジトリ (「uj」、「hhh」、「enm」) に置き換えられており、これらすべてに当該GitHubアカウントのエンコードされたIPアドレスとポート番号が保持されています。ファイル履歴によると、マルウェア作成者は7月以降頻繁にこちらのファイルを更新しています。簡単な分析を行った結果、以下の理由によりこれら3つのリポジトリは開発およびテスト用であると結論付けました。

  • ‘[Rudeltaktik]’の代わりに‘###NEWS###’という別のマーカーを使用
  • エンコードされたグローバルIPアドレスが既知のUBoatRATサンプルと異なる
  • マルウェア作成者はエンコードされたIPアドレスを毎回短期間でlocalhost (127.0.0.1) に戻す
図9: テスト用のGitHubアカウント
図9: テスト用のGitHubアカウント

ユーザー「elsa999」は、リポジトリに以下の3つのPowerShellスクリプトが保管されていました。これらスクリプトは、侵入テスト用に他の作成者によって記述されています。

  • gpp_autologon.ps1
  • gpp_pwd.ps1
  • wmi_scan.ps1

結論

9月にUBoatRATの最新バージョンがリリースされましたが、10月にGitHubの「elsa999」アカウントで複数のアップデートを確認しました。マルウェア作成者はこの攻撃について精力的な開発やテストを行っているようです。私たちはこの活動にアップデートがないか、継続的に監視していきます。

Palo Alto Networksのお客様は、以下の方法よりこの脅威を防ぐことができます。

  • 本投稿で記載したすべてのサンプルはWildFireおよび脅威防御機能(TP)で識別されています
  • Trapsは、本投稿に記載されたマルウェアの実行を防御します
  • AutoFocusのユーザーは、UBoatRATタグを使用することで、本レポートに記述したマルウェアの追跡が可能です

痕跡情報(IoC)

UBoatRATのSHA256値

bf7c6e911f14a1f8679c9b0c2b183d74d5accd559e17297adcd173d76755e271 6bea49e4260f083ed6b73e100550ecd22300806071f4a6326e0544272a84526c cf832f32b8d27cf9911031910621c21bd3c20e71cc062716923304dacf4dadb7 7b32f401e2ad577e8398b2975ecb5c5ce68c5b07717b1e0d762f90a6fbd8add1 04873dbd63279228a0a4bb1184933b64adb880e874bd3d14078161d06e232c9b 42d8a84cd49ff3afacf3d549fbab1fa80d5eda0c8625938b6d32e18004b0edac 7be6eaa3f9eb288de5606d02bc79e6c8e7fc63935894cd793bc1fab08c7f86c7 460328fe57110fc01837d80c0519fb99ea4a35ea5b890785d1e88c91bea9ade5 55dd22448e9340d13b439272a177565ace9f5cf69586f8be0443b6f9c81aa6e7 9db387138a1fdfa04127a4841cf024192e41e47491388e133c00325122b3ea82 e52d866e5b77e885e36398249f242f8ff1a224ecce065892dc200c57595bb494 eb92456bf3ab86bd71d74942bb955062550fa10248d67faeeeedd9ff4785f41e 452b1675437ef943988c48932787e2e4decfe8e4c3bed728f490d55b3d496875 66c2baa370125448ddf3053d59085b3d6ab78659efee9f152b310e61d2e7edb5

ダウンローダーのSHA256値

f4c659238ffab95e87894d2c556f887774dce2431e8cb87f881df4e4d26253a3

Webアクセス

  • https://raw.githubusercontent[.]com/r1ng/news/master/README.md
  • https://raw.githubusercontent[.]com/elsa999/uuu/master/README.md
  • http://www.ak(masked)[.]jp/images/ http://elsakrblog.blogspot[.]hk/2017/03/test.html

C2サーバー

  • 115.68.49[.]179:80
  • 115.68.49[.]179:443
  • 60.248.190[.]36:443
  • 115.68.52[.]66:443
  • 115.68.49[.]180:443
  • 122.147.187[.]173:443
  • 124.150.140[.]131:443

ファイル

  • C:\programdata\init.bat
  • C:\programdata\svchost.exe