Privilege Escalation with Autoruns
Last updated
Last updated
Astuce de prime de bug : inscrivez-vous à Intigriti, une plateforme de prime de bug premium créée par des pirates informatiques, pour les pirates informatiques ! Rejoignez-nous sur https://go.intigriti.com/hacktricks aujourd'hui, et commencez à gagner des primes allant jusqu'à 100 000 $ !
Wmic peut être utilisé pour exécuter des programmes au démarrage. Voir quels binaires sont programmés pour s'exécuter au démarrage avec :
Les tâches peuvent être planifiées pour s'exécuter à une certaine fréquence. Voir quels binaires sont planifiés pour s'exécuter avec :
Tous les binaires situés dans les dossiers de démarrage seront exécutés au démarrage. Les dossiers de démarrage courants sont ceux énumérés ci-dessous, mais le dossier de démarrage est indiqué dans le registre. Lisez ceci pour savoir où.
Note à partir d'ici: L'entrée de registre Wow6432Node indique que vous exécutez une version Windows 64 bits. Le système d'exploitation utilise cette clé pour afficher une vue séparée de HKEY_LOCAL_MACHINE\SOFTWARE pour les applications 32 bits qui s'exécutent sur des versions Windows 64 bits.
Registre AutoRun communément connu :
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Wow6432Npde\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\Runonce
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\RunonceEx
Les clés de registre connues sous le nom de Run et RunOnce sont conçues pour exécuter automatiquement des programmes à chaque fois qu'un utilisateur se connecte au système. La ligne de commande attribuée en tant que valeur de données d'une clé est limitée à 260 caractères ou moins.
Exécutions de services (peuvent contrôler le démarrage automatique des services lors du démarrage) :
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServices
HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServices
RunOnceEx:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnceEx
Sur Windows Vista et les versions ultérieures, les clés de registre Run et RunOnce ne sont pas générées automatiquement. Les entrées dans ces clés peuvent soit démarrer directement des programmes, soit les spécifier comme dépendances. Par exemple, pour charger un fichier DLL au démarrage de session, on pourrait utiliser la clé de registre RunOnceEx avec une clé "Depend". Cela est démontré en ajoutant une entrée de registre pour exécuter "C:\temp\evil.dll" lors du démarrage du système :
Exploit 1: Si vous pouvez écrire dans l'un des registres mentionnés dans HKLM, vous pouvez escalader les privilèges lorsqu'un utilisateur différent se connecte.
Exploit 2: Si vous pouvez écraser l'un des binaires indiqués dans l'un des registres de HKLM, vous pouvez modifier ce binaire avec une porte dérobée lorsqu'un utilisateur différent se connecte et escalader les privilèges.
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
Les raccourcis placés dans le dossier Démarrage déclencheront automatiquement des services ou des applications au démarrage de l'utilisateur ou du système. L'emplacement du dossier Démarrage est défini dans le registre pour les scopes Machine Locale et Utilisateur Actuel. Cela signifie que tout raccourci ajouté à ces emplacements Démarrage spécifiés garantira que le service ou le programme lié démarre après le processus de connexion ou de redémarrage, en faisant une méthode simple pour planifier l'exécution automatique de programmes.
Si vous pouvez écraser un [Utilisateur] Shell Folder sous HKLM, vous pourrez le rediriger vers un dossier contrôlé par vous et y placer une porte dérobée qui sera exécutée à chaque fois qu'un utilisateur se connecte au système, permettant ainsi une élévation de privilèges.
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
En général, la clé Userinit est définie sur userinit.exe. Cependant, si cette clé est modifiée, l'exécutable spécifié sera également lancé par Winlogon lors de la connexion de l'utilisateur. De même, la clé Shell est censée pointer vers explorer.exe, qui est le shell par défaut de Windows.
Si vous pouvez écraser la valeur du registre ou le binaire, vous pourrez escalader les privilèges.
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
Vérifiez la clé Run.
Dans le Registre Windows sous HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot
, il y a une valeur AlternateShell
définie par défaut sur cmd.exe
. Cela signifie que lorsque vous choisissez "Mode sans échec avec invite de commande" au démarrage (en appuyant sur F8), cmd.exe
est utilisé. Cependant, il est possible de configurer votre ordinateur pour démarrer automatiquement dans ce mode sans avoir besoin d'appuyer sur F8 et de le sélectionner manuellement.
Étapes pour créer une option de démarrage pour démarrer automatiquement en "Mode sans échec avec invite de commande":
Modifier les attributs du fichier boot.ini
pour supprimer les indicateurs en lecture seule, système et caché : attrib c:\boot.ini -r -s -h
Ouvrir boot.ini
pour l'éditer.
Insérer une ligne comme : multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /SAFEBOOT:MINIMAL(ALTERNATESHELL)
Enregistrer les modifications apportées à boot.ini
.
Réappliquer les attributs de fichier d'origine : attrib c:\boot.ini +r +s +h
Exploitation 1 : Modifier la clé de Registre AlternateShell permet de configurer un shell de commande personnalisé, potentiellement pour un accès non autorisé.
Exploitation 2 (Permissions d'écriture du chemin d'accès) : Avoir des permissions d'écriture sur n'importe quelle partie de la variable PATH du système, en particulier avant C:\Windows\system32
, vous permet d'exécuter un cmd.exe
personnalisé, qui pourrait être une porte dérobée si le système démarre en mode sans échec.
Exploitation 3 (Permissions d'écriture du chemin d'accès et de boot.ini) : L'accès en écriture à boot.ini
permet un démarrage automatique en mode sans échec, facilitant l'accès non autorisé au prochain redémarrage.
Pour vérifier le paramètre actuel de AlternateShell, utilisez ces commandes :
Active Setup est une fonctionnalité de Windows qui s'initialise avant que l'environnement de bureau ne soit entièrement chargé. Il donne la priorité à l'exécution de certaines commandes, qui doivent être terminées avant que la connexion de l'utilisateur ne se poursuive. Ce processus se produit même avant que d'autres entrées de démarrage, telles que celles des sections du registre Run ou RunOnce, ne soient déclenchées.
Active Setup est géré via les clés de registre suivantes :
HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components
HKLM\SOFTWARE\Wow6432Node\Microsoft\Active Setup\Installed Components
HKCU\SOFTWARE\Microsoft\Active Setup\Installed Components
HKCU\SOFTWARE\Wow6432Node\Microsoft\Active Setup\Installed Components
Au sein de ces clés, diverses sous-clés existent, correspondant chacune à un composant spécifique. Les valeurs clés d'intérêt particulier incluent :
IsInstalled :
0
indique que la commande du composant ne s'exécutera pas.
1
signifie que la commande s'exécutera une fois pour chaque utilisateur, ce qui est le comportement par défaut si la valeur IsInstalled
est manquante.
StubPath : Définit la commande à exécuter par Active Setup. Il peut s'agir de n'importe quelle ligne de commande valide, comme le lancement de notepad
.
Informations de sécurité :
Modifier ou écrire dans une clé où IsInstalled
est défini sur "1"
avec un StubPath
spécifique peut entraîner une exécution de commande non autorisée, potentiellement pour une élévation de privilèges.
Modifier le fichier binaire référencé dans n'importe quelle valeur StubPath
pourrait également permettre une élévation de privilèges, en fonction des autorisations suffisantes.
Pour inspecter les configurations de StubPath
à travers les composants Active Setup, ces commandes peuvent être utilisées :
Les Objets d'aide du navigateur (BHO) sont des modules DLL qui ajoutent des fonctionnalités supplémentaires à Internet Explorer de Microsoft. Ils se chargent dans Internet Explorer et Windows Explorer à chaque démarrage. Cependant, leur exécution peut être bloquée en définissant la clé NoExplorer sur 1, les empêchant de se charger avec les instances de Windows Explorer.
Les BHO sont compatibles avec Windows 10 via Internet Explorer 11 mais ne sont pas pris en charge dans Microsoft Edge, le navigateur par défaut des nouvelles versions de Windows.
Pour explorer les BHO enregistrés sur un système, vous pouvez inspecter les clés de registre suivantes :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
Chaque BHO est représenté par son CLSID dans le registre, servant d'identifiant unique. Des informations détaillées sur chaque CLSID peuvent être trouvées sous HKLM\SOFTWARE\Classes\CLSID\{<CLSID>}
.
Pour interroger les BHO dans le registre, ces commandes peuvent être utilisées :
HKLM\Software\Microsoft\Internet Explorer\Extensions
HKLM\Software\Wow6432Node\Microsoft\Internet Explorer\Extensions
Notez que le registre contiendra 1 nouveau registre par dll et sera représenté par le CLSID. Vous pouvez trouver les informations CLSID dans HKLM\SOFTWARE\Classes\CLSID\{<CLSID>}
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Font Drivers
HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Font Drivers
HKLM\SOFTWARE\Classes\htmlfile\shell\open\command
HKLM\SOFTWARE\Wow6432Node\Classes\htmlfile\shell\open\command
Notez que tous les sites où vous pouvez trouver des autoruns sont déjà recherchés par winpeas.exe. Cependant, pour une liste plus complète des fichiers auto-exécutés, vous pourriez utiliser autoruns de SysInternals:
Trouvez plus d'Autoruns comme des registres dans https://www.microsoftpressstore.com/articles/article.aspx?p=2762082&seqNum=2
Conseil de prime de bug : inscrivez-vous à Intigriti, une plateforme de prime de bug premium créée par des hackers, pour des hackers ! Rejoignez-nous sur https://go.intigriti.com/hacktricks aujourd'hui, et commencez à gagner des primes allant jusqu'à 100 000 $ !