Marre de devoir attendre que le bureau Windows Server 2016/2019 se charge pour chercher votre console d'administration ou peur que le simple fait d'ouvrir la recherche Windows de Windows Server 2012 freeze votre session ?
Voici la liste des commandes les plus utiles pour accéder aux outils d'administration Windows :
Active Directory Domains & Trust |
DOMAIN.MSC |
Active Directory Sites & Services |
DSSITE.MSC |
Active Directory Users & Computers |
DSA.MSC |
Certificates snap-in |
ERTMGR.MSC |
Certification Services |
CERTSRV.MSC |
Command Prompt |
CMD.EXE |
Computer Management |
COMPMGMT.MSC |
Device Manager |
DEVMGMT.MSC |
DHCP Manager |
DHCPMGMT.MSC |
Disk Defragmenter |
DFRG.MSC |
Disk Management |
DISKMGMT.MSC |
Distributed File System |
DFSGUI.MSC |
DNS Manager |
DNSMGMT.MSC |
Domain Controller Security Policy |
DCPOL.MSC |
Domain Security Policy |
DOMPOL.MSC |
Event Viewer |
EVENTVWR.MSC |
Hardware and software configuration information |
MSINFO32.EXE |
Internet Authentication Service |
IAS.MSC |
Internet Information Service (\Windows\system32\inetsrv) |
INETMGR |
local Group Policy Editor |
GPEDIT.MSC |
Local Security Policy |
SECPOL.MSC |
Local Users and Groups |
LUSRMGR.MSC |
Microsoft Management Console |
MMC.EXE |
Performance Monitor |
PERFMON.MSC |
Remote Desktop |
MSTSC |
Resultant Set of Policy |
RSOP.MSC |
Routing and Remote Access |
RRASMGMT.MSC |
Run Registry Editor |
REGEDIT.EXE |
Service Configuration |
SERVICES.MSC |
Shared Folders |
FSMGMT.MSC |
Terminal Services |
TSCC.MSC |
À quoi cela sert-il ?
En réalité, il y a peu de cas pratiques ou trouver le mot de passe d'un réseau wifi précédemment utilisé est utile, car bien souvent, celui-ci étant sauvegardé, il n'y a pas besoin de l'entrer à nouveau.
Alors à quoi cela sert-il ? C'est avant tout pour mettre en relief que certaines cmdlets Windows sont peu sécurisées et révèlent beaucoup d'informations avec peu de privilèges, ce qui est bien évidemment le combo préféré des hackers.
Les commandes
Les commandes ci-après sont exécutés avec un utilisateur qui n'est ni administrateur de la machine ni en mode administrateur
La première commande permet d'afficher les profiles auquel la machine s'est déjà connecté
C:\WINDOWS\System32>netsh wlan show profiles
Profiles on interface Wi-Fi:
Group policy profiles (read only) #Dans le cas d'un PC dans un domaine Active Directory les profiles déployés par GPO sont affichés ci-après
---------------------------------
Profile_entreprise
Profile_entreprise2
User profiles #Les profiles sont affichés ci-après
-------------
All User Profile : MonWifi
All User Profile : Faux_reseau
All User Profile : Toto
Cette commande va afficher le mot de passe du profile appelé en clair
C:\WINDOWS\System32>netsh wlan show profiles MonWifi key=clear
Profile MonWifi on interface Wi-Fi:
=======================================================================
Applied: All User Profile
Profile information
-------------------
Version : 1
Type : Wireless LAN
Name : MonWifi
Control options :
Connection mode : Connect automatically
Network broadcast : Connect only if this network is broadcasting
AutoSwitch : Do not switch to other networks
MAC Randomization : Disabled
Connectivity settings
---------------------
Number of SSIDs : 1
SSID name : "MonWifi"
Network type : Infrastructure
Radio type : [ Any Radio Type ]
Vendor extension : Not present
Security settings
-----------------
Authentication : WPA2-Personal
Cipher : CCMP
Authentication : WPA2-Personal
Cipher : GCMP
Security key : Present
Key Content : MonMotDePasseEnClair #Le mot de passe est affiché en clair
Cost settings
-------------
Cost : Unrestricted
Congested : No
Approaching Data Limit : No
Over Data Limit : No
Roaming : No
Cost Source : Default
Quels sont alors les moyens de se prémunir de cette vulnérabilité ? Les méthodes sont diverses, telles que l'utilisation du 802.1X ou un changement régulier du mot de passe.
Pour aller plus loin
Vidéo youtube qui propose un script python pour automatiser la récupération des mots de passe de tous les profils d'un ordinateur
Ça pique les yeux
Vous avez peut être déjà eu recours à la commande (cmdlet) suivante pour créér un compte dans l'Active Directory (AD) :
New-ADUser -Name $Name -samAccountName $samAccountName -userPrincipalName $UserPrincipalName -Path $Path -AccountPassword $AccountPassword -DisplayName $DisplayName -GivenName $GivenName -sn $sn -Description $Description -Server $Server -ChangePasswordAtLogon -Enabled
Oui ca fait mal aux yeux, mais pourquoi ne pas utiliser le caractère backtick ` qui permet de scinder une cmdlet sur plusieurs lignes ?
New-ADUser -Name $Name -samAccountName $samAccountName
` -userPrincipalName $UserPrincipalName
` -Path $Path -AccountPassword $AccountPassword
` -DisplayName $DisplayName -GivenName $GivenName -sn $sn
` -Description $Description -Server $Server
` -ChangePasswordAtLogon -Enabled
Effectivement, c'est mieux, mais cela n'est toujours pas très esthétique, peut-on faire encore mieux ?
Le splatting
Le splatting permet de passer à une cmdlet un hash table (tableau associatif), array (tableau) ou une liste d'arguments qui va contenir la liste des paramètres voulus
$parameters = @{ #Ceci est un hash table qui va associer à gauche du signe égal le nom du paramètre avec à droite la valeur du dit paramètre
Name = $Name
samAccountName = $samAccountName
userPrincipalName = $userPrincipalName
Path = $Path
AccountPassword = $AccountPassword
DisplayName = $DisplayName
GivenName = $GivenName
sn = $sn
Description = $Description
Server = $Server
ChangePasswordAtLogon = $true
Enabled = $true
}
New-ADUser @parameters #Pour utiliser le splatting il faut passer en paramètre le hash table à l'aide du caractère @ et non $
En plus de rendre le code plus lisible, les méthodes associées aux hash table sont désormais accessibles, si par exemple on veut ajouter ou retirer des éléments plus loin dans le code :
$parameters.add('employeeID', $EmployeeID) #Ajout du paramètre à gauche du signe , employeeID et à droite la valeur du dit paramètre dans le hashtable $parameters
$parameters.remove('ChangePasswordAtLogon') #Suppression du paramètre ChangePasswordAtLogon du hash table $parameters
Pour aller plus loin
Documentation officielle de Microsoft sur le splatting
Les souscriptions, des ressources Azure aux permissions isolées
Le rôle Azure administrateur global (global administrateur) est le rôle absolu, il octroie le droit de vie ou de mort sur un tenant Azure, cependant, les irrésistibles souscriptions (subscriptions) n'en ont que faire et un global administrator se fera jeter comme un simple utilisateur s'il tente d'accéder à une ressource Azure auquel il n'a pas accès si tenté qu'il puisse déjà la voir, à moins que..
S'octroyer les permissions sur toutes les souscriptions
Il existe une fonctionnalité Azure qui permet à un Global admin de se conférer des droits sur toutes les subscriptions existantes et ceci en un clic, pour ce faire :
Connectez-vous à portal.azure.com avec votre compte Global admin et dans la liste déroulante de gauche, ouvrez Properties
En bas de la fenêtre dans la section Access management for Azure ressources basculez le bouton en Yes
Attention, ce rôle ne fournit pas le rôle Propriétaire (Owner) sur les subscriptons, il fournit le rôle User Access Administrator à la racine ce qui permet d'accéder au RBAC Azure de la subscription et de s'octroyer les droits voulus.
Pensez à retirer vos droits de la subscription avant de basculer à nouveau le bouton évoqué précédemment en No
Pour aller plus loin
Article officiel de Microsoft sur la délégation de permissions sur les souscriptions Azure en tant qu'administrateur global
Article officiel de Microsoft sur le RBAC Azure