
監視アプリケーションからプロセスを隠蔽するポストエクスプロイテーションツール。
#ProcessHider
このツールは、ペネトレーションテストおよびその他のホワイトハット活動にのみ使用が許可されています。不正使用は固く禁止されています!
ProcessHiderは、タスクマネージャーやプロセスエクスプローラーなどの監視ツールからプロセスを隠蔽するために設計されたポストエクスプロイテーションツールです。これにより、管理者がペイロードのプロセスを発見することを防ぎます。このツールは、OSのバージョンを自動検出して適切なバージョンを使用することで、32ビット版と64ビット版の両方で動作します。
ProcessHiderは、EXEファイルまたはPowershellスクリプトとして利用可能です。
このツールはBSD-3ライセンスの下で提供されています:
Copyright (c) 2016, M00nRise
All rights reserved.
以下に定める条件に従い、本ソフトウェアおよび関連する文書ファイル(以下「ソフトウェア」)の複製物を取得する者に対し、ソフトウェアを無制限に扱うことを許可します。これには、ソフトウェアの複製、変更、統合、公開、頒布、サブライセンス、および/または販売の権利、およびソフトウェアを提供される者に同様のことを許可する権利が、以下の条件に従うことを条件として含まれます。
上記の著作権表示およびこの許諾表示は、ソフトウェアのすべての複製または重要な部分に含まれるものとします。
ソフトウェアは「現状のまま」提供され、明示的であるか黙示的であるかを問わず、いかなる種類の保証も伴いません。これには、商品性、特定目的への適合性、および非侵害の黙示的保証が含まれますが、これに限りません。いかなる場合においても、著作者または著作権者は、契約行為、不法行為、またはその他の行為にかかわらず、ソフトウェアまたはソフトウェアの使用もしくはその他の取引に起因または関連して生じるいかなる請求、損害、その他の責任も負いません。
プロジェクトをビルドするには、ルートディレクトリにある「build-me.bat」を使用してください。 完全なスクリプトには、EXE版とPowershell版の2種類があります。
EXEを使用するには、MainFile\ にあるメインファイルProcessHiderをcmdから呼び出し、以下のオプションを使用します:
Powershellを使用するには、Powershell\Output\fullScript.ps1を、EXEと同じ引数で使用してください。
使用例:
`ProcessHider -i 5454,3672 -n "chrome.exe,notepad.exe" -x "cmd.exe"`
注:少なくとも -i または -n のいずれかを使用する必要があります。隠蔽ツールは自身も隠蔽するようになっています。
このプロジェクトは以下のライブラリとプロジェクトを使用しています:
findvsスクリプトはEasyHookから取得: https://easyhook.github.io/
Invoke-ReflectivePEInjection(作者: clymb3r)、入手先: https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-ReflectivePEInjection.ps1
Xgetopt(作者: Hans Dietrich)、入手先: http://www.codeproject.com/Articles/1940/XGetopt-A-Unix-compatible-getopt-for-MFC-and-Win32
NtHookEngine(作者: Daniel Pistelli)、入手先: http://www.codeproject.com/Articles/21414/Powerful-x-x-Mini-Hook-Engine
ReflectiveDLLInjection(作者: Stephen Fewer of Harmony Security)、入手先: https://github.com/stephenfewer/ReflectiveDLLInjection
「Easy way to set up global API hooks」(作者: Sergey Podobry, Apriorit Inc)、入手先: http://www.codeproject.com/Articles/49319/Easy-way-to-set-up-global-API-hooks
これらのライブラリやVC++ランタイムには依存していません。すべて静的にリンクされているためです。
まず、隠蔽ツールはOSが32ビットか64ビットかをチェックし、適切なバージョンを選択します。 次に、デーモンを起動し、禁止された監視ツールのいずれかを監視します。見つけた場合、DLL注入を使用してペイロードを起動します。ペイロードはNtQuerySystemInformation(OSツールがアクティブなプロセスを列挙するために使用するメソッド)への呼び出しをフックし、指定された各プロセス(およびデーモン)を結果から削除します。
貢献は大歓迎です。 Powershellスクリプトを扱う際は、「fullScript」ではなく「daemon-integration」と「Invoke-ReflectivePEInjectionLite」を編集してください。ビルドスクリプトがこれらのファイルをソースとしてfullScript/に使用するためです。