
横移動/コード実行のための自作ツール
このリポジトリは、既存の[MiscTool][1]をベースに作成されています。rasta-mouse氏がツールを公開し、それに取り組む動機を与えてくれたことに大いに感謝します。
PsExecのような機能によるコマンド実行/横移動。特権ユーザーのコンテキストで実行する必要があります。 このツールはrasta-mouseのCsExecをベースにしていますが、サービスの作成において追加の制御を可能にするように設計されています。具体的には:
CheeseExec.exe <targetMachine> <serviceName> <binPath> <action>
[TikiService][2]も参照してください。
CheesePSはコマンド実行/横移動フレームワークです。System.Management.Automation.PowerShellに依存して、PowerShellを介した任意のコードのロードと実行を行います。
このツールは、ローカルまたはリモートのターゲット上でPowerShell実行空間を作成して使用することにより、一般的な制限を回避する機能をネイティブに備えています。
PowerShell Remotingを使用する場合は、特権ユーザーのコンテキストで実行する必要があります。
このツールは元々rasta_mouseのCsPoshの拡張として作成されましたが、十分に成長して独自のフレームワークとなり、現在は汎用的なPowerShellインジェクターとして使用できます。
このツールの背後にあるアイデアは、次の記事にまとめられています。
実装されている主な機能は次のとおりです:
次のスクリーンショットは、ツールのワークフローを説明する適切なスキーマです。

Usage:
-t, --target=VALUE Target machine
-c, --code=VALUE Code to execute
-e, --encoded Indicates that provided code is base64 encoded
-a, --am-si-bypass=VALUE Uses the given PowerShell script to bypass A-M-S-
I (fs, smb o http[s])
--aX, --encrypted-am-si
Indicates that provided A.M.S.I. bypass is
encrypted
-i, --import=VALUE Imports additional PowerShell modules (fs, smb o
http[s])
--iX, --encrypted-imports
Indicates that provided PowerShell modules are
encrypted
-o, --outstring Append Out-String to code
-r, --redirect Redirect stderr to stdout
-d, --domain=VALUE Domain for alternate credentials
-u, --username=VALUE Username for alternate credentials
-p, --password=VALUE Password for alternate credentials
-X, --encrypt=VALUE Encrypt a script with an hardcoded key
-D, --decrypt=VALUE Test decryption of a script with an hardcoded key
-n, --skip-bypass=VALUE Skip A.M.S.I (A), WLDP (W) or ALL (*) Bypass
techniques
-l, --lockdown-escape Try to enable PowerShell FullLanguage mode using
REGINI
-w, --wldp-bypass=VALUE Uses the given PowerShell script to bypass WLDP
(fs, smb o http[s])
--wX, --encrypted-wldp Indicates that provided WLDP bypass is encrypted
-x, --executable=VALUE [Download and] Execute given executable
--xX, --encrypted-executable
Indicates that provided Exe/DLL is encrypted
--xCS, --executable-csharp
Indicates that the executable provided is C# -
(.NET)
-R, --reflective-injection Uses Invoke-ReflectivePEInjection to load the
assmebly from memory (requires Invoke-
ReflectivePEInjection to be imported!)
-P, --powershell-decrypt Force use of PowerShell-based decryption
-k, --encryption-key=VALUE Uses the provided key for encryption/decryption
--ssl Force use of SSL
-h, -?, --help Show Help
注: ターゲットを指定せずに実行した場合、スクリプトはローカルマシンに対して実行されます
[AmsiBypass][3]も参照してください。
DCOMを介したコマンド実行/横移動。特権ユーザーのコンテキストで実行する必要があります。 このツールはrasta-mouseのCsDCOMをベースにしていますが、Philip Tsukerman氏の新しい研究に適応するために追加のメソッドが追加され、改良されています。 また、dcomcfgによる影響を受けるDCOMオブジェクトの無効化試行を「修正」する実験的なメソッドもありますが、適切に動作するにはいくつかの前提条件が必要です。
このツールの背後にあるアイデアは、次の記事にまとめられています。
現在のメソッド: MMC20.Application, ShellWindows, ShellBrowserWindow, ExcelDDE, VisioAddonEx,
OutlookShellEx, ExcelXLL, VisioExecLine, OfficeMacro.
Usage:
-t, --target=VALUE Target Machine
-b, --binary=VALUE Binary: powershell.exe
-a, --args=VALUE Arguments: -enc <blah>
-m, --method=VALUE Methods: MMC20Application, ShellWindows,
ShellBrowserWindow, ExcelDDE, VisioAddonEx,
OutlookShellEx, ExcelXLL, VisioExecLine,
OfficeMacro
-r, --reg, --registry Enable registry manipulation
-h, -?, --help Show Help
注: -t . で実行した場合、スクリプトはローカルマシンに対して実行されます
[DCOMオブジェクトとC#を使用した横移動][4]も参照してください。
RDI(リフレクティブDLLインジェクション)を介したRDP資格情報の窃取。特権ユーザー、またはSeImpersonatePrivilegeを持つユーザーのコンテキストで実行する必要があります。
このツールはMDSecのRdpThiefをベースに構築されていますが、単一のC#に完全にラップされており、.NETリフレクション(Assembly.Loadなど)を介して実行できるようになっています。これにより、対象システムにDLLをアップロードする手間なく、Covenantから実行することが可能です。
Usage:
CheeseRDP [actions]
Actions:
wait: keep listening for any new mstsc.exe process indefinitely (stop with ctrl-C)
clean: delete the credentials dump file if present
dump: dump the content of the file if present, parsing the credentials in a compact format
注: オプションなしで実行した場合、プログラムはアクティブなmstsc.exeプロセスへのインジェクションを試みます(デフォルトの待機時間は10秒)
MSSQLトラストを介したコマンド実行/横移動。 このツールは、特にMSSQLの偽装に関する、escなどの既存ツールの制限の一部を克服するために開発されました。 さらに、CheeseSQLはCovenantから(リフレクティブローディングを介して)実行できるように特別に修正されており、MSSQLトラスト悪用の最も重要なフェーズを自動化します。 特に興味深いのはCLR悪用の実装で、ユーザーがRoslynを使用してMSSQL拡張をその場でコンパイルおよびアップロードし、コマンド実行を実現できるようにします。 以下に非常に小さなデモを示します。実行されるコマンドはエンコードされたPowerShell Covenantダウンローダーです。

「功績には常にクレジットを」という私のルールに従い、このツールはJb05sによる既存プロジェクトSharpSQLを基に開発されました。Jeremy氏の作業に大いに感謝します。
また、MSSQL監査と悪用に関するNetSPIのすべてのツールを強くお勧めします。これらは本当に素晴らしいものです。