2010-10-19 2 views
2

Je recherche une méthode pour supprimer les droits de processus pour des raisons de sécurité. Je veux commencer en tant qu'utilisateur avec des privilèges et se terminer en tant qu'utilisateur limité.Suppression des droits de processus sous Windows

Par exemple, je veux que mon serveur Web pour exécuter sous utilisateur restreint par je veux encore écouter sur le port 80.

Comment puis-je faire de telles choses sous Windows. Quelque chose de similaire à Unix:

bind_to_80(); 
chroot("/some/limited/dir"); 
setuid(limited_user_id); 
setgid(limited_group_id); 
chroot("/some/limited/dir"); 
// drop some more rights 
fork(); // now I can't come back 

Comment faire quelque chose de similaire sous Windows? Edit: Bien sûr, je comprends que Windows n'a pas de fork ou chroot, mais je cherche à abandonner divers droits, en particulier les meilleures pratiques de l'utilisateur.

+0

Avez-vous essayé de simplement courir en tant qu'utilisateur non privilégié? Je configure un serveur api de repos sous Windows pour la première fois. J'ai utilisé la console de gestion de services pour configurer le service à exécuter en tant qu'utilisateur non administrateur. Il lie toujours et écoute sur le port 80 sans problème. –

Répondre

2

Jetez un oeil à Mark Russinovich's description des privilèges de suppression sous Windows en utilisant CreateRestrictedToken et CreateProcessAsUser. Comme il l'explique, ceci n'est pas à toute épreuve puisque le compte sous lequel le processus s'exécute conserve ses privilèges.

Et bien sûr, son utilitaire sysinternals PsExec vous aide à supprimer au moins Administrator privilèges, sans codage.

Pour un processus existant, il semble AdjustToken et AdjustTokenGroup manipulation de permis (l'ancien exige apparemment XPSP2 ou plus), mais qui ont besoin eux-mêmes privilèges ... il pourrait être possible de commettre seppuku le privilège de cette façon, mais je n'ai pas essayé eux: ils pourraient barf sur la manipulation des privilèges du processus actuel.

+0

Est-il possible de le faire sans démarrer d'autres processus? – Artyom

+0

J'avais tort: ​​une manipulation est possible. Edité pour ajouter. Pas sûr de l'utilisation réfléchie sur le processus en cours. Il n'y a pas de substitut à essayer! –

Questions connexes