Salut à Tous !
Introduction:
Voila comme le titre l'indique "Authentification avec votre clé USB personnelle: c'est comme Trouver la clé à sa serrure !"
Après des décennies, des siècles d’existence et d’évolution, avec quoi ouvrez-vous votre porte d’entrée ? Une clé, évidemment. Alors pourquoi ne pas en faire de même pour votre ordinateur ?

Cela tombe bien, il existe un homonyme informatique qui est également un petit objet, transportable dans une poche toujours avec soi, muni d’un identifiant unique et très difficilement falsifiable, qui en plus permet de stocker des données : c'est votre clé USB .
Alors, je suis entrain de programmer un Script qui simule tout ce que je viens de dire ci-dessus.

Le principe est simple: le script vérifie le numéro d’identification qui est le N° de série de votre clé USB (SerialNumber) et au moment de s’identifier, si il la trouve branchée sur votre système, il lit ces données qu’il y aura placé comme confirmation, ensuite il vous autorise a accéder au système. dans le cas contraire, l'ordinateur va s'éteindre !.

Voila pour commencer un petit script pour tester et vérifier si votre clé USB est connecté ou non, si cette dernière est connectée alors le script nous donne son N° de Série, qu'on va l'utiliser dans le script suivant "AUTHENTIFICATION_PAR_USB.vbs" en remplaçant mon N° Série par le Votre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
'----------------------------NumSerie_Usb.vbs------------------------------
'Tester et vérifier si votre clé USB est connecté ou non, 
'si cette dernière est connectée alors le script nous donne son N° de Série.
'© Hackoo
'--------------------------------------------------------------------------
  Sub NumSerie_Usb()
  Dim NumSerie
  'Retrouver la clé Usb et son numéro de série
  Set fso = CreateObject("Scripting.FileSystemObject")
  For Each Drive In fso.Drives
  If Drive.IsReady Then
  If Drive.DriveType=1 Then
  NumSerie=fso.Drives(Drive + "\").SerialNumber
  MsgBox "La Clé Usb inséré a comme Num° de Série "&NumSerie,64,"Vérification Clé Usb © Hackoo"
  end if
  End If
  Next
  End Sub
 
'------------------------------checkUSB----------------------------
Sub checkUSB
strComputer = "."
On Error Resume Next
Set WshShell = CreateObject("Wscript.Shell")
beep = chr(007)
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive WHERE InterfaceType='USB'",,48)
intCount = 0
For Each drive In colItems
    If drive.mediaType <> "" Then
        intCount = intCount + 1
    End If
Next
If intCount > 0 Then
    MsgBox "Votre Clé USB Personnelle est bien Connectée !",64,"Flash Drive Check © Hackoo!"
	Call NumSerie_Usb() ' Appelle a la procédure NumSerie_Usb()
else
	WshShell.Run "cmd /c @echo " & beep, 0
	wscript.sleep 1000
	MsgBox "Votre Clé USB Personnelle n'est pas Connectée ",48,"Flash Drive Check © Hackoo !"
End If
End Sub
'---------------------------Fin du checkUSB----------------------------
Call checkUSB ' Appelle a la procédure checkUSB
Description du Script: AUTHENTIFICATION_PAR_USB.vbs

Ce Script utilise Le N°de Série de votre clé usb personnelle pour être autorisé a utiliser l'ordinateur.
Dés le démarrage du système , l'utilisateur a trois chances séparés par un intervalle de temps de 10 secondes pour insérer la bonne clé personnelle tout en désactivant le Gestionnaire des Tâches et en tuant l'explorateur windows (explorer.exe).
Si celle-ci aprés une authentification soit la bonne clé, alors l'utilisateur peut poursuivre son travail en quittant ce script, Sinon l'ordinateur va s'éteindre !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
'------------------------AUTHENTIFICATION_PAR_USB.vbs---------------------------------------
'© Hackoo ©
' Description du Ce Script :
' Ce script utilise Le N°de Série de votre clé usb personnelle pour être autorisé a utiliser l'ordinateur.
' Dés le démarrage du système , l'utilisateur a trois chances séparés par un intervalle de temps 
' de 10 secondes pour insérer la bonne clé personnelle tout en désactivant le Gestionnaire des Tâches 
' et en tuant l'explorateur windows (explorer.exe).
' Si celle-ci après une authentification soit la bonne clé, alors l'utilisateur peut poursuivre son travail
' en quittant ce script, Sinon l'ordinateur va s'éteindre !
'© Hackoo ©
'----------------------------------------------------------------------------------------------------------
 
'---------------------------Programme Principal-------------------------------------------
Dim MonScript,cible,Boucle,Count,AppData
Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = WScript.CreateObject("WScript.Shell")
AppData= ws.ExpandEnvironmentStrings("%AppData%")
cible = AppData & "\"
Boucle=True
count = 0
MonScript = wscript.scriptfullname
if (not fso.fileexists(AppData & "\"& MonScript)) then
		fso.copyfile MonScript , cible
		end if
	Shortcut
 
while Boucle ' Tant que la Variable Booléene Boucle est en True on lance La Boucle While
Count = Count + 1 ' Alors on incremente le compteur
MsgBox "POUR ETRE AUTORISE A UTILISER CET ORDINATEUR, VEUILLEZ SVP INSERER VOTRE CLE USB PERSONNELLE POUR L'AUTHENTIFICATION,MERCI !",48,"ESSAI N°  "&Count& "  Vérification de Votre Clé Usb Personnelle © Hackoo !"
wscript.sleep 10000 ' vous avez 10 secondes pour insérer votre clé !
  checkUSB  ' Contrôle de la clé USB si elle est connectée ou non
  Kill_Explorer ' Tuer le Processus d'explorer.exe
  DisableTaskMgr ' Désactiver le Gestionnaire des Tâches
If Count > 2 Then ' Si la le Compteur devient > 2 alors la Boucle devient False et on sort de la Boucle While
   Boucle =False
MsgBox "ATTENTION VOTRE ORDINATEUR VA S'ARRÊTER MAINTENANT !",48,"ESSAI N°  "&Count& "  Vérification Clé Usb © Hackoo !"
    Call ShutDown ' Appelle La Fonction Shutdown pour éteindre l'ordinateur
end if
wend
'----------Fin du Programme Principal---------
 
'-----------------checkUSB()------------------
Sub checkUSB
strComputer = "."
On Error Resume Next
Set WshShell = CreateObject("Wscript.Shell")
beep = chr(007)
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive WHERE InterfaceType='USB'",,48)
intCount = 0
For Each drive In colItems
    If drive.mediaType <> "" Then
        intCount = intCount + 1
    End If
Next
If intCount > 0 Then
    MsgBox "Votre Flash Disk est bien Connecté, On passe a l'Authentification Merci !",64,"Flash Drive Check © Hackoo !"
 
	Verif_Serial_Usb
 
else
	WshShell.Run "cmd /c @echo " & beep, 0
	wscript.sleep 1000
	MsgBox "ATTENTION ! VOTRE FLASH DISK N'EST PAS CONNECTE !",48,"Flash Drive Check © Hackoo !"
End If
End Sub
'---------------Fin checkUSB()----------------
 
'-------------Verif_Serial_Usb()-------------
Sub Verif_Serial_Usb()
Dim SerialNumber,NumSerie
'Boucle=True
SerialNumber = 1021505376 'C'est ici !! que vous devez placer le N°de série de votre clé USB (pour moi 1021505376)
                         'et c'est a vous de le remplacer par le votre,
			 'en utilisant le script NumSerie_Usb.vbs pour Retrouver son numéro de série
  Set fso = CreateObject("Scripting.FileSystemObject")
For Each Drive In fso.Drives
If Drive.IsReady  Then
    If Drive.DriveType=1 Then
	NumSerie=fso.Drives(Drive + "\").SerialNumber
    If SerialNumber=NumSerie then 'Si Le N° de série est bien de votre clé usb 		                             
	MsgBox "La Clé Usb inséré a été Bien Authentifié ! Merci Bien !",64,"Vérification Clé Usb © Hackoo !"
	Call Explorer() 'Lancer l'explorateur Windows explorer.exe
	Call EnableTaskMgr() ' Activer Le Gestionnaire des Tâches
	wscript.Quit() ' Quitter le Script
	    else
	MsgBox  "La Clé Usb inséré n'a pas été Authentifié !",16,"Vérification Clé Usb © Hackoo !"
	    end if
    End If
End If
Next
End Sub
'--------------------Fin du Verif_Serial_Usb()----------
 
'---------------------------Shortcut()------------------
sub Shortcut
dim shell,startupPath,link,temp,FSO,nom,WshNetwork,AppData
Set Shell = CreateObject("WScript.Shell")
startupPath = Shell.SpecialFolders("startup")
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
AppData= Shell.ExpandEnvironmentStrings("%AppData%")
NomScript=wscript.scriptname
Set link = Shell.CreateShortcut(startupPath & "\Windows Update.lnk")
link.Description = "Windows Update"
link.IconLocation = "explorer.exe, 0"
link.TargetPath = AppData & "\" & NomScript
link.WorkingDirectory = AppData
link.Save
end sub
'---------------------Fin du Shortcut()---------------
 
'-----------------------ShutDown()--------------------
Sub ShutDown()
Set WS = CreateObject("WScript.Shell")
    Command = "cmd /C shutdown -s -t 60 -c Arrêt_du_Système_dans_une_Minute_©Hackoo"
    Result = Ws.Run(Command,0,True)
End Sub
'-------------------Fin du ShutDown()-------------
 
'--------------------EnableTaskMgr()--------------
sub EnableTaskMgr
Dim WshShell,System
System="HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\"
Set WshShell=WScript.CreateObject("WScript.Shell")
Wshshell.RegWrite System, "REG_SZ"
WshShell.RegWrite System &"\DisableTaskMgr", 0, "REG_DWORD"
end sub
'-------------Fin du EnableTaskMgr()-----------
 
'----------------DisableTaskMgr()--------------
sub DisableTaskMgr
Dim WshShell,System
System="HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\"
Set WshShell=WScript.CreateObject("WScript.Shell")
Wshshell.RegWrite System, "REG_SZ"
WshShell.RegWrite System &"\DisableTaskMgr", 1, "REG_DWORD"
end sub
'-----------------Fin du DisableTaskMgr()------------
 
'--------------------Kill_Explorer()-------------------
Sub Kill_Explorer
Dim Com,Kill
Set WS = CreateObject("WScript.Shell")
Com="taskkill /f /IM explorer.exe"
kill=Ws.Run(Com,0,True)
end Sub
'----------------Fin du Kill_Explorer()-----------------
 
'--------------------Explorer()-------------------------
Sub Explorer
Set WS = CreateObject("WScript.Shell")
Com="cmd /c start explorer.exe"
Launch=Ws.Run(Com,0,True)
end sub
'---------------Fin du Explorer()------------------------
NB: Il ne faut pas exécuter le script AUTHENTIFICATION_PAR_USB.vbs au premier avant de l'éditer et remplacer mon
N° de série par le votre qui est obtenu par le 1er script sinon vous restez bloquer lors du prochain démarrage de windows, mais si c'est le cas par erreur, alors j'ai prévu un autre script pour déinstaller ce dernier.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
'Ce script sert a déinstaller le script AUTHENTIFICATION_PAR_USB.vbs et de ne pas rester bloquer avec ce dernier !
'© Hackoo ©
'---------------------------------------------------------------------------
Call Supprimer_Script()
Call EnableTaskMgr()
Call Explorer()
Call Kill_wscript
 
'----------------Kill_wscript()--------------
Sub Kill_wscript()
Dim Com,Kill
Set WS = CreateObject("WScript.Shell")
Com="taskkill /f /IM wscript.exe"
kill=Ws.Run(Com,0,True)
end Sub
'------------Fin du Kill_wscript()-----------
 
'------------------Explorer()----------------
Sub Explorer()
Set WS = CreateObject("WScript.Shell")
Com="cmd /c start explorer.exe"
Launch=Ws.Run(Com,0,True)
end sub
'---------------Fin du Explorer()------------
 
'---------------EnableTaskMgr()--------------
sub EnableTaskMgr()
Dim WshShell,System
System="HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\"
Set WshShell=WScript.CreateObject("WScript.Shell")
Wshshell.RegWrite System, "REG_SZ"
WshShell.RegWrite System &"\DisableTaskMgr", 0, "REG_DWORD"
end sub
'-------------Fin du EnableTaskMgr()------------
 
'---------------Supprimer_Script()--------------
Sub Supprimer_Script()
 
Dim destfile,fso,ws,startupPath
Set ws = CreateObject("WScript.Shell")
Set fso = createObject("Scripting.FileSystemObject")
AppData= ws.ExpandEnvironmentStrings("%AppData%")
if  fso.fileexists(AppData & "\AUTHENTIFICATION_PAR_USB.vbs") then
set destfile = fso.GetFile(AppData & "\AUTHENTIFICATION_PAR_USB.vbs")
destfile.Delete 
end if
startupPath = ws.SpecialFolders("startup")
if  fso.fileexists(startupPath & "\Windows Update.lnk") then
set link=fso.GetFile(startupPath & "\Windows Update.lnk")
link.delete
end if 
end Sub
'-------------Fin de Supprimer_Script()------------
Finalement je cherche Maintenant du côté sécurité car ce script n'est pas sécurisé à 100% car n'importe qui peut se logger dans le système sans douleur en mode sans échec.
Donc j'attends de vous quelques propostions et suggestions de codes a ajouter ou bien a supprimer au niveau sécurité pour améliorer ce script. Merci pour votre éventuelle contribution, et vos remarques et vos commentaires sont les bienvenues !