UboatRATが東アジア(韓国)をターゲットに拡散
(引用元: Palo Alto Networksの、セキュリティ研究チームUnit 42によるブログ記事。)
エグゼクティブ・サマリ
Palo Alto NetworksのUnit42は、新しく細工されたRAT(Remot Access Trojan)である、UBoatRATを確認した。
UBoatRATは、最初は2017年5月に確認されていたが、その時は単なるバックドアであった。
最初に確認された際は、香港のパブリック・ブログサービスと、日本にある、攻撃者によって侵入されたWebサーバーにバックドアとして寄生していたようだ。
その後、開発者はUBoatRATに機能を追加し6月に再び公開。
以降はUBoatRATの亜種による感染が確認されている。
Palo Alto Networksが、UBoatRATの感染を9月に確認した際には、以下のような特徴を発見した。
- 韓国に関係する企業・団体の人員、又はゲーム業界をターゲットにする
- Google Driveを通してマルウェアを拡散する
- C&SサーバーのアドレスをGitHubから取得する
- パーシステンスを維持する為に、Microsoft Windows Background Intelligent Transfer Service(BITS)を使用する。
ターゲット
現時点で正確なターゲットが分かっていない。
だが、Palo Alto Networksは、ターゲットについて「韓国に関係する企業・団体の人員、又はゲーム業界」と仮説を持っている。
その根拠は、UBoatRAT内で使用されているファイル名である事。
韓国語で書かれたゲームのタイトルや、ゲーム会社の名前、その他ゲームに関連する語句がマルウェア内で使用されている。
以下が、そのファイル名の例である。
- 2017년 연봉인상 문의 사항관련 피드백 조사.exe(2017年 年度別昇給に関わるアンケート)
- 2017년 연봉인상 문의 사항관련 피드백 전달.exe(2017年 年度別昇給に関するフィードバック)
- [사업]roykim’s_resumeexe
- [Project W]Gravity business cooperation.exe
マルウェアのデリバリーとインストール
UBoatRATには数種類存在しているが、Google Driveからダウンロードされる事を確認している。(中にはリンク切れになってしまっているものも存在する。)
(Google Driveからのダウンロードメッセージ。Palo Alto Networksより引用。)
Google Driveに保存された.zipファイルには、Microsoft Office Excelのスプレッドシートファイルを装った、.exeファイルが含まれている。
ちなみに7月以降に発見された最新のUBoatRATの亜種は、Microsoft Office Wordのワードファイルを装っているようだ。
(MSオフィスのファイルを装うUBoatRAT。Palo Alto Networksより引用。)
上記のファイルを実行すると、UBoatRATは感染端末上で2点チェックする
- VMWare、VirtualBox、QEmu等の仮想環境であるかどうか
- ネットワーク設定からDomain Nameを取得
この2点についてチェックした際の結果によって表示されるメッセージが変わる。
感染端末=仮想環境 OR Domain Name取得失敗のケース
もしUBoatRATが仮想環境を検知したり、ドメインネームの取得に失敗した場合、以下のエラーメッセージを表示する。
(エラーメッセージ。Palo Alto Networksより引用。)
感染端末≠仮想環境 AND Domain Name取得成功のケース
UBoatRATは、自身をC:\programdata\svchost.exeとしてコピーし、C:\programdata\init.batを作成し、実行する。そして以下のメッセージを表示する。
(インストール完了後に表示されるメッセージ。Palo Alto Networksより引用。)
BTISによるパーシステンス
UBoatRATは、Microsoft Windows Background Intelligent Transfer Service(BITS)を使って端末内に寄生する。
BITSとは、異なる端末間でファイル転送を可能にするサービスである。BITSを使用しているプログラムで一番有名なのはWindows Updateであろう。
BITSのジョブを作成したり、監視する為にはコマンドラインツールのBitsadmin.exeを使用する。
Bitsadmin.exeには”/SetNotifyCmdLine”というオプションがある。このオプションは、作成されたジョブがデータの転送を完了(又は、エラーを返)した場合に、プログラムを実行する。
UBoatRATは、”/SetNotifyCmdLine”を利用することで、感染端末の再起動後も端末内に寄生する事ができる。
以下はinit.batの内容である。
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
二行目で、ローカルの”net.exe”を%temp%.logにコピーするコードが入力される。コピーの完了後は3行目でBITSが/SetNotifyCmdLineUBoatRATを実行する。
BITSのジョブは、マルウェアを端末の再起動後にも関わらず定期的に実行し続ける。
ジョブをキューから取り除く為には、ジョブの”コンプリート”又は”キャンセル”を明示的に命令しなければならない。
Microsoftによれば、ジョブはデフォルトで90日間残るようだ。
C&Cサーバーとの通信とバックドアとしてのコマンド
UBoatRATを操る攻撃者は、C&Cサーバーのアドレスと宛先ポートを、GitHubにポストされたファイルに、以下のURLを使って隠している。
https://raw[.]githubusercontent[.]com/r1ng/news/master/README.md
マルウェアは、上記のURLにアクセスし、BASE64を使って変数“[Rudeltaktik]”と文字”!”をデコードする。
“Rudeltaktik”とは、第二次世界大戦中にドイツ軍が潜水艦を用いた軍略のコード名である。
例えば、以下の変数“Rudeltaktik”は、115.68.49[.]179:80にデコードされる。
[Rudeltaktik]MTE1LjY4LjQ5LjE3OTo4MA==!
UBoatRATは、攻撃者によってカスタマイズされたプロトコルを使ってC&Cサーバーと通信を行う。
マルウェアは、ペイロードの頭に”488”‘488’ (16進数で0x34, 0x38, 0x38)、又はバッファの全体を静的鍵0x88を使ってXORで暗号化する。
(488マーカー。Palo Alto Networksより引用。)
(暗号化された"488"マーカーPalo Alto Networksより引用。)
攻撃者は、488という名前もドイツの潜水艦からとっている可能性があると予測される。
(マルウェアの中に記述されたUBoat_Server。Palo Alto Networksより引用。)
C&Cサーバーとの通信経路を確立した後、マルウェアは攻撃者から以下の実行コードが入力されるのを待機する。
コマンド | 説明 |
alive | RATがaliveか確認する |
online | 定期的にC&Cサーバーにパケットを送信する事でRATをaliveに保つ |
upfile | 感染端末にファイルをアップロードする |
downfile | 感染端末からファイルをダウンロードする |
exec | プロセスをUAC Bypass using Eventvwr.exe and Registry Hijackingを使って実行する |
start | CMDをスタートする |
curl | 特定されたURLからファイルをダウンロードする |
pslist | 実行中のプロセスを一覧表示する |
pskill | 指定されたプロセスを終了する |
UBoatRATのディベロップメント
Palo Alto Networksによってこの記事が執筆された時点において、14個のUBoatRATのサンプルファイルと、1つのダウンローダーが確認されている。
殆どのUBoatRATは、S&SサーバーのアドレスをGitHub上のファイルから参照する。
ただ、5月に確認された1つサンプルは、香港のブログサービスと感染した日本のWebサーバーをC&Cサーバーとして接続していた。
そのサンプルは、C&Cサーバーとの通信には単純にHTTPプロトコルを使っている。
C&Cサーバーとして使用された香港のブログサービスには、‘elsa_kr’というアカウントが2016年4月から存在しているが、何かしらヒントになるようなコンテンツは存在していない。
(C&Cサーバーとして使用されたブログサービス。Palo Alto Networksより引用。)
UBoatRATの開発者は、2017年6月に新しいバージョンをリリース。
そのバージョンではC&Cサーバーのアドレスを、'elsa999'が所有する'uuu'というレポジトリから取得する。
Palo Alto Networksによってこの記事が執筆された時点において、'uuu'レポジトリは削除されている。
その後は、他のレポジトリ(‘uj’, ‘hhh’, ‘enm’)に変更されており、この3つ全てのレポジトリが、エンコードされたIPアドレスとポート番号のコンビネーションを所持している。
GitHubのファイルの更新履歴を見ると、UBoatRATの開発者は7月以降、頻繁にマルウェアを更新している事がわかる。
Palo Alto Networksの調査によれば、先述した3つのレポジトリはテスト用である事が推測されるようだ。
テスト用と推測した理由は以下の3つ。
- 3つのレポジトリは‘[Rudeltaktik]’ではなく、’###NEWS###’を使っている
- エンコードされたグローバルIPアドレスが、UBoatRATのサンプルと異なる
- UBoatRATの開発者はがエンコードしたアドレスをlocakhost(127.0.0.1)に短期的に変更する時がある
(GitHub上のアカウント。Palo Alto Networksより引用。)
'elsa999'を名乗るユーザーは、以下の3つのPowerShellスクリプトをレポジトリに保管している。
- gpp_autologon.ps1
- gpp_pwd.ps1
- wmi_scan.ps1
これらのスクリプトは、ペネトレーション・テスト目的で他の開発者によって書かれたものである。
結論
最新バージョンのUBoatRATは9月にリリースされたものの、GitHubアカウント”elsa999”では、10月に複数回更新された事が確認されている。
その事から、マルウェアの開発者は、UBoatRATの開発を継続しており、テストを行っている事が予想される。
IOC
UBoatRAT SHA256
bf7c6e911f14a1f8679c9b0c2b183d74d5accd559e17297adcd173d76755e271 6bea49e4260f083ed6b73e100550ecd22300806071f4a6326e0544272a84526c cf832f32b8d27cf9911031910621c21bd3c20e71cc062716923304dacf4dadb7 7b32f401e2ad577e8398b2975ecb5c5ce68c5b07717b1e0d762f90a6fbd8add1 04873dbd63279228a0a4bb1184933b64adb880e874bd3d14078161d06e232c9b 42d8a84cd49ff3afacf3d549fbab1fa80d5eda0c8625938b6d32e18004b0edac 7be6eaa3f9eb288de5606d02bc79e6c8e7fc63935894cd793bc1fab08c7f86c7 460328fe57110fc01837d80c0519fb99ea4a35ea5b890785d1e88c91bea9ade5 55dd22448e9340d13b439272a177565ace9f5cf69586f8be0443b6f9c81aa6e7 9db387138a1fdfa04127a4841cf024192e41e47491388e133c00325122b3ea82 e52d866e5b77e885e36398249f242f8ff1a224ecce065892dc200c57595bb494 eb92456bf3ab86bd71d74942bb955062550fa10248d67faeeeedd9ff4785f41e 452b1675437ef943988c48932787e2e4decfe8e4c3bed728f490d55b3d496875 66c2baa370125448ddf3053d59085b3d6ab78659efee9f152b310e61d2e7edb5
ダウンローダー SHA256
f4c659238ffab95e87894d2c556f887774dce2431e8cb87f881df4e4d26253a3
Web Access
- 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
C&C
- 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
File
- C:\programdata\init.bat
- C:\programdata\svchost.exe