
NCC Group Plc によりオープンソースとして公開 - http://www.nccgroup.trust/
開発者: Richard Warren, richard [dot] warren [at] nccgroup [dot] trust
http://www.github.com/nccgroup/demiguise
AGPLのもとで公開。詳細はLICENSEを参照。
このプロジェクトの目的は、暗号化されたHTAファイルを含む .html ファイルを生成することです。アイデアは、ターゲットがページにアクセスしたときに、キーが取得され、ブラウザ内で動的にHTAが復号化され、ユーザーに直接プッシュされるというものです。これは、一部のセキュリティアプライアンスが実装するコンテンツ/ファイルタイプ検査を回避するための回避技術です。このツールは、素晴らしいHTAコンテンツを作成するために設計されているわけではありません。それに役立つ他の ツール / テクニック が多数あります。このツールが役立つかもしれないのは、まず最初にHTAを環境に持ち込むこと、そして(環境キーイングを使用する場合)サンドボックス化を回避することです。
これは、HTAファイルをRC4で暗号化し、サーバーから直接HTAを取得する代わりに、実行時に navigator.msSaveBlob を使用してファイルを「保存」することで実現されます。つまり、プレーンテキスト形式でHTAファイルを含むHTTPリクエスト/レスポンスは一切存在せず、プロキシは暗号化されたブロブを含む text/html ファイルを単に見ることになります。最新バージョンのEdgeでは、ユーザーにHTAを「実行」するように促す結果になります。
このツールの主な目的ではありませんが、基礎となるHTAにはいくつかのペイロードオプションがあります。各オプションは、Matt Nelson、Matthew Demaske、Ryan Hanson、Etienne Stalmans によって以前文書化された異なる技術を使用しています。これらの技術を使用する利点は、コードが mshta.exe の子プロセスとして実行されないことです。前述のとおり、HTAの内容はこのツールの主な目的ではありません。HTAテンプレートを変更して、独自のカスタムコードを含めることをお勧めします :)
demiguise.py ファイルを実行し、暗号化キー、ペイロードタイプ、出力ファイル名、HTAで実行したいコマンドを指定します。
例: python demiguise.py -k hello -c "notepad.exe" -p Outlook.Application -o test.hta


サンドボックスを回避するために、キーを直接HTAに埋め込むべきではありません。代わりに、ターゲットが存在する環境から動的にキーを取得する必要があります。その例として、クライアントの外部IPアドレスをキーとして使用することが考えられます。これの利点は、コードがサードパーティのサンドボックスで実行された場合、HTAが復号化されないことです。実際、ファイル名すら復号化されないため、誰もペイロードが何であるか/何をするか知ることはできません :)
環境キーイングの例は、examples/externalip.js と examples/virginkey.js に示されています。
このツールはJavaScriptを含むHTMLファイルを出力するため、このJSをそのまま取得して任意の場所でホストできます。つまり、クライアントのWebサイトがリフレクト型XSSに対して脆弱な場合、これを使用して、その(非常に信頼された)ドメインからHTAファイルを提供できます。
また、Outlookはデフォルトで .html 添付ファイルをブロックせず、他の一部のアプリケーションも同様です。想像力を働かせてください! :)
現在、VTでは検出されていません:
難読化技術はシグネチャ化が難しいかもしれませんが、HTA攻撃に対する防御方法の一つは、そもそもHTA自体が実行できないようにすることです。これは、ソフトウェア制限ポリシー (SRP)、Device Guard (Windows 10 および Server 2016) を使用するか、.htaファイルに関連付けられたデフォルトのファイルハンドラを変更することで達成できます。
これらの変更は、HTAの実行に依存するソフトウェアの動作に影響を与える可能性があることに注意してください。したがって、修正はご自身の環境で十分にテストすることをお勧めします。
SRPの使用:

デフォルトのファイルハンドラの変更:
ftype htafile=%SystemRoot%\system32\NOTEPAD.EXE %1

元に戻す (x64):
ftype htafile=C:\Windows\SysWOW64\mshta.exe "%1" {1E460BD7-F1C3-4B2E-88BF-4E770A288AF5}%U{1E460BD7-F1C3-4B2E-88BF-4E770A288AF5} %*

WbemScripting.SWbemLocator および ShellBrowserWindow COM実行テクニックWbemScripting.SWbemLocator COM実行PoCExcel.Application.RegisterXLL COM実行テクニックOutlook.Application.CreateObject COM実行テクニック