Exécution d'applications sous un compte administrateur

Principes

Certaines applications ou tâches diverses nécessitent d'être exécutées avec des privilèges de compte administrateur. Or si l'utilisateur en cours n'appartient pas à ce groupe, cela est impossible. Afin de contourner cette difficulté, Microsoft a prévu deux outils :

Le problème majeur posé par ces deux outils est que l'administrateur doit être présent physiquement près de l'ordinateur de l'utilisateur afin de saisir de façon interactive son nom et mot de passe (et si l'administrateur communique ces informations, cela remet en cause la sécurité du système).

En particulier, ni SU, ni RUNAS ne permettent d'intégrer dans une ligne de commande le mot de passe de l'administrateur, qui doit obligatoirement être saisi dynamiquement (exception faite de RUNAS sous Windows XP PRO, avec le commutateur /savecred, qui permet de mémoriser ce mot de pase pour une exécution ultérieure, mais qui est peu pratique).

Le script xrunas.vbs que j'ai écrit contourne cette difficulté, mais la sécurité est considérablement compromise, puisque le mot de passe du compte administrateur va apparaître en clair dans la commande du script.

C'est pourquoi j'ai conçu SUPEREXEC, logiciel utilitaire (écrit en Delphi), qui affranchit de la contrainte de saisie en temps réel du mot de passe tout en garantissant la sécurité du système.

SUPEREXEC fonctionne sous les systèmes d'exploitation suivants :
  • Windows 2000 (Professionnel et Serveur)
  • Windows XP (Professionnel et Édition Familiale)
  • Windows 2003

(Il ne fonctionne pas sous Windows NT4 car certaines fonctions réseau et de chiffrement sont absentes dans ce système)

Il permet de préparer une exécution, en enregistrant dans la Base de Registres (branche HKLM) les informations chiffrées suivantes :

TOUTES ces informations sont intégralement CHIFFRÉES dans la Base de Registres.
(à l'aide de l'API de chiffrement de Windows)

SUPEREXEC se compose de 2 exécutables :

Dans les versions antérieures à la V2.0, il n'y avait qu'un seul exécutable, qui détectait le niveau de privilèges de l'utilisateur, et servait aussi bien à la préparation qu'à l'exécution des applications. Compte tenu de la taille grossissante du logiciel (900 ko) il a été décidé de scinder en 2 ces fonctionnalités, afin d'obtenir une taille raisonnable pour le module runtime (150 ko).

Préparation des applications (mode administrateur)

SUPEREXEC fonctionne à la fois localement et à distance, si bien qu'il est possible de gérer de la même façon aussi bien l'ordinateur local que les ordinateurs de n'importe quel groupe de travail ou domaine accessible depuis le réseau.

Quand un administrateur lance SUPEREXEC, une boite de dialogue s'affiche :

 

Cartographie du réseau local (groupes / domaines)

Saisie du compte administrateur et de son mot de passe.
 
 
domaines et groupes de travail
ordinateurs de chaque domaine ou groupe de travail

Chaque champ de saisie est doté d'une bulle d'informations, complétée par un message dans la barre d'état.
Boutons de création, modification et suppression d'applications
 
Saisie manuelle du nom d'un ordinateur
Liste des applications autorisées. Un clic droit sur l'une d'elle affiche des informations détallées.
Liste des comptes de l'ordinateur
* groupes locaux
* groupes globaux
* comptes locaux
* comptes globaux
  les comptes et groupes globaux ne figurent que si l'ordinateur appartient à un domaine (affichés en italique)

Boite à onglet affichant
* l'historique des opérations
* un tableau de paramètres
* une aide générale
* la légende des différentes icônes
* la licence du logiciel
* les informations de version.
 

 

* appliquer les modifications opérées (enregistrement dans la Base de Registres)
* vérifier les informations stockées dans la BDR
* tout effacer
* copier le logiciel sur la machine distante
* quitter le logiciel


