OwnershipStealer
このC#コードは、指定されたファイルの所有権を取得しようとするコンソールアプリケーションです。
コードのロジック
プログラムはまず、コマンドライン引数としてファイル名が指定されているかどうかを確認し、指定されていない場合はユーザーに入力を促します。その後、次の手順でファイルの所有権を取得しようとします。
- 現在のプロセストークンを取得します。
- SeTakeOwnershipPrivilegeのLUID(Locally Unique Identifier)を検索します。
- トークン内のSeTakeOwnershipPrivilegeを有効にします。
- ファイルの新しいFileSecurityオブジェクトを作成し、所有者を現在のユーザーに設定して、ファイルに新しいアクセス制御を設定することで、ファイルの所有権を取得しようとします。
- UnauthorizedAccessExceptionが発生した場合は、ファイルの所有権が正常に取得されるか、プログラムの継続を妨げる例外がスローされるまで再試行します。
所有権を取得すると、プログラムは終了し、完了したことを示すメッセージを表示します。
使い方
- リポジトリをクローンまたはダウンロードします。
- Visual Studioでプロジェクトを開きます。
- プロジェクトをビルドします。
- コマンドプロンプトまたはターミナルを開き、実行可能ファイルの場所に移動します。
- ファイルパスを引数としてコマンドを実行します。
OwnershipStealer.exe [file path]
- ファイルパスが指定されていない場合、プログラムは入力を求めます。
ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細はLICENSEファイルを参照してください。
ビデオによる概念実証
https://youtu.be/sOcJp58sblM