Maison >développement back-end >C++ >Les utilisateurs non administrateurs peuvent-ils démarrer les services Windows sans compromettre la sécurité du système ?

Les utilisateurs non administrateurs peuvent-ils démarrer les services Windows sans compromettre la sécurité du système ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-26 00:58:02882parcourir

Can Non-Admin Users Start Windows Services Without Compromising System Security?

Démarrage des services Windows à partir d'applications sans privilèges d'administrateur

De nombreux scénarios impliquent le démarrage ou l'arrêt des services Windows à partir d'applications distinctes. Cependant, cela peut sembler limité pour les utilisateurs non-administrateurs en raison de problèmes de sécurité. Comment pouvons-nous surmonter cette limitation et donner aux utilisateurs un contrôle granulaire sur la gestion des services sans compromettre la stabilité du système ?

La solution : modifier les autorisations de service

La clé de ce problème réside en modifiant les autorisations de l'objet de service. En accordant les droits appropriés aux utilisateurs non administrateurs, nous pouvons leur permettre d'interagir avec les services de manière contrôlée.

L'extrait de code suivant montre comment définir le descripteur de sécurité d'un service pour inclure les autorisations requises :

<code class="c++">wchar_t sddl[] = L"D:"
  L"(A;;CCLCSWRPWPDTLOCRRC;;;SY)"           
  L"(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)"   
  L"(A;;CCLCSWLOCRRC;;;AU)"                 
  L"(A;;CCLCSWRPWPDTLOCRRC;;;PU)"           
  L"(A;;RP;;;IU)"                         
;

PSECURITY_DESCRIPTOR sd;

if (!ConvertStringSecurityDescriptorToSecurityDescriptor(sddl, SDDL_REVISION_1, &sd, NULL))
{
   fail();
}

if (!SetServiceObjectSecurity(service, DACL_SECURITY_INFORMATION, sd))
{
   fail();
}</code>

Ce descripteur de sécurité spécifique accorde les autorisations suivantes :

  • Autorisations par défaut pour le système local : Accorde un contrôle total au compte système local.
  • Autorisations par défaut pour les administrateurs : Accorde l'accès aux administrateurs.
  • Autorisations par défaut pour les utilisateurs authentifiés : Accorde un accès limité à tous les utilisateurs authentifiés.
  • Autorisations par défaut pour les utilisateurs expérimentés : Accorde un contrôle total aux utilisateurs expérimentés.
  • Autorisation ajoutée pour les utilisateurs interactifs : Accorde l'autorisation de démarrer le service pour les utilisateurs interactifs.

La chaîne de descripteur de sécurité (SDDL) peut être personnalisée pour ajouter ou supprimer des autorisations spécifiques en fonction du niveau d'accès souhaité pour différents groupes d'utilisateurs. Par exemple, si vous souhaitez que les utilisateurs non-administrateurs puissent arrêter le service, le SDDL suivant peut être utilisé :

L"(A;;RPWP;;;IU)" 

Cela ajouterait le droit WP (WRITE_PROPERTY), permettant aux utilisateurs interactifs de démarrer et arrêtez le service.

En définissant soigneusement les autorisations, les utilisateurs non-administrateurs peuvent effectuer des tâches essentielles de gestion des services sans compromettre la sécurité du système.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn