JPCERT コーディネーションセンター

安全・安心なIT社会のための、国内・国際連携を支援する

お問い合わせ 採用情報 サイトマップ English

Home > ラーニング > ライブラリ > 分析センターだより > Dridexが用いる新たなUAC回避手法 (2015-02-09)

最終更新: 2015-05-12

Dridexが用いる新たなUAC回避手法 (2015-02-09)


Dridexが用いる新たなUAC回避手法

今回は、マルウエアDridexが2014年12月頃から用いるようになった、新しいUAC回避手法について紹介します。

Dridexは、インターネットバンキングの不正送金に関係するマルウエアの1種として知られている、C&CサーバとHTTPで通信するボットです。

JPCERT/CCで確認しているDridexの多くは、図 1のような過程をたどって、Word文書(マクロ付き)タイプのマルウエアによってダウンロード・実行されます。また、Dridexは2つのモジュールから構成され、最初のモジュールが本体モジュールをダウンロードする2段階の構成になっています。


acreport-uac-bypass_picture1.jpg

図 1: Dridexに感染する過程

従来のUAC回避手法

新しいUAC回避手法について述べる前に、まず従来の手法について解説します。UAC回避を行う代表的なマルウエアとして、前回の記事で紹介したPlugXがあります。PlugXが行う典型的なUAC回避手法は、図 2のとおりです。

acreport-uac-bypass_picture2.jpg
  1. PlugXがDLL(UAC.TMP)を作成する。
  2. PlugXが、起動しているexplorer.exeにコード注入を行うことによって、explorer.exeがUAC.TMPをC:\Windows\System32\sysprep\cryptbase.dllへと移動する。
  3. C:\Windows\System32\sysprep\sysprep.exeを実行し、sysprep.exeにC:\Windows\System32\sysprep\cryptbase.dllを管理者権限でロードさせる。
  4. C:\Windows\System32\sysprep\cryptbase.dllが、PlugXを管理者権限で実行する。

図 2: 従来のUAC回避手法


この手法では、次のようなWindows 7の挙動を悪用することで、UACの警告を表示させないまま管理者権限への昇格を実現しています。

  • explorer.exeのような、Windows Publisherによってデジタル署名されているプログラムで、かつセキュリティで保護されたフォルダに存在するプログラムは、管理者権限が必要となる一部の処理(ここではC:\Windows\System32\sysprep\へのDLLの移動)を、UACの警告表示無しで実行可能である。
  • sysprep.exeのような自動昇格プログラムと呼ばれるプログラムは、起動時にUACの警告表示無しで管理者権限に自動的に昇格する。
  • C:\Windows\System32\sysprep\sysprep.exeを実行し、sysprep.exeにC:\Windows\System32\sysprep\cryptbase.dllを管理者権限でロードさせる。

自動昇格に関する詳細な情報は、参考文献[1]をご参照ください。

アプリケーション互換性データベースを用いた新たなUAC回避手法

Dridexの分析によりJPCERT/CCが確認した新たなUAC回避手法は、アプリケーション互換性データベースを用いる点に特徴があります。アプリケーション互換性データベースとは、互換性に問題のあるアプリケーションを実行する際のルールを設定するファイルで、拡張子はsdbです。Dridexはこの仕組みを用いることで、図 3のようにしてUACを回避していました。


acreport-uac-bypass_picture3.jpg
  1. Dridexが、アプリケーション互換性データベース($$$.sdb)とバッチファイル($$$.bat)、およびDridex自身のコピー(edg3FAC.exe)を作成する。
  2. Dridexが、アプリケーション互換性データベースのインストール・アンインストール用コマンドであるsdbinstコマンドを使用して$$$.sdbをインストールする。
  3. iSCSIイニシエータのコマンドラインツールであるiscsicliコマンドをDridexが起動するが、インストールされたアプリケーション互換性データベース($$$.sdb)の設定によって、iscsicli.exeが$$$.batを管理者権限で実行する。
  4. $$$.batがedg3FAC.exeを管理者権限で実行する。

図 3: 新たなUAC回避手法


この手法は、次のようなWindows 7の仕様を悪用しているだけで、従来の手法に比べよりシンプルです。これにより、Windowsの仕様が変更されたとしても、継続してこの手法を用いることができる可能性が高まります。

  • sdbinst.exeやiscsicli.exeのような自動昇格プログラムは、プログラム起動時にUACの警告表示無しで管理者権限に自動的に昇格する。
  • 他のプログラムの動作を変更可能であるsdbinstコマンドが、自動昇格プログラムとなっている。

