VBS et les mots de passe.

Le
Forums Microsoft
Bonjour à toutes et à tous,

Il existe une méthode affreuse pour encoder un script VBS avec l'outil
d'encodage de MS (qui donne du .VBE). Cependant, c'est devenu un peu
obsolète du fait que l'on trouve des softs pour faire l'inverse.

Je rencontre donc deux soucis:

- je crée un script, dans lequel va figurer (en dur) un mot de passe. Ce
n'est pas propre. J'aimerais au contraire que ce mot de passe par une
boîte de dialogue ou un popup. Je sais qu'il existe une dll qui permet
de contrôler ces mdps ou du moins de pouvoir les saisir dans un script
sans qu'ils apparaissent dans le source, mais je ne me rappelle pas le
nom de cette fichue DLL.

- existe-t-il un moyen efficace pour protéger un script (comme on
pouvait le faire autrefois avec un fichier BATtoEXE), en cryptant ou
hash ou autre chose (EFS ne remplit pas cette fonction, les certificats
sont lourds à mettre en place pour quelques malheureux scripts.

Si vous avez une idée .
Merci d'avance et je vous souhaite une bonne journée.

Cordialement,
Forum
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jonathan BISMUTH
Le #702076
Bonjour Yael,

Je vais peut être dire une bêtise mais pourquoi pas ne pas faire un truc du
genre :

Pwd = InputBox("Entrez le mot de passe du compte nécessaire","Demande de mot
de passe")

pour ne plus avoir de mot de passe dans le script?

Sinon, personnellement, j'aurais plutôt tendance à utiliser AutoIT pour
faire des scripts sous forme d'EXE cryptés.
Si tu ne connais pas la syntaxe et ne souhaite l'apprendre, tu peux en
revanche en trois ligne intégrer un vbs, le lancer, le supprimer.

ex:
;## Début script ###

$Vbs = FileInstall ("source_pathscript.vbs", "destination_pathscript.vbs",
1)
RunWait (@ComSpec & " /C " & "cscript destination_pathscript.vbs")
FileDelete ("destination_pathscript.vbs")

;## Fin script ###

Cordialement,
--
Jonathan BISMUTH
MVP Windows Server - Directory Services
MCSE 2000/ADSI-AutoIT Scripter
Transcript (ID: 691839, code: MCSE2000)
www.portail-mcse.net

"Forums Microsoft" news: %
Bonjour à toutes et à tous,

Il existe une méthode affreuse pour encoder un script VBS avec l'outil
d'encodage de MS (qui donne du .VBE). Cependant, c'est devenu un peu
obsolète du fait que l'on trouve des softs pour faire l'inverse.

Je rencontre donc deux soucis:

- je crée un script, dans lequel va figurer (en dur) un mot de passe. Ce
n'est pas propre. J'aimerais au contraire que ce mot de passe par une
boîte de dialogue ou un popup. Je sais qu'il existe une dll qui permet de
contrôler ces mdps ou du moins de pouvoir les saisir dans un script sans
qu'ils apparaissent dans le source, mais je ne me rappelle pas le nom de
cette fichue DLL.

- existe-t-il un moyen efficace pour protéger un script (comme on pouvait
le faire autrefois avec un fichier BATtoEXE), en cryptant ou hash ou autre
chose (EFS ne remplit pas cette fonction, les certificats sont lourds à
mettre en place pour quelques malheureux scripts.

Si vous avez une idée ....
Merci d'avance et je vous souhaite une bonne journée.

Cordialement,
Forum


MClaveau (MVP)
Le #702073
Bonjour !

tendance à utiliser AutoIT pour faire des scripts sous forme d'EXE cryptés.


En fait, pour le cryptage des .EXE AutoIt utilise les fonctionnalités
d'UPX, qui peut être utilisé sur n'importe quel .EXE ; mais c'est une
bonne solution.




--
@-salutations

Michel Claveau

MClaveau (MVP)
Le #702072
Bonjour !

L'idée, c'est de ne pas stocker le mot de passe en clair dans le
script, mais plutôt le MD5 (ou SHAx) du mot de passe.
Ensuite, lorsqu'un utilisateur saisi un mot de passe, on calcule son
MD5, et on compare le résultat.



--
@-salutations

Michel Claveau
Jonathan BISMUTH
Le #702071
Merci pour le petit cours Michel :)
Je l'ignorais complètement !

--
Jonathan BISMUTH
MVP Windows Server - Directory Services
MCSE 2000/ADSI-AutoIT Scripter
Transcript (ID: 691839, code: MCSE2000)
www.portail-mcse.net

"MClaveau (MVP)" news:
Bonjour !

tendance à utiliser AutoIT pour faire des scripts sous forme d'EXE
cryptés.


En fait, pour le cryptage des .EXE AutoIt utilise les fonctionnalités
d'UPX, qui peut être utilisé sur n'importe quel .EXE ; mais c'est une
bonne solution.




--
@-salutations

Michel Claveau





Forums Microsoft
Le #702070
Bonjour !

L'idée, c'est de ne pas stocker le mot de passe en clair dans le script,
mais plutôt le MD5 (ou SHAx) du mot de passe.
Ensuite, lorsqu'un utilisateur saisi un mot de passe, on calcule son
MD5, et on compare le résultat.



============================================================= Bonjour,


Merci à tous d'avoir répondu. Mais, j'ai deux questions:
UPX what's this?

AutoIT semble bien (Je crois que Jonathan est le roi de AutoIT).

Pour être plus clair:

Un opérateur lance au travers d'un navigateur (quelqu'il soit) une page
HTA. Il s'identifie sur un annuaire (username + mdp). En fonction de son
authentification (ce qu'il a droit de faire, son service, son job, ses
actions), une procédure démarre, rapatrie les informations nécessaires à
l'exécution des actions, les stocke sur une machine "x" et coupe la
communication réseau.

Sur sa page HTA, apparaît alors un bouton de connexion.
Il clique ou saisi la touche correspondante au clavier si il n'a pas de
souris.

2 choix:

- il exécute manuellement les tâches qui lui sont actives pour sa
journée, après avoir badgé et saisit son username + mdp (merci Jonathan
pour la solution script). Ce sont des scripts VBS, Python, Perl
(mélangés avec du WSH, WMI et d'autres babioles) qui se lancent et
établissent des rapports de bonne exécution.

- il clique sur un autre bouton: lancement automatique de scripts VBS,
dans lesquels (et là, je ne peux pas faire autrement) se trouvent des
mots de passe en clair. D'où ma demande de protection (cryptage des
fichiers VBS, je me rappelle que quelqu'un de la liste m'avait parlé
d'une DLL que l'on pouvait rajouter pour éviter que les mots de passe
puissent apparaître en clair) ... Si vous avez des infos à ce sujet.

Pourrait-on, par exemple, transformer le contenu du VBS en contenu
illisible, mais pas avec l'encodeur de MS ?

Merci de géniales idées.
Cordialement,
Forum

Méta-MCI \(MVP\)
Le #709505
Bonsoir !


Pour UPX, voir : http://upx.sourceforge.net/


Pour AutoIt :
http://www.autoitscript.com/forum/index.php (forums anglais ;
chercher "Michel Claveau")
http://www.autoitscript.com/ (accueil)
http://www.autoitscript.com/forum/index.php?showtopic717
(dernières betas)

