
Empireは、PowerShellおよびPythonを使用したポストエクスプロイテーションエージェントです。

Invoke-Obfuscation は、PowerShell v2.0 以上に対応した PowerShell コマンドおよびスクリプトの難読化ツールです。
2015 年秋、私は PowerShell 言語の柔軟性の調査を始め、攻撃者が日常的に使用するいくつかの一般的なテクニックを実現するための様々な方法をカタログ化することにしました。
最初はエンコードされたコマンドとリモートダウンロード用のクレードル構文に焦点を当てていましたが、実行中のプロセスと Security EID 4688 および Sysmon EID 1 イベントログの両方において、コマンドの実行を妨げない様々なエスケープ文字がコマンドライン引数に残っていることを発見しました。これにより、任意の PowerShell コマンドやスクリプトに含まれるあらゆる種類の「トークン」を難読化する方法を体系的に探求するようになりました。
次に、よりマイナーな文字列レベルの難読化手法、さまざまなエンコード/暗号化手法(ASCII/hex/octal/binary や SecureString など)、そして最後に、powershell.exe からのコマンドライン引数を抽象化し、親プロセスや祖父母プロセスに戻すための PowerShell 起動手法を探求しました。
攻撃者やコモディティマルウェアは、powershell.exe のコマンドライン引数からコマンドの大部分を隠すために、非常に基本的な難読化手法を使い始めています。私はこのツールを、Blue Team が PowerShell 2.0~5.0 で構文的に可能であると現在私が知っている難読化コマンドをシミュレートし、これらの手法に対する検出能力をテストできるようにするために開発しました。
このツールの唯一の目的は、PowerShell コマンドがコマンドライン上でどのように表示されるかについて、防御側が持つかもしれないあらゆる仮定を打ち破ることです。このツールが、Blue Team が PowerShell ログを更新してモジュール、スクリプトブロック、文字起こしログを含めることに加えて、コマンドライン上の難読化の兆候を探すようにシフトするきっかけとなることを願っています。これらのログは、このツールが生成する難読化手法のほとんどの側面を単純化するためです。
すべての難読化レイヤーは個別のスクリプトとして実装されていますが、ほとんどのユーザーには、Invoke-Obfuscation 関数が、このフレームワークが現在サポートしている難読化手法を探索し可視化する最も簡単な方法でしょう。
Invoke-Obfuscation のソースコードは Github でホストされており、このリポジトリ (https://github.com/danielbohannon/Invoke-Obfuscation) からダウンロード、フォーク、レビューすることができます。問題や機能リクエストは、このプロジェクトに関連する Github のバグトラッカーを通じて報告してください。
インストール方法:
Import-Module ./Invoke-Obfuscation.psd1
Invoke-Obfuscation
Invoke-Obfuscation は Apache 2.0 ライセンスの下で公開されています。
v1.0 - 2016-09-25 DerbyCon 6.0 (ケンタッキー州ルイビル、米国): Invoke-Obfuscation のパブリックリリース。
v1.1 - 2016-10-09 SANS DFIR Summit (プラハ、チェコ共和国): 該当するすべての TOKEN 難読化関数に -f フォーマット演算子の順序変更機能を追加。また、変数値設定のための追加構文オプションも追加。
v1.2 - 2016-10-20 CODE BLUE (東京、日本): Type TOKEN 難読化を追加(型名に対する文字列難読化オプション付きの直接型キャスト)。
v1.3 - 2016-10-22 Hacktivity (ブダペスト、ハンガリー): 2 つの新しい LAUNCHER: CLIP+ と CLIP++ を追加。また、For-EachObject/% を必要としない、すべての ENCODING 関数に対する追加の(よりシンプルな)配列文字変換構文も追加。
v1.4 - 2016-10-28 BruCON (ゲント、ベルギー): 新しい BXOR ENCODING 関数を追加。また、すべての ENCODING 関数のすべてのコンポーネントと、すべての LAUNCHER の PowerShell 実行フラグに対して、大文字小文字のランダム化を強化。最後に、すべての LAUNCHER に -ExecutionPolicy の省略形 -EP オプションを追加し、PowerShell 実行フラグ -WindowStyle のオプション整数表現も追加: Normal (0)、Hidden (1)、Minimized (2)、Maximized (3)。
v1.5 - 2016-11-04 Blue Hat (ワシントン州レドモンド、米国): WMIC LAUNCHER を追加。WMIC コマンドライン引数のランダム化も含む。
v1.6 - 2017-01-24 Blue Hat IL (テルアビブ、イスラエル):
v1.7 - 2017-03-03 nullcon (ゴア、インド):
v1.8 - 2017-07-27 Black Hat (ネバダ州ラスベガス、米国):