では、実際にインストールされる$$$.sdbを見てみましょう。次のようにHEXエディタで確認すると、iscsicli.exeの実行時に、iscsicli.exeが$$$.batを実行するよう指定したデータベースであることが分かります。


00000190  2e 00 33 00 00 00 01 88  12 00 00 00 69 00 73 00  |..3.........i.s.|
000001a0  63 00 73 00 69 00 63 00  6c 00 69 00 00 00 01 88  |c.s.i.c.l.i.....|
000001b0  1a 00 00 00 69 00 73 00  63 00 73 00 69 00 63 00  |....i.s.c.s.i.c.|
000001c0  6c 00 69 00 2e 00 65 00  78 00 65 00 00 00 01 88  |l.i...e.x.e.....|
000001d0  0c 00 00 00 50 00 61 00  74 00 63 00 68 00 00 00  |....P.a.t.c.h...|
000001e0  01 88 14 00 00 00 4d 00  69 00 63 00 72 00 6f 00  |......M.i.c.r.o.|
000001f0  73 00 6f 00 66 00 74 00  00 00 01 88 04 00 00 00  |s.o.f.t.........|
00000200  2a 00 00 00 01 88 18 00  00 00 52 00 65 00 64 00  |*.........R.e.d.|
00000210  69 00 72 00 65 00 63 00  74 00 45 00 58 00 45 00  |i.r.e.c.t.E.X.E.|
00000220  00 00 01 88 52 00 00 00  25 00 4c 00 4f 00 43 00  |....R...%.L.O.C.|
00000230  41 00 4c 00 41 00 50 00  50 00 44 00 41 00 54 00  |A.L.A.P.P.D.A.T.|
00000240  41 00 25 00 4c 00 6f 00  77 00 5c 00 24 00 24 00  |A.%.L.o.w.\.$.$.|
00000250  24 00 2e 00 62 00 61 00  74 00 00 00 00 00 00 00  |$...b.a.t.......|

また、作成後に管理者権限で実行される$$$.batは次のようになっており、Dridexのコピーであるedg3FAC.exeを実行することが分かります。さらに、$$$.batは、UAC回避後すぐに、インストールされたアプリケーション互換性データベースをアンインストールし、UAC回避の痕跡を消しています。


start C:\Users\user_name\AppData\Local\edg3FAC.exe C:\Users\user_name\Desktop\malware.exe
sdbinst.exe /q /u "C:\Users\user_name\AppData\LocalLow\$$$.sdb"
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Custom\iscsicli.exe" /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\InstalledSDB\{f48a0c57-7c48-461c-9957-ab255ddc986e}" /f
del C:\Windows\AppPatch\Custom\{f48a0c57-7c48-461c-9957-ab255ddc986e}.sdb
del %LOCALAPPDATA%Low\$$$.sdb
del %LOCALAPPDATA%Low\$$$.bat

おわりに

ここで紹介した新しいUAC回避手法は、Dridexだけでなく、既に別のマルウエアでの使用も確認されています。また、UACを回避して得た管理者権限では、管理者権限が必要なマルウエアの実行以外に、Windows ファイアウォールの設定変更が行われるケースも見つかっています。

中津留 勇


2015年5月12日追記
2015年4月29日に、アプリケーション互換性データベースに関する更新プログラム(KB3045645)がマイクロソフト社より公開されました。

この更新プログラムを適用した環境で、本手法が用いられた場合には、図4の警告が表示されます。本手法によるUAC回避を防ぐためにも、更新プログラムの適用をお勧めします。

acreport-uac-bypass_picture4.png

図 4: 更新プログラム適用済みの環境で、新しいUAC回避手法が用いられた際に表示される警告

Update to force a UAC prompt when a customized .sdb file is created in Windows
https://support.microsoft.com/en-us/kb/3045645



参考文献
ユーザー アカウント制御: Windows 7 ユーザー アカウント制御の内部
https://technet.microsoft.com/ja-jp/magazine/2009.07.uac.aspx

Appendix A: 検体のSHA-256ハッシュ値
  • bc93e9bdf92f0a9fb24ccbf053f59d79e31588a956204b4d09efff1091a40c89
  • 1cff58a3f08fec11dededd2df09e0e1425466886ab8f154561108e9d564e5c36
  • 3eab2a09fe6cc433cbb7567bfdde81ba9edc4f8af01ffc869394fe93983d7b7d

Topへ

CSIRTマテリアル
パスワードリスト攻撃による不正ログイン防止
JPCERT/CCって何をやっているのですか?
Follow jpcert on Twitter
blog_banner_english