Il existait un forum français ; mais, il a changé d'URL voici quelques
mois, et, depuis, je n'y ai plus accès...

Mon conseil, sur AutoIt : télécharger le "pack" AutoIt+Scite
pré-paramétré. Ensuite, regarder dans les extensions et les exemples du
forum "exemples scripts".

Mon opinion sur AutoIt : le langage est pourri (vraiment pas terrible),
mais il y a beaucoup d'outils et de fonctions très pratiques. Pour
scripter (ou développer des utilitaires) : très bien. Mais, pour
développer des applis, ce n'est plus ça.

Les 3/4 des outils pour batch que j'ai développés le sont avec AutoIt.


Pour conclure, le meilleur langage (avis purement personnel) : Python.


@-salutations

Michel Claveau
Gilles LAURENT [MVP]
Le #709503
"Forums Microsoft" news:%
| Bonjour à toutes et à tous,

Bonsoir,

[...]
| Ce n'est pas propre. J'aimerais au contraire que ce mot de passe par
| une boîte de dialogue ou un popup.

En complément des réponses précédentes :

1- En ligne de commande (i.e cscript) :

--- GetPassword.vbs (XP/2003) ---
Set oPw=CreateObject("ScriptPW.Password")
WScript.StdOut.Write "Enter Password : "
sPass=oPw.GetPassword()
WScript.Echo
WScript.Echo "Password : " & sPass
--- GetPassword.vbs (XP/2003) ---