Pour autoriser une (ou plusieurs) application à un utilisateur, procéder ainsi :
  1. Sélectionner l'ordinateur dans la liste (par défaut, l'ordinateur local est présélectionné)
    un clic droit sur l'un des ordinateurs de la liste provoque l'affichage d'une fenêtre popup d'informations :  
      On peut aussi saisir manuellement le nom de l'ordinateur dans le champ prévu à cet effet (cas d'un ordinateur caché par la commande net server config /hidden:yes)
    Le fait de changer de domaine ou groupe de travail peut nécessiter un certain temps d'attente, pendant lequel le logiciel semble ne pas répondre. Cela est inhérent aux mécanismes de parcours réseau de Windows, et dépend de la configuration du réseau local. Il suffit de patienter.
      En raison des restrictions réseau intrinsèques à Window XP Edition Familiale, SUPEREXEC ne peut pas gérer à distance un ordinateur fonctionnant sous ce système.
    Par contre il fonctionne localement sans problème sous ce système.

     

  2. Sélectionner un ou plusieurs comptes utilisateur dans la liste.
      L'onglet Légende donne les significations des icônes et polices de caractères :
    Par ailleurs, un clic droit sur un compte ou un groupe affiche des informations à son sujet :
      Si on sélectionne un compte désactivé, cette sélection n'est pas prise en compte et il y a apparition de ce message :

  3. Appuyer sur le bouton Nouveau
      Une boite de dialogue à onglets s'ouvre, ave l'onglet Application affiché par défaut :

    Sélectionner le fichier désiré dans le dossier de l'ordinateur voulu.
    Le développement des dossiers est effectué par un simple clic.
    Cette opération peut prendre un certain temps dans le cas de dossiers volumineux.
    Il en va de même si on sélectionne un ordinateur situé dans un autre domaine ou groupe de travail.

    Un filtrage des noms de fichiers est appliqué. Il est fonction des options choisies dans l'onglet Paramètres de la boite de dialogue principale :

    Si le fichier sélectionné n'est pas un exécutable, l'application associée à l'extension du fichier sera automatiquement lancée lors de l'exécution du raccourci par l'utilisateur final.

    On peut accéder aussi bien à l'ordinateur local (choix par défaut, avec %systemroot% comme dossier initial) qu'à n'importe quel ordinateur du réseau, de tout domaine ou groupe de travail. Il suffit que le compte administrateur sous lequel on a lancé SUPEREXEC soit bien administrateur de l'ordinateur distant concerné. (les partages administratifs sont utilisés).
       

     

     

     

     

     



    définir
    éventuellement les paramètres qui seront passés à l'application :

    Dans le cas où l'application choisie est en mode console, une case à cocher permet de maintenir ouverte la fenêtre à la fin de l'exécution.

    Les paramétrages suivants, réalisés depuis les autres onglets de la boite de dialogue, sont facultatifs.
      Onglet Dossier de travail
    On y définit :
    • le dossier de travail de l'application (obligatoirement sur l'ordinateur de l'utilisateur)

       
    • le profil qui sera utilisé
      Ce profil peut-être :
      • celui de l'utilisateur
      • celui de l'administrateur
      Cela affecte essentiellement les variables d'environnement telles que
      • %USERPROFILE%
      • %USERNAME%
      • %TEMP%
      • %TMP%

     

      Onglet Raccourci
    On y définit :
    • le libellé du raccourci (par défaut, c'est le nom du fichier sans extension ni chemin qui est retenu)
       
    • l'emplacement du raccourci, qui peut-être :
      • le bureau
      • le dossier de démarrage du menu démarrer
      • la clef runonce de la base de registres
        Cela est utile pour l'installation de logiciels avec de privilèges administrateur. L'entrée dans la clef étant automatiquement supprimée après exécution.

     

      Onglet limitations
    On y définit éventuellement :
    • une Date limite et définir une date limite d'exécution de l'application sélectionnée.
      Si c'est le cas, l'utilisateur n'aura plus le droit d'exécuter l'application passé cette date.
       
    • un Compteur d'exécution de l'application sélectionnée.
      Si c'est le cas, l'utilisateur ne pourra exécuter l'application que ce nombre de fois au maximum.
       
    • l'affichage (ou non) des messages de dépassements. Par exemple, il peut être souhaitable de désactiver cet affichage dans le cas d'installation silencieuse de logiciel.

       

     


    Si on définit une date antérieure à la date actuelle, un message le signale et une icône apparaît dans la liste des applications

  4. Appuyer sur le bouton OK
     
  5. Une nouvelle application apparaît dans la liste :
    Un clic droit sur la nouvelle application affiche une fenêtre popup résumant ses propriétés:

    On peut changer les paramètres de l'application à tout moment en appuyant sur le bouton Modifier, et même la retirer de la liste à l'aide du bouton Supprimer.
    Si des applications périmées (soit par la date, soit parce que le nombre d'exécutions a été dépassé), un bouton Retirer permet de retirer en une seule manoeuvre toutes ces applications.

     

  6. Une fois qu'on a fini de modifier la liste des applications pour les différents comptes d'un ordinateur, on appuie sur le bouton Appliquer.
    Cela se traduit par :
    1. le chiffrement et l'enregistrement de toutes les données dans la Base de Registres de l'ordinateur sélectionné
    2. la création automatique de tous les raccourcis correspondants, suivant le cas :
      • sur le bureau de l'utilisateur (ou de "All users" si l'application concerne un groupe d'utilisateurs).
      • dans le menu de démarrage de l'utilisateur (ou de "All users")
      • dans la clef HKCU\Software\Microsoft\Windows\CurrentVersion\Runonce (uniquement si l'application concerne un utilisateur, et non pas un groupe)

      Chaque raccourci a les caractéristiques suivantes :

      • il pointe vers SE.EXE, le runtime de SUPEREXEC, auquel est passé en paramètre le nom de l'application (ou fichier) autorisée.
      • Son icône est celle de l'application (ou de l'application associée dans le cas d'un fichier non exécutable)
      • Le libellé (défini par l'administrateur ou généré automatiquement) est suivi de la chaîne [ADM], afin d'indiquer son caractère spécial
         
    3. la copie automatique de  SE.EXE dans le dossier %systemroot% de l'ordinateur sélectionné
      (seulement dans le cas ou l'ordinateur est distant, et si SE.EXE est inexistant ou de version antérieure sur cette machine)
       
  7. A partir de cet instant, l'utilisateur peut exécuter les applications qui lui ont été autorisées.
     
Attention dans le choix des applications autorisées!
Il faut absolument, dans la mesure du possible, éviter d'autoriser des applications permettant de lancer d'autres applications, car ces dernières seront exécutées également avec des privilèges administrateur.

Par exemple si on autorise le processeur de commandes (%systemroot%\system32\CMD.EXE), l'utilisateur pourra exécuter n'importe quel autre logiciel, script, composant enfichable,..., avec des droits administrateur.

Exécution des applications (Mode utilisateur)

Il permet l'exécution d'application via SE (avec les privilèges administrateur)

Un utilisateur non administrateur peut ainsi lancer une application :

Différents contrôles sont réalisés :

Téléchargement et installation

SUPEREXEC est entièrement gratuit.

Il s'installe (sous un compte administrateur) à partir d'un fichier auto extractible installSE.exe
(lui même contenu dans un fichier compressé installSE.zip)


L'installation extrait 5 fichiers :

Aucun autre fichier n'est nécessaire.
Un raccourci est créé sur le bureau ainsi que deux raccourcis dans le menu démarrer (un pour lancer SUPEREXEC et un pour le désinstaller)

Il est disponible en deux langues :

installSE.zip (français) 578 ko
installSE.zip (anglais) 577 ko

Historique