Exécuter un programme en tant qu'Administrateur

Niveau de difficulté : Moyen

Résumé
Un ordinateur équipé du système d'exploitation Windows dispose automatiquement d'un compte administrateur.
Un compte administrateur permet d'éxecuter certaines applications sensibles, ou d'installer et désinstaller des programmes etc
Il peut être utile de vouloir exécuter certaines tâches avec des droits d'administrateur sur un compte utilisateur basique.

Solution

Dans l'entreprise où je travaille, le parc informatique est formé d'ordinateurs dont les utilisateurs n'ont pas de droits administrateurs.
Il est souvent pénible de devoir fermer leur session et ouvrir une nouvelle session administrateur pour installer une mise à jour.
De plus, par mégarde on pourrait oublier de fermer la session administrateur ouverte et une personne malveillante pourrait en profiter pour exécuter un programme malicieux qui contaminerai l'ensemùble des pc du parc informatique ... c'est le pire des cas, la hantise de tous les chefs de services informatiques et administrateurs système.

Microsoft propose deux façons d'executer un programme ou un script avec des droits d'un autre compte.




Nous aborderons dans la suite de ce tutoriel les deux différentes manières d'exécuter un programme ou une commande directement avec les outils fournis par Windows.

Puis nous verrons les outils tiers créer pour remplacer les utilitaires Windows avec les nouveautés qu'ils apportent.

[ ... ]


Simplicité
La première est l'option "Exécuter en tant que" que vous obtenez en cliquant droit sur un fichier exécutable ( nb : ceci uniquement si vous n'appartenez pas à un groupe "Administrateurs").
Si vous cliquez dessus, une fenêtre s'ouvre et vous invite à saisir le nom de l'utilisateur que vous voulez utiliser pour exécuter votre fichier et son mot passe.

C'est assez simple mais c'est aussi assez restreint.
Vous ne pourrez pas automatiser cette tâche de cette façon.


Demi-Automatisation
Microsoft fournit un autre outil plus performant. C'est une commande accessible par l'Invite de Commandes MS-DOS.
Pour en savoir plus sur l'Invite de commandes, jetez un oeil à cet article.

Cette commande qui nous intéresse se nomme "Runas".

Il permet l'exécution de fichiers avec les droits d'un autre utilisateur (un administrateur généralement) tout comme "Exécuter en tant que ..." mais permet aussi un peu plus comme par exemple :
  • charger ou non le profil du l'utilisateur (option /profile ou /noprofile)
  • utiliser l'environnement en cours à la place de celui de l'utilisateur (option /env)
  • sauvegarder le mot de passe (option /savecred)
Ce sont les fonctions qui me semble les plus intéressantes.

Pour utiliser Runas, saisissez runas +
  • /USER:NOMD'UTILISATEUR
  • "PROGRAMME A EXECUTER"
