この質問は、私が現在扱っている特権の問題についてのこの質問のフォローアップと続きです。
問題の概要:特権
を持たないドメイン管理者アカウントでプログラムを実行していますが、ローカルマシンで必要です。Debug programs (SeDebugPrivilege)
Klugeyソリューション:
プログラムは、ローカルマシンにサービスとして自分自身をインストールし、サービスを開始できます。このサービスはSYSTEM
アカウントで実行されるようになりました。これにより、SeTCBPrivilege
特権を使用して、を含む新しいアクセストークンを作成できますSeDebugPrivilege
。次に、新しく作成されたトークンを使用して、昇格された権限で最初のプログラムを再起動できます。
私は個人的にこの解決策が好きではありません。サービスのインストールなどのシステム変更をしなくても、管理者として必要な権限を取得できるはずだと思います(一時的なものでも)。
システムの変更を最小限に抑え、できればオンザフライで実行できるソリューションがあることを望んでいます(つまり、自分自身を再起動する必要はありません)。既知のSYSTEMプロセス(csrss.exeなど)を実行しようLogonUser
として失敗しました(取得しようとしている特権がないとプロセスのハンドルを取得できないため、失敗します)。SYSTEM
OpenProcessToken
OpenProcess
PROCESS_QUERY_INFORMATION
私は、この問題の代替解決策を考え出そうとしているところです。ホストマシンで特権トークンを取得してこのプログラムに偽装する簡単な方法があることを望んでいましたが、方法が見つかりませんでした。
誰かがこれを回避する方法を知っているか、うまくいくかもしれないことについての提案さえあれば、私に知らせてください。私は本当に助けに感謝します、ありがとう!