2016-12-09 10 views
1

追加のサービスを作成する権利を持つWindowsサービスを作成しようとしています。しかし、私は管理ログインでこのサービスを実行させたくないです。サービスサービスの作成 - SC_MANAGER_CREATE_SERVICEをユーザーに割り当てる

ユーザーの権利は他にもかなり限られています。要求に応じてサービスをスピンアップできるようにするために必要です。

私はSC_MANAGER_CREATE_SERVICEがあなたが今割り当てたり変更できるパーミッションであることをオンラインで見てきましたが、多くは見ていません。どうすればが完了したのですか? OpenSCManagerと - gulp -scコマンドを使用して、subinaclを介して個々のサービスのアクセス権を変更できることに言及しています。しかし、これらの例は、ユーザーにSC_MANAGER_CREATE_SERVICE権限を与える方法ではなく、単一のサービスに対するアクセス許可を変更する方法を示しています。

しかし、私は、CreateServiceのドキュメントでは管理者の特権が必要であると具体的に言われていることに気付きました。おそらく単純に不可能です。

私は管理者アカウントでサービスを開始する必要がありますか?それとも誰か別のトリックを知っていますか?

+0

LocalServiceアカウントを使用できない理由はありますか? –

+1

'CreateService()'文書の中には、管理者特権が必要だと書かれているものはありませんが(レジストリの 'HKEY_LOCAL_MACHINE'に書き込むので意味があります)、' SC_MANAGER_CREATE_SERVICE'で 'OpenSCManager 'dwDesiredAccess'パラメータで指定します。 –

答えて

2

SCMANAGERオブジェクトへのハンドルをQueryServiceObjectSecurityとSetServiceObjectSecurity機能を使用し、SCMのセキュリティ記述子を取得または設定するにはService Security and Access Rights:

を参照してください。

ローカルシステムとして実行するサービスを作成することができるため、サービスを作成する権利を持つことにより、管理者のアクセスが有効になることに注意してください。そのため、信頼できないユーザーがアクセスできるアカウントにその権限を付与しないように注意し、その権限を持つすべてのアカウントが強力なパスワードを持つようにする必要があります。

これは、リモートサービス実行脆弱性によりシステムサービスが犠牲になった場合でも、何も得られていない場合でも、攻撃者は引き続きシステムを制御できることを意味します。サービスが直接的な攻撃の危険性が高い場合は、特別な権限を必要とするタスクのみを担当する第2のサービスを使用することをお勧めします。ただし、直接攻撃される可能性が低いサービス、または合理的に安全とみなされるサービスについては、管理者権限(サービスを作成する機能を除く)を使用しないで実行すると、脆弱性が悪用される可能性が低くなります。セキュリティ関連のバグ。

Server FaultのGranting service control manager access permission to user outside of administrator groupも参照してください。答えは、コマンドラインからSCM権限を変更する方法を示しています。

関連する問題