Ce qui donne : runas /user:administrateur notepad.exe pour exécuter le bloc-notes avec les droits du compte Administrateur (ce qui n'a aucune utilité :o)

Une fois la commande validée, on vous demande de saisir le mot de passe.

Pour voir toutes les options disponibles pour la commande Runas, rendez vous sur l'Invite de commandes et saisissez simplement : runas et valider par Entrée.
Vous trouverez aussi quelques exemples d'utilisation de Runas.

Inconvénients de Runas
Le premier inconvénient est que vous ne pouvez pas précisez de mot de passe directement dans la commande, vous êtes toujours obligé de le saisir juste après.
Cela réduit de beaucoup l'automatisation de tâches.

Le second inconvénient vient du fait que le mot de passe que vous saisissez est transmis de manière non crypté, et peut donc être intercepté.

Ensuite, si vous utilisez l'option /SAVECRED, le mot de passe que vous saisissez est sauvegardé et ensuite on ne vous demandera plus de le saisir tant que vous réutiliserez l'option /SAVECRED.
Où est le problème me direz vous !

Voici le problème : quelqu'un de malveillant peut utiliser la commande runas avec l'option /savecred et exécuter n'importe quelle commande sans qu'aucun mot de passe ne lui soit demandé.

Et oui ! Peut être que les risques sont insignifiants chez vous mais si vous utilisez Runas en entreprise, sur des dizaines voire des centaines de machines alors le risque est énorme !

Ce qui nous ammène à ma troisième partie, intitulée :


Sécurité, Performances & Automatisation
Il existe deux types de programmes tiers qui permettent aussi la même chose que la commande Runas et qui apportent des nouvelles fonctionnalités.
Il y a ceux qui permettent simplement de saisir le mot de passe dans la ligne de commande et de le faire transiter de façon encryptée.
Et il y a ceux dotés d'une interface, plus complets, avec d'autres fonctionnalités comme :
  • Encryption du mot de passe
  • Création de raccourcis Runas
  • Utilisation du CRC
Voyons cela de plus près :

Interface & Encryption
Dans la plupart des programmes spécialisés dotés d'une interface il faudra que vous choisissiez le fichier à exécuter (.exe; .bat; .com; .vbs; ...), vous saisissiez les informations du compte utilisateur à utiliser (login + password ( + domaine le cas échéant)), vous choisissiez une ou plusieurs paramètres optionnels et vous validiez le tout.

Le programme va alors créé un fichier (dont l'extension dépend) à l'endroit où se situe le fichier que vous vouliez exécuter avec d'autres droits.

Ce fichier nouvellement créé contient les informations de connexion au compte utilisateur, le chemin du fichier à exécuter, les options choisies, et le tout est encrypté (généralement en AES 256bits).
On ne vous volera pas votre mot de passe !

Utilisation du fichier encrypté
Ce ficher qui vient d'être créé par le programme pourra être utilisé simplement en double cliquant dessus ou par ligne de commandes.
Cela ouvre la porte à l'automatisation sécurisée.

Mais attention, chaque fichier encrypté correspond à un fichier à exécuter, et vous ne pourrez pas tricher car si votre programme spécialisé Runas intègre une fonctione de protection du fichier encrypté par CRC, aucune manipulation ne vous permettra de remplacer ou renommer votre fichier à exécuter pour pouvoir en exécuter un autre. Il faudra recréer un fichier encrypté avec votre programme de remplacement Runas.

Cela évite surtout que des personnes malveillantes exécutent un programme suspect avec des droits administrateurs.


J'avais fait un audit des outils de remplacement de la commande Runas il y a quelques temps dans mon entreprise.
Je vous fait profiter de ce que j'avais trouvé.
  • RunAsSPC : c'est l'outil que j'utilise. Pratique, utilisable en ligne de commandes, encryption AES 256bits, en anglais.
    Pas besoin de l'installer pour qu'il fonctionne : un seul fichier.
    Licenses de 20€ à 200€
    Site officiel - Télécharger RunAsSPC
  • Encrypted RunAs : un bon point pour l'interface et la vérification à la volée du mot de passe utilisateur saisi. Encryption AES 256bits. Je n'avais pas acheté celui-ci car il m'a semblé qu'on ne pouvais pas l'utiliser en ligne de commandes.
    Nécessite d'être installer sur la machine pour fonctionner.
    Licenses de 4,92€ à 1640,20€.
    Site officiel - Télécharger EncryptedRunAs
  • RunAs Professional : C'est un solution pour entreprise identique à EncryptedRunAs cité au-dessus.
    Nécessite d'être installer sur la machine pour fonctionner.
    Licenses de 10€ à 2800€.
    Site officiel - Télécharger RunAs Professionnal
  • Lsrunase : C'est un outil sans interface graphique, utilisable uniquement en ligne de commandes, gratuit, qui remplace l'outil RunAs de Windows en ajoutant la saisie du mot de passe directement à l'appel de la commande et en l'encryptant.
    Pas besoin de l'installer pour l'utiliser.
    Site officiel - Telecharger Lsrunase


N'hésitez pas à me poser des questions ou à laisser des commentaires !

Libellés : , ,



 

2 Commentaires:

Anonymous Anonyme a dit ...

Merci beaucoup pour cet article !

Clair et agrémenté de solutions multiples !
Je l'ai cherché, vous l'avez trouvé et expliqué...

Greg.

9:24 AM  
Anonymous Anonyme a dit ...

Explications claires et précises.
Merci.

8:49 PM  

Enregistrer un commentaire

<< Accueil du blog