2- En GUI avec le composant COM PassDlg.dll de Bill Stewart :
http://www.cybermesa.com/~bstewart/

Le site web semble être définitivement offline :-(
Pas moyen de trouver un site pour télécharger ce composant !
Un aperçu des fonctionnalités via Google's cache :
http://209.85.135.104/search?qÊche:tn-fYfmwdSQJ:internet.cybermesa.com/~bstewart/passdlg/

| - existe-t-il un moyen efficace pour protéger un script (comme on
| pouvait le faire autrefois avec un fichier BATtoEXE), en cryptant ou
| hash ou autre chose (EFS ne remplit pas cette fonction, les
| certificats sont lourds à mettre en place pour quelques malheureux
| scripts.

Je vous invite à lire cette récente discussion :
http://groups.google.fr/group/microsoft.public.fr.scripting/browse_thread/thread/cac4b93ae017841/6a6269f5a7d6d7fc

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
moi
Le #709502
Notre ami Gilles LAURENT [MVP] tapota :

"Forums Microsoft" de news:%
Bonjour à toutes et à tous,



--- GetPassword.vbs (XP/2003) ---
Set oPw=CreateObject("ScriptPW.Password")
WScript.StdOut.Write "Enter Password : "
sPass=oPw.GetPassword()
WScript.Echo
WScript.Echo "Password : " & sPass
--- GetPassword.vbs (XP/2003) ---



En testant , j'obtiens une erreur sur la première ligne :

Erreur : Un composant activeX ne peut pas créer un objet :
"ScriptPW.Password"

Code : 800A01AD

Après enquête et vérification,
%SYSTEM%scriptpw.dll
( la bibliothèque nécessaire),
n'existe pas sur ma machine ...
( XP-Familial SP2 à jour ...)

Est-ce normal docteur ?

HB


Gilles LAURENT [MVP]
Le #709501
"moi" news:

Bonsoir,

| En testant , j'obtiens une erreur sur la première ligne :
| Erreur : Un composant activeX ne peut pas créer un objet :
| "ScriptPW.Password"
| ( XP-Familial SP2 à jour ...)

En effet, cette librairie n'est pas présente dans XP Home Edition.
Toutefois mes recherches m'ont amené sur cet article du MSDN :
http://msdn.microsoft.com/msdnmag/issues/02/05/wsh/default.aspx

<quote>
Incidentally, the component also works under Windows 2000 once you move
the DLL and properly register it as a COM component.
</quote>

Donc je présume que vous pouvez récupérer cette librairie à partir d'un
XP Pro, la copier sur votre plateforme et ensuite l'enregistrer via
l'outil regsvr32.

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
moi
Le #709500
Notre ami Gilles LAURENT [MVP] tapota :

(...)

Donc je présume que vous pouvez récupérer cette librairie à partir
d'un XP Pro, la copier sur votre plateforme et ensuite l'enregistrer
via l'outil regsvr32.


Effectivement, comme souvent
le fichier est manquant
mais rien ne lui interdit d'être là ;o)


Merci,

HB

Publicité
Poster une réponse
Anonyme