LightsOutは、難読化されたDLLを生成し、AMSI & ETWを無効にしつつ、AVの検知を回避しようとします。これは、使用されるすべてのWinAPI関数をランダム化し、文字列をXORエンコードし、基本的なサンドボックスチェックを利用することで行われます。Mingw-w64を使用して、難読化されたCコードをコンパイルし、AMSIまたはETWが存在する任意のプロセス(例:PowerShell)にロードできるDLLにします。
LightsOutは、python3とmingw-w64がインストールされたLinuxシステムで動作するように設計されています。他の依存関係は必要ありません。
現在の機能は以下のとおりです:
_______________________
| |
| AMSI + ETW |
| |
| LIGHTS OUT |
| _______ |
| || || |
| ||_____|| |
| |/ /|| |
| / / || |
| /____/ /-' |
| |____|/ |
| |
| @icyguider |
| |
| RG|
`-----------------------'
usage: lightsout.py [-h] [-m <method>] [-s <option>] [-sa <value>] [-k <key>] [-o <outfile>] [-p <pid>]
AMSI & ETWを無効にする難読化されたDLLを生成します
オプション:
-h, --help このヘルプメッセージを表示して終了
-m <method>, --method <method>
バイパス手法(オプション: patch, hwbp, remote_patch)(デフォルト: patch)
-s <option>, --sandbox <option>
サンドボックス回避手法(オプション: mathsleep, username, hostname, domain)(デフォルト: mathsleep)
-sa <value>, --sandbox-arg <value>
サンドボックス回避手法の引数(例: WIN10CO-DESKTOP, testlab.local)
-k <key>, --key <key>
文字列をエンコードするキー(デフォルトではランダム生成)
-o <outfile>, --outfile <outfile>
DLLを保存するファイル
リモートオプション:
-p <pid>, --pid <pid>
パッチを適用するリモートプロセスのPID
使用目的/Opsecに関する考慮事項
このツールは、ペネトレーションテストで使用するために設計されており、主に悪意のあるPowerShellスクリプトをAV/EDRによってブロックされずに実行することを目的としています。そのため、このツールは非常に最小限の機能しかなく、Opsecを改善するために多くの機能を追加できます。このツールがEDRによる検出を完全に回避できるとは期待しないでください。
使用例
出力されたDLLをターゲットシステムに転送し、さまざまな方法でPowerShellにロードすることができます。例えば、LoadLibraryを使用したP/Invokeを介して行うことができます:

またはさらに簡単に、PowerShellを任意の場所にコピーしてDLLをサイドロードしてください!

謝辞/クレジット/参考資料: