
C#で記述されたポストエクスプロイテーションツールで、CIMまたはWMIを使用してリモートシステムを照会します。
SharpStrikeは、C#で書かれたポストエクスプロイテーションツールで、CIMまたはWMIを使用してリモートシステムをクエリします。提供された資格情報または現在のユーザーのセッションを使用できます。
注意: 一部のコマンドはPowerShellとWMIを組み合わせて使用し、--show-commands コマンドでは**で示されます。
SharpStrikeは、@Matt_Grandy_のCIMplantと@christruncerのWMImplantをC#で書き直し、拡張したものです。
SharpStrikeを使用すると、リモートシステムに関するデータの収集、コマンドの実行、データの流出などが可能です。このツールは、Windows Management Instrumentation (WMI) または Common Interface Model (CIM)、より正確にはWindows Management Infrastructure (MI) を使用した接続を許可します。CIMplantはターゲットシステムに対するローカル管理者権限が必要です。
おそらく、Releasesの下にあるビルド済みバージョンを使用するのが最も簡単ですが、デバッグモードでコンパイルされていることに注意してください。自分でソリューションをビルドしたい場合は、以下の手順に従ってください。
ビルドにより、SharpStrikeの2つのバージョン、GUI(WinForms)とコンソールアプリケーションが生成されます。各バージョンは同じ機能を実装しています。
Console Version:
SharpStrike.exe --help
SharpStrike.exe --show-commands
SharpStrike.exe --show-examples
SharpStrike.exe -c ls_domain_admins
SharpStrike.exe -c ls_domain_users_list
SharpStrike.exe -c cat -f "c:\users\user\desktop\file.txt" -s [remote IP address]
SharpStrike.exe -c cat -f "c:\users\user\desktop\file.txt" -s [remote IP address] -u [username] -d [domain] -p [password] -c
SharpStrike.exe -c command_exec -e "quser" -s [remote IP address] -u [username] -d [domain] -p [password]
GUI version:
show-commands
show-examples
ls_domain_admins
ls_domain_users_list
cat -f "c:\users\user\desktop\file.txt" -s [remote IP address]
cat -f "c:\users\user\desktop\file.txt" -s [remote IP address] -u [username] -d [domain] -p [password]
command_exec -e "quser" [remote IP address] -u [username] -d [domain] -p [password]
cat - ファイルの内容を読み取ります
copy - ファイルをある場所から別の場所にコピーします
download** - 対象のマシンからファイルをダウンロードします
ls - 特定のディレクトリのファイル/ディレクトリを一覧表示します
search - ユーザー上のファイルを検索します
upload** - 対象のマシンにファイルをアップロードします
command_exec** - コマンドラインコマンドを実行し、出力を受け取ります。nopsフラグを指定するとPowerShellを無効にします
disable_wdigest - UseLogonCredentialのレジストリ値を0に設定します
enable_wdigest - UseLogonCredentialレジストリ値を追加します
disable_winrm** - 対象システムのWinRMを無効にします
enable_winrm** - 対象システムのWinRMを有効にします
reg_mod - 対象マシンのレジストリを変更します
reg_create - 対象マシンにレジストリ値を作成します
reg_delete - 対象マシンのレジストリを削除します
remote_posh** - リモートマシンでPowerShellスクリプトを実行し、出力を受け取ります
sched_job - Win32_ScheduledJobsが古いAPIにアクセスするため、実装されていません
service_mod - システムサービスの作成、削除、または変更を行います
ls_domain_users*** - ドメインユーザーを一覧表示します
ls_domain_users_list*** - ドメインユーザーのsAMAccountNameを一覧表示します
ls_domain_users_email*** - ドメインユーザーのメールアドレスを一覧表示します
ls_domain_groups*** - ドメインユーザーグループを一覧表示します
ls_domain_admins*** - ドメイン管理者ユーザーを一覧表示します
ls_user_groups*** - ドメインユーザーとその関連グループを一覧表示します
ls_computers*** - 現在のドメイン上のコンピューターを一覧表示します
process_kill - ターゲットマシン上のプロセスを名前またはプロセスIDで強制終了します
process_start - ターゲットマシン上でプロセスを開始します
ps - プロセス一覧
active_users - ターゲットシステム上でアクティブなプロセスを持つドメインユーザーを一覧表示します
basic_info - ターゲットシステムに関する基本メタデータを列挙するために使用します
drive_list - ローカルおよびネットワークドライブを一覧表示します
share_list - ネットワーク共有を一覧表示します
ifconfig - アクティブなネットワーク接続を持つNICからIP情報を取得します
installed_programs - ターゲットマシンにインストールされているプログラムの一覧を取得します
logoff - ターゲットマシンからユーザーをログオフします
reboot (or restart) - ターゲットマシンを再起動します
power_off (or shutdown) - ターゲットマシンの電源を切ります
vacant_system - ユーザーがシステムから離れているかどうかを判断します
edr_query - ローカルまたはリモートシステムのEDRベンダーをクエリします
logon_events - システムにログオンしたユーザーを特定します
* すべてのPowerShellは--nopsフラグを使用して無効にできますが、一部のコマンドは実行されません(upload/download、enable/disable WinRM)
** PowerShellの使用を示します(PowerShell RunspaceまたはWin32_Process::Createメソッドの使用)
*** LDAPの使用を示します - "root\directory\ldap" 名前空間
Console version:
GUI version:

SharpStrikeは、3つの主要なプロジェクトで構成されています。
ここで初期のCIM/WMI接続が行われ、アプリケーションの残りの部分に渡されます。
WMIコマンドのすべての関数コード
CIM(MI)コマンドのすべての関数コード
CIMplant パート1: WMImplantのC#実装の検出
WMImplant – PowerShellで開発されたWMIベースのエージェントレスポストエクスプロイテーションRAT