Windows «Exécuter en tant que» sans connaître le mot de passe

13

Nous installons un système de médias numériques à la station de radio universitaire où je travaille. Nous essayons de donner aux programmeurs (lecture; DJs, pas codeurs) un accès à la musique, sans leur permettre de copier quoi que ce soit sur leurs lecteurs flash ou de la transférer sur Internet.

Nous fonctionnons sur les systèmes Windows (Windows XP pour les machines clientes et Windows Server 2008 pour le serveur multimédia). Mon idée est la suivante.

  • Créez un utilisateur (ProgramUser) qui n'a aucun accès aux médias numériques.
  • Créez un utilisateur (MediaUser) qui a un accès en lecture seule aux médias numériques dont les programmeurs ne savent rien et ne connaissent pas le mot de passe.
  • Demandez aux utilisateurs de se connecter à Windows en tant que ProgramUser, ce qui ne leur donne aucun accès aux médias.
  • Exécutez notre application de lecture ( Traktor ) en tant que MediaUser, permettant au programmeur de lire des médias mais pas de les copier ou de les modifier.

Cela semble être la solution parfaite, mais il y a un problème. Si l'application de lecture ou la machine tombe en panne, le programmeur est la seule personne qui pourra le faire fonctionner à nouveau dans un délai raisonnable (nous sommes une station de radio FM de 15 kW, donc les temps d'arrêt sont un gros problème). D'où mon dilemme ...

Comment donner au programmeur la possibilité de démarrer notre application de lecture en tant qu'utilisateur dont il ne connaît pas le mot de passe?

Peter Mortensen
la source

Réponses:

32

sudo.bat

@echo off
runas /user:Administrator /savecred %1

étonnamment, il ne demandera plus le mot de passe même après un redémarrage ou une panne de courant

jonny
la source
2
+1 pour la bonne réponse. Mon dieu est qu'un trou de sécurité
Dave Cheney
sérieusement, comment cela n'est-il pas connu pour être un trou de sécurité? Pourquoi est-ce ouvert?!
Marm0t
2
Je suis presque sûr que cela ne fonctionne que si le mot de passe du compte a été enregistré dans le gestionnaire d'informations d'identification, donc ce n'est pas vraiment un trou de sécurité pas plus que sur OSX ou tout autre système où les informations d'identification peuvent être enregistrées et réutilisées.
Mark Henderson
Vous devez toujours connaître le mot de passe la première fois, et cela cessera de fonctionner s'il change.
ivan_pozdeev
1

... sans leur permettre de copier quoi que ce soit sur leurs lecteurs flash ou de le transférer sur Internet

Désactivez les lecteurs flash USB, l'accès Internet, etc. sur ces machines.

Duncan Smart
la source
0

Il y a quelques façons dont je peux penser de manière autonome pour peut-être contourner ce problème. La première (et plus difficile) serait d'écrire un petit service Windows qui lance Traktor. Ainsi, le ProgramUser peut demander au service une nouvelle instance de Traktor, et le service s'exécute en tant que MediaUser, donc Traktor est lancé en tant que MediaUser.

Une autre possibilité, et beaucoup plus simple, consiste à configurer un raccourci de démarrage qui lance Traktor à chaque connexion - les raccourcis Windows vous permettent de définir les informations d'identification de l'utilisateur approprié dans les propriétés du raccourci. Si l'ordinateur tombe en panne, les programmeurs ont juste besoin de se connecter et ils ont un nouveau Traktor fonctionnant en tant que MediaUser!

J'espère que l'une de ces solutions fonctionnera pour vous!

Mike
la source
Moi-même et les autres administrateurs sont des ingénieurs logiciels, ce ne sera donc pas un problème. Nous exécutons également un autre service qui surveille notre table de mixage pour les entrées GPIO, c'est donc quelque chose que nous faisons déjà. C'est une excellente idée, merci!
0

Vous pouvez créer un programme qui démarre le processus de MediaUser pour le DJ. Cela peut être fait pour qu'il s'exécute en tant que ProgramUser.

Le mot de passe / informations d'identification pour MediaUser devra être compilé dans le programme, afin qu'il connaisse le mot de passe, mais l'utilisateur final n'aura jamais besoin de le savoir. Ils auraient juste un bouton ou un programme qui dit "Redémarrer Tracktor", et il peut faire tout le travail.

Voici un exemple C # du processus. Le seul changement serait de coder en dur les informations d'identification afin que le DJ ne les voie pas.

Reed Copsey
la source
C'est essentiellement ce que j'allais suggérer, mais avec la mise en garde que c'est la sécurité par l'obscurité. Si les utilisateurs finaux peuvent trouver et exécuter une copie de procmon ou procexp, ils pourront obtenir le mot de passe sans problème.
Ryan Bolger,
@Ryan: Comment obtenez-vous le mot de passe de procmon ou procexp dans cette situation? Vous pouvez obtenir le nom d'utilisateur sous lequel un processus s'exécute, mais je ne pensais pas que vous pouviez obtenir les informations d'identification. Je comprends que le rév. l'ingénierie de l'exécutable avec le mot de passe codé en dur le ferait, mais à part cela, comment obtiendriez-vous ces informations?
0

Jetez un œil à Steel RunAs. Je l'ai utilisé pour plusieurs scripts dans ma carrière SysAdmin quand aucune autre alternative n'était plausible. C'est vraiment pratique. Il génère un fichier exécutable, dans lequel il crypte les informations d'identification stockées. Lien

Nick Jacques
la source
0

La situation idéale serait pour vous de modifier Traktor pour qu'il fonctionne en tant que service, avec une interface graphique distincte. Cela vous donne les meilleures options de sécurité - Traktor s'exécuterait alors en tant qu'utilisateur avec les informations d'identification correctes, et personne n'a besoin de savoir de quoi il s'agit, ou de taper le mot de passe pour le redémarrer. En fait, vous pouvez le faire redémarrer lui-même s'il se bloque dans le composant logiciel enfichable des services.

Votre interface graphique pour piloter Traktor est ensuite écrite comme sa propre application que l'utilisateur exécute en tant que telle, elle envoie des messages au service Traktor (via TCP / IP, RPC, mémoire partagée ou toute autre forme d'IPC) pour lui faire faire ce que le l'utilisateur veut. Si vous avez fait fonctionner l'interface graphique à l'aide d'un protocole inter-réseau (par exemple, TCP / IP), l'utilisateur peut se connecter à son poste de travail et le service traktor peut s'exécuter sur un serveur plus fiable, éventuellement verrouillé pour empêcher les redémarrages "accidentels". Si vous êtes bon, vous pourriez écrire une application Web pour conduire Traktor à la place (c'est-à-dire que le serveur Web enverrait les messages au service) et votre utilisateur pourrait exécuter la station depuis chez lui!

Le service traktor serait démarré avec le serveur, sans avoir besoin d'être connecté.

Peter Mortensen
la source
Idée intéressante, mais Traktor est très propriétaire et n'a pas vraiment d'API. Les seuls points d'intégration sont MIDI, Send Keys et VST Plugins. Bien que l'idée de Traktor en tant que moteur de lecture basé sur des services avec une interface utilisateur personnalisée soit attrayante alors que nous examinons une interface utilisateur personnalisée plus robuste qui gère des choses telles que la création de graphiques et la création de listes de lecture.