Page 1 sur 1
[R] Gestion d'un proxy via AutoIT
Posté : lun. 05 mars 2012 22:01
par Hackoo
Salut à Toutes et à Tous,
Je suis nouveau ici et je viens juste de découvrir AutoIT. Actuellement, j'ai accès à internet via un proxy dans notre établissement (Lycée).Les profs utilisant internet ne doivent pas donner le login et le mot de passe aux élèves (prescription du ministère de l'éducation) et doivent par conséquent entrer les données eux-mêmes pour chaque poste, ce qui est long et fatiguant.
il s'agit d'un
HTTP_Authentification via
un Serveur Proxy:Serveur Mandataire
Alors il m'ont conseiller que ceci est réalisable avec AutoIT :
"prendre un utilitaire comme winspy et vérifier si le dialogue d'authentification proxy est bien un simple dialogue win32 avec des contrôles combobox et edit.si oui, alors utiliser un composant comme AutoItX qui possède des fonctions fiables d'injection de texte dans ce genre de champs."
Merci de Votre éventuel Aide !

Re: [..] Gestion d'un proxy via AutoIT
Posté : mar. 06 mars 2012 09:28
par TommyDDR
Tout d'abord, je tiens à vous féliciter pour votre présentation de message (étant donné que c'est votre 1er post), vous êtes sur la bonne voie.
Ensuite, vous ne pourrez malheureusement pas pas procéder sainement avec AutoIt (même si en tant qu'élève, cela ne doit pas vous déranger voire même vous arranger ^^). En effet, tout mot de passe contenu dans un programme (d'autant plus si ce programme est de l'AutoIt) est retrouvable.
Et je doute que vos professeurs accepte cette part de "non sécurisation" du mot de passe.
Re: [..] Gestion d'un proxy via AutoIT
Posté : mar. 06 mars 2012 11:08
par Hackoo
TommyDDR a écrit :
Et je doute que vos professeurs accepte cette part de "non sécurisation" du mot de passe.
Je crois que je me suis mal exprimé , en faite je suis Professeur dans cet établissement

et on a pensé de résoudre ceci par le Vbscript en utilisant la méthode sendkeys mais hélas ceci n'est pas fiable à 100% et voila
le lien d'origine de cette Problématique.
Merci encore une autre fois de vos conseils

Re: [..] Gestion d'un proxy via AutoIT
Posté : mar. 06 mars 2012 12:05
par mikell
Difficile de répondre si on ne peut pas afficher la fenêtre en question
La méthode dans ce cas consisterait à utiliser l'AutoIt info tool qui est semblable à winspy (C:\Program Files\AutoIt3\Au3Info.exe) pour obtenir les références de cette fenêtre et surtout de ses controles
Ensuite le script devient facile, avec ces références on peut gérer la fenêtre et utiliser les fonctions autoit ControlCommand, ControlSend, ControlSetText, ControlClick etc, qui sont beaucoup plus ciblées que les simples Send et MouseClick
Si tu postes ces références alors on peut te faire le script
Re: [..] Gestion d'un proxy via AutoIT
Posté : mar. 06 mars 2012 12:25
par lesolutionneur
Si vous voulez, vous pourrez m'envoyer le programme et je vous le crypterais, comme ça, aucun petit malin d'élèves ne pourra le décompiler et trouver le mot de passe
Édit: après, je vous conseillerais d'acheter une clé USB genre 32mo: on en trouve pour des bouchés de pain puis vous faites un ini qui exécute automatiquement le programme quand on branche la clé USB, comme ça, il vous suffit de brancher la clé USB puis la débrancher 2 secs après pour compléter la fenêtre.
Schéma:
Password demandé par proxy --> branchement clé USB --> autoéxecution du programme autoIt --> fenêtre de proxy remplie toute seul en une fraction de second --> le programme met ok à la fenêtre de proxy et de ferme --> débranchement de la clé USB
Comme ça, ça vous prendra à peu près deux secondes pour chaque ordi: il suffira de brancher la clé puis de la débrancher presque immediatement après !
Re: [..] Gestion d'un proxy via AutoIT
Posté : mar. 06 mars 2012 12:39
par Hackoo
mikell a écrit :La méthode dans ce cas consisterait à utiliser l'AutoIt info tool qui est semblable à winspy (C:\Program Files\AutoIt3\Au3Info.exe) pour obtenir les références de cette fenêtre et surtout de ses controles
Ensuite le script devient facile, avec ces références on peut gérer la fenêtre et utiliser les fonctions autoit ControlCommand, ControlSend, ControlSetText, ControlClick etc, qui sont beaucoup plus ciblées que les simples Send et MouseClick
Si tu postes ces références alors on peut te faire le script
Ok voila un exemple similaire (Authentification d'un Routeur ADSL) que j'ai fait avec Info Tool ou il y a les références :
► Afficher le texte
>>>> Window <<<<
Title: Connexion à 192.168.1.1
Class: #32770
Position: 349, 185
Size: 326, 367
Style: 0x94C82BCC
ExStyle: 0x00010501
Handle: 0x0009065A
>>>> Control <<<<
Class: ComboBox
Instance: 1
ClassnameNN: ComboBox1
Name:
Advanced (Class): [CLASS:ComboBox; INSTANCE:1]
ID: 1003
Text:
Position: 116, 184
Size: 194, 22
ControlClick Coords: 22, 9
Style: 0x56000413
ExStyle: 0x00000000
Handle: 0x00070584
>>>> Mouse <<<<
Position: 490, 407
Cursor ID: 0
Color: 0xFFFFFF
>>>> StatusBar <<<<
>>>> ToolsBar <<<<
>>>> Visible Text <<<<
Le serveur 192.168.1.1 à l'adresse DSL Router requiert un nom d'utilisateur et un mot de passe.
Avertissement : ce serveur requiert que votre nom d'utilisateur et votre mot de passe soient envoyés de façon non sécurisée (authentification de base sans connexion sécurisée).
&Nom d'utilisateur :
&Mot de passe :
Mémoriser mon mot de pa&sse
OK
Annuler
>>>> Hidden Text <<<<
Re: [..] Gestion d'un proxy via AutoIT
Posté : mar. 06 mars 2012 13:09
par TommyDDR
lesolutionneur a écrit :Si vous voulez, vous pourrez m'envoyer le programme et je vous le crypterais, comme ça, aucun petit malin d'élèves ne pourra le décompiler et trouver le mot de passe

La question a déjà été traité mainte et mainte fois,
il n'est pas possible de sécuriser à 100% un script AutoIt.
Si vous stockez un mot de passe dans un script, vous savez que vos utilisateurs pourront le récupérer.
Re: [..] Gestion d'un proxy via AutoIT
Posté : mar. 06 mars 2012 13:26
par Hackoo
lesolutionneur a écrit :
Schéma:
Password demandé par proxy --> branchement clé USB --> autoéxecution du programme autoIt --> fenêtre de proxy remplie toute seul en une fraction de second --> le programme met ok à la fenêtre de proxy et de ferme --> débranchement de la clé USB
Votre Schéma me plait et ça pourrai être une solution de stocker les identifiants dans une clé USB transportable avec soi et il me rappelle un Vbscript que j'ai écrit :
Authentification par votre clé usb personnelle
Re: [..] Gestion d'un proxy via AutoIT
Posté : mar. 06 mars 2012 13:35
par mikell
Hackoo a écrit :Ok voila un exemple similaire ou il y a les références :
► Afficher le texte
>>>> Window <<<<
Title: Connexion à 192.168.1.1
Class: #32770
Position: 349, 185
Size: 326, 367
Style: 0x94C82BCC
ExStyle: 0x00010501
Handle: 0x0009065A
>>>> Control <<<<
Class: ComboBox
Instance: 1
ClassnameNN: ComboBox1
Name:
Advanced (Class): [CLASS:ComboBox; INSTANCE:1]
ID: 1003
Text:
Position: 116, 184
Size: 194, 22
ControlClick Coords: 22, 9
Style: 0x56000413
ExStyle: 0x00000000
Handle: 0x00070584
>>>> Mouse <<<<
Position: 490, 407
Cursor ID: 0
Color: 0xFFFFFF
>>>> StatusBar <<<<
>>>> ToolsBar <<<<
>>>> Visible Text <<<<
Le serveur 192.168.1.1 à l'adresse DSL Router requiert un nom d'utilisateur et un mot de passe.
Avertissement : ce serveur requiert que votre nom d'utilisateur et votre mot de passe soient envoyés de façon non sécurisée (authentification de base sans connexion sécurisée).
&Nom d'utilisateur :
&Mot de passe :
Mémoriser mon mot de pa&sse
OK
Annuler
>>>> Hidden Text <<<<
Bien, là on a les ref pour la fenêtre et la combo
Maintenant faudrait les mêmes pour l'input de mot de passe, la checkbox et le bouton OK
ça doit pouvoir s'obtenir en centrant bien le pointeur du finder-tool sur le controle (qui apparait surligné)
@lesolutionneur
Le ini, OK pour stocker les infos
Mais pour l'exécution c'est pas un ini qu'il faut, c'est un autorun et là l'AV local risque de grimper aux rideaux ^^
Re: [..] Gestion d'un proxy via AutoIT
Posté : mar. 06 mars 2012 14:02
par Hackoo
mikell a écrit :Bien, là on a les ref pour la fenêtre et la combo
Maintenant faudrait les mêmes pour l'input de mot de passe, la checkbox et le bouton OK
ça doit pouvoir s'obtenir en centrant bien le pointeur du finder-tool sur le controle (qui apparait surligné)
Voila encore une autre fois les références j'espère que je n'ai pas oublié un autre controle
► Afficher le texte
>>>> Window <<<<
Title: Connexion à 192.168.1.1
Class: #32770
Position: 349, 185
Size: 326, 367
Style: 0x94C82BCC
ExStyle: 0x00010501
Handle: 0x0009065A
>>>> Control <<<<
Class: ComboBox
Instance: 1
ClassnameNN: ComboBox1
Name:
Advanced (Class): [CLASS:ComboBox; INSTANCE:1]
ID: 1003
Text:
Position: 116, 184
Size: 194, 22
ControlClick Coords: 22, 9
Style: 0x56000413
ExStyle: 0x00000000
Handle: 0x00070584
*********************************************************************************
>>>> Control <<<<
Class: SysCredential
Instance: 1
ClassnameNN: SysCredential1
Name:
Advanced (Class): [CLASS:SysCredential; INSTANCE:1]
ID: 1002
Text:
Position: 11, 184
Size: 299, 99
ControlClick Coords: 51, 25
Style: 0x50030071
ExStyle: 0x00010004
Handle: 0x000506B8
**********************************************************************************
>>>> Control <<<<
Class: Edit
Instance: 2
ClassnameNN: Edit2
Name:
Advanced (Class): [CLASS:Edit; INSTANCE:2]
ID: 1003
Text:
Position: 139, 189
Size: 152, 14
ControlClick Coords: 11, 11
Style: 0x54000080
ExStyle: 0x00000000
Handle: 0x000506AE
>>>> Mouse <<<<
Position: 502, 414
Cursor ID: 0
Color: 0x000000
************************************************************************************
>>>> Control <<<<
Class: Edit
Instance: 3
ClassnameNN: Edit3
Name:
Advanced (Class): [CLASS:Edit; INSTANCE:3]
ID: 1005
Text:
Position: 116, 212
Size: 194, 20
ControlClick Coords: 62, 4
Style: 0x500100A0
ExStyle: 0x00000204
Handle: 0x000506AA
>>>> Mouse <<<<
Position: 530, 430
Cursor ID: 0
Color: 0xFFFFFF
************************************************************************************
>>>> Control <<<<
Class: Button
Instance: 1
ClassnameNN: Button1
Name:
Advanced (Class): [CLASS:Button; INSTANCE:1]
ID: 1007
Text: Mémoriser mon mot de pa&sse
Position: 116, 243
Size: 224, 16
ControlClick Coords: 5, 10
Style: 0x50030003
ExStyle: 0x00000004
Handle: 0x0004074E
>>>> Mouse <<<<
Position: 473, 467
Cursor ID: 0
Color: 0xF5F5F4
*************************************************************************************
>>>> Control <<<<
Class: Button
Instance: 2
ClassnameNN: Button2
Name:
Advanced (Class): [CLASS:Button; INSTANCE:2]
ID: 1
Text: OK
Position: 153, 301
Size: 75, 23
ControlClick Coords: 8, 20
Style: 0x50030000
ExStyle: 0x00000004
Handle: 0x000606BA
>>>> Mouse <<<<
Position: 513, 535
Cursor ID: 0
Color: 0xD6D0C5
**************************************************************************************
>>>> Control <<<<
Class: Button
Instance: 3
ClassnameNN: Button3
Name:
Advanced (Class): [CLASS:Button; INSTANCE:3]
ID: 2
Text: Annuler
Position: 234, 301
Size: 75, 23
ControlClick Coords: 47, 11
Style: 0x50010000
ExStyle: 0x00000004
Handle: 0x000806AE
>>>> Mouse <<<<
Position: 633, 526
Cursor ID: 0
Color: 0xF3F3EF
Re: [..] Gestion d'un proxy via AutoIT
Posté : mar. 06 mars 2012 21:01
par mikell
Bon il est bien évident qu'on avance un peu au pif
Ce qui me dérange c'est ce controle 'SysCredential' qui pourrait bien être une sous-fenêtre
Donc il va falloir tester, faut lancer ce script (qui va tourner en boucle infinie) et ouvrir cette fenêtre "Connexion à 192.168.1.1" pour voir :
► Afficher le texte
Code : Tout sélectionner
While 1
If WinExists("Connexion à 192.168.1.1", "") Then
$hWnd = WinGetHandle("Connexion à 192.168.1.1", "")
WinActivate($hWnd, "")
$hUser = ControlGetHandle($hWnd, "", "[CLASS:Edit; INSTANCE:2]")
ControlSetText($hWnd, "", $hUser, "MyLogin")
$hPass = ControlGetHandle($hWnd, "", "[CLASS:Edit; INSTANCE:3]")
ControlSetText($hWnd, "", $hPass, "MyPassword")
$hCheck = ControlGetHandle($hWnd, "", "[CLASS:Button; INSTANCE:1]")
ControlCommand ($hWnd, "", $hCheck, "check")
; $hOK = ControlGetHandle($hWnd, "", "[CLASS:Button; INSTANCE:2]")
; ControlFocus($hWnd, "", $hOK)
; ControlClick($hWnd, "", $hOK)
; ExitLoop
EndIf
Wend
EDIT
Si les machines acceptent un autorun.inf, alors on peut mettre dedans les identifiants (l'autorun a une structure de fichier ini)
Re: [..] Gestion d'un proxy via AutoIT
Posté : mar. 06 mars 2012 23:09
par Hackoo
Merci Bien
mikell 
ça fonctionne très bien chez-moi et je crois que je commence à aimer AutoIT

Cordialement
► Afficher le texte
Code : Tout sélectionner
While 1
If WinExists("Connexion à 192.168.1.1", "") Then
$hWnd = WinGetHandle("Connexion à 192.168.1.1", "")
WinActivate($hWnd, "")
$hUser = ControlGetHandle($hWnd, "", "[CLASS:Edit; INSTANCE:2]")
ControlSetText($hWnd, "", $hUser, "MyLogin")
$hPass = ControlGetHandle($hWnd, "", "[CLASS:Edit; INSTANCE:3]")
ControlSetText($hWnd, "", $hPass, "MyPassword")
$hCheck = ControlGetHandle($hWnd, "", "[CLASS:Button; INSTANCE:1]")
;ControlCommand ($hWnd, "", $hCheck, "check")
$hOK = ControlGetHandle($hWnd, "", "[CLASS:Button; INSTANCE:2]")
ControlFocus($hWnd, "", $hOK)
ControlClick($hWnd, "", $hOK)
ExitLoop
EndIf
Wend
Re: [..] Gestion d'un proxy via AutoIT
Posté : mer. 07 mars 2012 11:00
par lesolutionneur
La question a déjà été traité mainte et mainte fois, il n'est pas possible de sécuriser à 100% un script AutoIt.
Je peux l'encrypter avec auoIt3cano + cryptage FUD.
Avec ceci, à moins que ses élèves sont excellents en assembleur + ont de grandes compétences, il leur sera impossible de trouver le mot de passe...