` représente l'Identifiant Relatif de l'utilisateur actuel.
+3. Définir `ImagePath` sur le chemin d'exécution du binaire.
+4. Assigner `Type` comme `SERVICE_KERNEL_DRIVER` (`0x00000001`).
```python
# Example Python code to set the registry values
import winreg as reg
@@ -110,7 +110,7 @@ c:\inetpub\wwwwroot\web.config
```
### SeDebugPrivilege
-Ce privilège permet de **déboguer d'autres processus**, y compris de lire et d'écrire dans la mémoire. Diverses stratégies d'injection de mémoire, capables d'échapper à la plupart des solutions antivirus et de prévention des intrusions hôtes, peuvent être employées avec ce privilège.
+Ce privilège permet de **déboguer d'autres processus**, y compris de lire et d'écrire dans la mémoire. Diverses stratégies d'injection de mémoire, capables d'échapper à la plupart des solutions antivirus et de prévention des intrusions sur hôte, peuvent être employées avec ce privilège.
#### Dump mémoire
@@ -160,7 +160,7 @@ Feuille de triche complète des privilèges de jeton à [https://github.com/gtwo
| **`SeCreateToken`** | _**Admin**_ | Outil tiers | Créer un jeton arbitraire incluant des droits d'administrateur local avec `NtCreateToken`. | |
| **`SeDebug`** | _**Admin**_ | **PowerShell** | Dupliquer le jeton `lsass.exe`. | Script à trouver sur [FuzzySecurity](https://github.com/FuzzySecurity/PowerShell-Suite/blob/master/Conjure-LSASS.ps1) |
| **`SeLoadDriver`** | _**Admin**_ | Outil tiers | 1. Charger un pilote de noyau bogué tel que szkg64.sys
2. Exploiter la vulnérabilité du pilote
Alternativement, le privilège peut être utilisé pour décharger des pilotes liés à la sécurité avec la commande intégrée ftlMC
. c'est-à-dire : fltMC sysmondrv
| 1. La vulnérabilité szkg64
est répertoriée comme CVE-2018-15732
2. Le szkg64
code d'exploitation a été créé par Parvez Anwar
|
-| **`SeRestore`** | _**Admin**_ | **PowerShell** | 1. Lancer PowerShell/ISE avec le privilège SeRestore présent.
2. Activer le privilège avec Enable-SeRestorePrivilege.
3. Renommer utilman.exe en utilman.old
4. Renommer cmd.exe en utilman.exe
5. Verrouiller la console et appuyer sur Win+U
| L'attaque peut être détectée par certains logiciels antivirus.
La méthode alternative repose sur le remplacement des binaires de service stockés dans "Program Files" en utilisant le même privilège
|
+| **`SeRestore`** | _**Admin**_ | **PowerShell** | 1. Lancer PowerShell/ISE avec le privilège SeRestore présent.
2. Activer le privilège avec Enable-SeRestorePrivilege).
3. Renommer utilman.exe en utilman.old
4. Renommer cmd.exe en utilman.exe
5. Verrouiller la console et appuyer sur Win+U
| L'attaque peut être détectée par certains logiciels antivirus.
La méthode alternative repose sur le remplacement des binaires de service stockés dans "Program Files" en utilisant le même privilège
|
| **`SeTakeOwnership`** | _**Admin**_ | _**Commandes intégrées**_ | 1. takeown.exe /f "%windir%\system32"
2. icalcs.exe "%windir%\system32" /grant "%username%":F
3. Renommer cmd.exe en utilman.exe
4. Verrouiller la console et appuyer sur Win+U
| L'attaque peut être détectée par certains logiciels antivirus.
La méthode alternative repose sur le remplacement des binaires de service stockés dans "Program Files" en utilisant le même privilège.
|
| **`SeTcb`** | _**Admin**_ | Outil tiers | Manipuler des jetons pour inclure des droits d'administrateur local. Peut nécessiter SeImpersonate.
À vérifier.
| |
diff --git a/src/windows-hardening/windows-local-privilege-escalation/privilege-escalation-abusing-tokens/README.md b/src/windows-hardening/windows-local-privilege-escalation/privilege-escalation-abusing-tokens/README.md
index 7bd8f3728..b1b82bff3 100644
--- a/src/windows-hardening/windows-local-privilege-escalation/privilege-escalation-abusing-tokens/README.md
+++ b/src/windows-hardening/windows-local-privilege-escalation/privilege-escalation-abusing-tokens/README.md
@@ -10,7 +10,7 @@ Si vous **ne savez pas ce que sont les Windows Access Tokens**, lisez cette page
../access-tokens.md
{{#endref}}
-**Peut-être que vous pourriez être en mesure d'escalader les privilèges en abusant des tokens que vous avez déjà**
+**Peut-être pourriez-vous être en mesure d'escalader les privilèges en abusant des tokens que vous avez déjà**
### SeImpersonatePrivilege
@@ -129,7 +129,7 @@ Si vous voulez obtenir un shell `NT SYSTEM`, vous pouvez utiliser :
- \***\*[**SeDebugPrivilege-Exploit (C++)**](https://github.com/bruno-1337/SeDebugPrivilege-Exploit)\*\***
- \***\*[**SeDebugPrivilegePoC (C#)**](https://github.com/daem0nc0re/PrivFu/tree/main/PrivilegedOperations/SeDebugPrivilegePoC)\*\***
-- \***\*[**psgetsys.ps1 (Script Powershell)**](https://raw.githubusercontent.com/decoder-it/psgetsystem/master/psgetsys.ps1)\*\***
+- \***\*[**psgetsys.ps1 (Powershell Script)**](https://raw.githubusercontent.com/decoder-it/psgetsystem/master/psgetsys.ps1)\*\***
```powershell
# Get the PID of a process running as NT SYSTEM
import-module psgetsys.ps1; [MyProcess]::CreateProcessFromParent(,)
diff --git a/src/windows-hardening/windows-local-privilege-escalation/privilege-escalation-with-autorun-binaries.md b/src/windows-hardening/windows-local-privilege-escalation/privilege-escalation-with-autorun-binaries.md
index c46695eec..10209228e 100644
--- a/src/windows-hardening/windows-local-privilege-escalation/privilege-escalation-with-autorun-binaries.md
+++ b/src/windows-hardening/windows-local-privilege-escalation/privilege-escalation-with-autorun-binaries.md
@@ -1,4 +1,4 @@
-# Élévation de privilèges avec Autoruns
+# Escalade de privilèges avec Autoruns
{{#include ../../banners/hacktricks-training.md}}
@@ -38,7 +38,7 @@ Get-ChildItem "C:\Users\$env:USERNAME\Start Menu\Programs\Startup"
## Registre
> [!NOTE]
-> [Note from ici](https://answers.microsoft.com/en-us/windows/forum/all/delete-registry-key/d425ae37-9dcc-4867-b49c-723dcd15147f) : L'entrée de registre **Wow6432Node** indique que vous exécutez une version 64 bits de Windows. 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.
+> [Note from here](https://answers.microsoft.com/en-us/windows/forum/all/delete-registry-key/d425ae37-9dcc-4867-b49c-723dcd15147f) : L'entrée de registre **Wow6432Node** indique que vous exécutez une version 64 bits de Windows. 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.
### Exécutions
@@ -58,7 +58,7 @@ Get-ChildItem "C:\Users\$env:USERNAME\Start Menu\Programs\Startup"
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 assignée en tant que valeur de données d'une clé est limitée à 260 caractères ou moins.
-**Exécutions de service** (peuvent contrôler le démarrage automatique des services lors du démarrage) :
+**Exécutions de service** (peut contrôler le démarrage automatique des services lors du démarrage) :
- `HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce`
- `HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce`
@@ -145,10 +145,10 @@ Get-ItemProperty -Path 'Registry::HKCU\Software\Wow6432Node\Microsoft\Windows\Ru
- `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 lors de la connexion de l'utilisateur ou du redémarrage du système. L'emplacement du dossier **Démarrage** est défini dans le registre pour les portées **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, ce qui en fait une méthode simple pour planifier l'exécution automatique des programmes.
+Les raccourcis placés dans le dossier **Démarrage** déclencheront automatiquement le lancement de services ou d'applications lors de la connexion de l'utilisateur ou du redémarrage du système. L'emplacement du dossier **Démarrage** est défini dans le registre pour les portées **Local Machine** et **Current User**. 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, ce qui en fait une méthode simple pour programmer des programmes à s'exécuter automatiquement.
> [!NOTE]
-> Si vous pouvez écraser n'importe quel \[User] Shell Folder sous **HKLM**, vous pourrez le pointer vers un dossier contrôlé par vous et placer une porte dérobée qui sera exécutée chaque fois qu'un utilisateur se connecte au système, augmentant ainsi les privilèges.
+> Si vous pouvez écraser n'importe quel \[User] Shell Folder sous **HKLM**, vous pourrez le pointer vers un dossier contrôlé par vous et placer une porte dérobée qui sera exécutée chaque fois qu'un utilisateur se connecte au système, escaladant ainsi les privilèges.
```bash
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Common Startup"
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Startup"
@@ -190,7 +190,7 @@ Get-ItemProperty -Path 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion
### Changer l'invite de commande en mode sans échec
-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é. Mais, il est possible de configurer votre ordinateur pour démarrer automatiquement en ce mode sans avoir besoin d'appuyer sur F8 et de le sélectionner manuellement.
+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 qu'il démarre automatiquement en mode sans échec 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" :
@@ -201,8 +201,8 @@ Dans le Registre Windows sous `HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot`,
5. Réappliquez les attributs de fichier d'origine : `attrib c:\boot.ini +r +s +h`
- **Exploit 1 :** Changer la clé de registre **AlternateShell** permet de configurer un shell de commande personnalisé, potentiellement pour un accès non autorisé.
-- **Exploit 2 (Permissions d'écriture sur PATH) :** Avoir des permissions d'écriture sur n'importe quelle partie de la variable **PATH** du système, surtout 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 est démarré en mode sans échec.
-- **Exploit 3 (Permissions d'écriture sur PATH et 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.
+- **Exploit 2 (Permissions d'écriture PATH) :** 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 est démarré en mode sans échec.
+- **Exploit 3 (Permissions d'écriture PATH et 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 **AlternateShell** actuel, utilisez ces commandes :
```bash
@@ -220,7 +220,7 @@ Active Setup est géré à travers les clés de registre suivantes :
- `HKCU\SOFTWARE\Microsoft\Active Setup\Installed Components`
- `HKCU\SOFTWARE\Wow6432Node\Microsoft\Active Setup\Installed Components`
-Au sein de ces clés, divers sous-clés existent, chacune correspondant à un composant spécifique. Les valeurs clés d'un intérêt particulier incluent :
+Dans ces clés, divers sous-clés existent, chacune correspondant à un composant spécifique. Les valeurs clés d'un intérêt particulier incluent :
- **IsInstalled :**
- `0` indique que la commande du composant ne s'exécutera pas.
@@ -243,9 +243,9 @@ reg query "HKCU\SOFTWARE\Wow6432Node\Microsoft\Active Setup\Installed Components
### Aperçu des Objets d'Aide au Navigateur (BHO)
-Les Objets d'Aide au 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** à 1, les empêchant de se charger avec les instances de Windows Explorer.
+Les Objets d'Aide au Navigateur (BHO) sont des modules DLL qui ajoutent des fonctionnalités supplémentaires à Internet Explorer de Microsoft. Ils se chargent dans Internet Explorer et l'Explorateur Windows à chaque démarrage. Cependant, leur exécution peut être bloquée en définissant la clé **NoExplorer** à 1, les empêchant de se charger avec les instances de l'Explorateur Windows.
-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 dans les versions plus récentes de Windows.
+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 versions plus récentes de Windows.
Pour explorer les BHO enregistrés sur un système, vous pouvez inspecter les clés de registre suivantes :
@@ -293,13 +293,13 @@ HKLM\Software\Microsoft\Wow6432Node\Windows NT\CurrentVersion\Image File Executi
```
## SysInternals
-Notez que tous les sites où vous pouvez trouver des autoruns sont **déjà recherchés par** [**winpeas.exe**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS/winPEASexe). Cependant, pour une **liste plus complète des fichiers auto-exécutés**, vous pourriez utiliser [autoruns](https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns) de Sysinternals :
+Notez que tous les sites où vous pouvez trouver des autoruns ont **déjà été recherchés par** [**winpeas.exe**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS/winPEASexe). Cependant, pour une **liste plus complète des fichiers auto-exécutés**, vous pourriez utiliser [autoruns](https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns) de Sysinternals :
```
autorunsc.exe -m -nobanner -a * -ct /accepteula
```
## Plus
-**Trouvez plus d'Autoruns comme des enregistrements dans** [**https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2**](https://www.microsoftpressstore.com/articles/article.aspx?p=2762082&seqNum=2)
+**Trouvez plus d'Autoruns comme les enregistrements dans** [**https://www.microsoftpressstore.com/articles/article.aspx?p=2762082\&seqNum=2**](https://www.microsoftpressstore.com/articles/article.aspx?p=2762082&seqNum=2)
## Références
diff --git a/src/windows-hardening/windows-local-privilege-escalation/sedebug-+-seimpersonate-copy-token.md b/src/windows-hardening/windows-local-privilege-escalation/sedebug-+-seimpersonate-copy-token.md
index 9562a9117..58e0ef3dc 100644
--- a/src/windows-hardening/windows-local-privilege-escalation/sedebug-+-seimpersonate-copy-token.md
+++ b/src/windows-hardening/windows-local-privilege-escalation/sedebug-+-seimpersonate-copy-token.md
@@ -1,11 +1,11 @@
{{#include ../../banners/hacktricks-training.md}}
Le code suivant **exploite les privilèges SeDebug et SeImpersonate** pour copier le jeton d'un **processus s'exécutant en tant que SYSTEM** et avec **tous les privilèges du jeton**. \
-Dans ce cas, ce code peut être compilé et utilisé comme un **binaire de service Windows** pour vérifier qu'il fonctionne.\
+Dans ce cas, ce code peut être compilé et utilisé comme un **binaire de service Windows** pour vérifier son fonctionnement.\
Cependant, la partie principale du **code où l'élévation se produit** se trouve à l'intérieur de la **fonction** **`Exploit`**.\
À l'intérieur de cette fonction, vous pouvez voir que le **processus **_**lsass.exe**_** est recherché**, puis son **jeton est copié**, et enfin ce jeton est utilisé pour lancer un nouveau _**cmd.exe**_ avec tous les privilèges du jeton copié.
-**D'autres processus** s'exécutant en tant que SYSTEM avec tous ou la plupart des privilèges du jeton sont : **services.exe**, **svhost.exe** (l'un des premiers), **wininit.exe**, **csrss.exe**... (_rappelez-vous que vous ne pourrez pas copier un jeton d'un processus protégé_). De plus, vous pouvez utiliser l'outil [Process Hacker](https://processhacker.sourceforge.io/downloads.php) s'exécutant en tant qu'administrateur pour voir les jetons d'un processus.
+**D'autres processus** s'exécutant en tant que SYSTEM avec tous ou la plupart des privilèges du jeton sont : **services.exe**, **svhost.exe** (l'un des premiers), **wininit.exe**, **csrss.exe**... (_rappelez-vous que vous ne pourrez pas copier un jeton d'un processus protégé_). De plus, vous pouvez utiliser l'outil [Process Hacker](https://processhacker.sourceforge.io/downloads.php) exécuté en tant qu'administrateur pour voir les jetons d'un processus.
```c
// From https://cboard.cprogramming.com/windows-programming/106768-running-my-program-service.html
#include
diff --git a/src/windows-hardening/windows-local-privilege-escalation/seimpersonate-from-high-to-system.md b/src/windows-hardening/windows-local-privilege-escalation/seimpersonate-from-high-to-system.md
index 37d4db456..7d4a99e76 100644
--- a/src/windows-hardening/windows-local-privilege-escalation/seimpersonate-from-high-to-system.md
+++ b/src/windows-hardening/windows-local-privilege-escalation/seimpersonate-from-high-to-system.md
@@ -5,7 +5,7 @@
### Code
Le code suivant provient de [ici](https://medium.com/@seemant.bisht24/understanding-and-abusing-access-tokens-part-ii-b9069f432962). Il permet de **spécifier un ID de processus comme argument** et un CMD **s'exécutant en tant qu'utilisateur** du processus indiqué sera exécuté.\
-En s'exécutant dans un processus à haute intégrité, vous pouvez **spécifier le PID d'un processus s'exécutant en tant que System** (comme winlogon, wininit) et exécuter un cmd.exe en tant que système.
+En s'exécutant dans un processus à haute intégrité, vous pouvez **indiquer le PID d'un processus s'exécutant en tant que System** (comme winlogon, wininit) et exécuter un cmd.exe en tant que system.
```cpp
impersonateuser.exe 1234
```
diff --git a/src/windows-hardening/windows-local-privilege-escalation/windows-c-payloads.md b/src/windows-hardening/windows-local-privilege-escalation/windows-c-payloads.md
index 94bf055bd..03633ce05 100644
--- a/src/windows-hardening/windows-local-privilege-escalation/windows-c-payloads.md
+++ b/src/windows-hardening/windows-local-privilege-escalation/windows-c-payloads.md
@@ -1,5 +1,3 @@
-{{#include ../../banners/hacktricks-training.md}}
-
# Ajouter un utilisateur
```c
// i686-w64-mingw32-gcc -o scsiaccess.exe useradd.c
diff --git a/src/windows-hardening/windows-security-controls/uac-user-account-control.md b/src/windows-hardening/windows-security-controls/uac-user-account-control.md
index 70ba78d32..cf75ca74f 100644
--- a/src/windows-hardening/windows-security-controls/uac-user-account-control.md
+++ b/src/windows-hardening/windows-security-controls/uac-user-account-control.md
@@ -56,7 +56,7 @@ HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
ConsentPromptBehaviorAdmin REG_DWORD 0x5
```
- Si **`0`**, alors, UAC ne demandera pas (comme **désactivé**)
-- Si **`1`**, l'administrateur est **demandé pour le nom d'utilisateur et le mot de passe** pour exécuter le binaire avec des droits élevés (sur le Bureau Sécurisé)
+- Si **`1`**, l'admin est **demandé pour le nom d'utilisateur et le mot de passe** pour exécuter le binaire avec des droits élevés (sur le Bureau Sécurisé)
- Si **`2`** (**Toujours me notifier**) UAC demandera toujours confirmation à l'administrateur lorsqu'il essaie d'exécuter quelque chose avec des privilèges élevés (sur le Bureau Sécurisé)
- Si **`3`**, comme `1` mais pas nécessaire sur le Bureau Sécurisé
- Si **`4`**, comme `2` mais pas nécessaire sur le Bureau Sécurisé
@@ -152,7 +152,7 @@ Major Minor Build Revision
```
Aussi, en utilisant [cette](https://en.wikipedia.org/wiki/Windows_10_version_history) page, vous obtenez la version de Windows `1607` à partir des versions de build.
-#### Plus de contournements UAC
+#### Plus de contournement UAC
**Toutes** les techniques utilisées ici pour contourner l'AUC **nécessitent** un **shell interactif complet** avec la victime (un shell nc.exe commun n'est pas suffisant).
@@ -164,7 +164,7 @@ Vous pouvez obtenir cela en utilisant une session **meterpreter**. Migrez vers u
### Contournement UAC avec GUI
-Si vous avez accès à une **GUI, vous pouvez simplement accepter l'invite UAC** lorsque vous l'obtenez, vous n'avez pas vraiment besoin de le contourner. Donc, obtenir l'accès à une GUI vous permettra de contourner l'UAC.
+Si vous avez accès à une **GUI, vous pouvez simplement accepter l'invite UAC** lorsque vous l'obtenez, vous n'avez vraiment pas besoin d'un contournement. Donc, obtenir l'accès à une GUI vous permettra de contourner l'UAC.
De plus, si vous obtenez une session GUI que quelqu'un utilisait (potentiellement via RDP), il y a **certains outils qui s'exécuteront en tant qu'administrateur** à partir desquels vous pourriez **exécuter** un **cmd** par exemple **en tant qu'admin** directement sans être à nouveau invité par l'UAC comme [**https://github.com/oski02/UAC-GUI-Bypass-appverif**](https://github.com/oski02/UAC-GUI-Bypass-appverif). Cela pourrait être un peu plus **discret**.
@@ -177,7 +177,7 @@ Si vous ne vous souciez pas d'être bruyant, vous pourriez toujours **exécuter
Si vous jetez un œil à **UACME**, vous remarquerez que **la plupart des contournements UAC abusent d'une vulnérabilité de détournement de DLL** (principalement en écrivant la DLL malveillante sur _C:\Windows\System32_). [Lisez ceci pour apprendre comment trouver une vulnérabilité de détournement de DLL](../windows-local-privilege-escalation/dll-hijacking.md).
1. Trouvez un binaire qui **s'auto-élève** (vérifiez que lorsqu'il est exécuté, il s'exécute à un niveau d'intégrité élevé).
-2. Avec procmon, trouvez des événements "**NAME NOT FOUND**" qui peuvent être vulnérables au **détournement de DLL**.
+2. Avec procmon, trouvez des événements "**NOM NON TROUVÉ**" qui peuvent être vulnérables au **détournement de DLL**.
3. Vous aurez probablement besoin de **écrire** la DLL à l'intérieur de certains **chemins protégés** (comme C:\Windows\System32) où vous n'avez pas de permissions d'écriture. Vous pouvez contourner cela en utilisant :
1. **wusa.exe** : Windows 7, 8 et 8.1. Cela permet d'extraire le contenu d'un fichier CAB à l'intérieur de chemins protégés (car cet outil est exécuté à partir d'un niveau d'intégrité élevé).
2. **IFileOperation** : Windows 10.
@@ -185,6 +185,6 @@ Si vous jetez un œil à **UACME**, vous remarquerez que **la plupart des contou
### Une autre technique de contournement UAC
-Consiste à surveiller si un **binaire auto-élévé** essaie de **lire** dans le **registre** le **nom/chemin** d'un **binaire** ou **commande** à exécuter (c'est plus intéressant si le binaire recherche cette information à l'intérieur du **HKCU**).
+Consiste à surveiller si un **binaire auto-élévé** essaie de **lire** dans le **registre** le **nom/chemin** d'un **binaire** ou **commande** à **exécuter** (c'est plus intéressant si le binaire recherche cette information à l'intérieur du **HKCU**).
{{#include ../../banners/hacktricks-training.md}}
diff --git a/theme/book.js b/theme/book.js
index 1c8d77287..ccba50404 100644
--- a/theme/book.js
+++ b/theme/book.js
@@ -590,6 +590,61 @@ function playground_text(playground, hidden = true) {
});
})();
+
+(function menubarLanguage() {
+ var menubarLanguageToggleButton = document.getElementById('menubar-languages-toggle');
+ var menubarLanguagePopup = document.getElementById('menubar-languages-popup');
+ var languageButtons = menubarLanguagePopup.querySelectorAll('.menu-bar-link');
+
+ function showLanguage() {
+ menubarLanguagePopup.style.display = 'flex';
+ menubarLanguageToggleButton.setAttribute('aria-expanded', true);
+ }
+
+ function hideLanguage() {
+ menubarLanguagePopup.style.display = 'none';
+ menubarLanguageToggleButton.setAttribute('aria-expanded', false);
+ menubarLanguageToggleButton.focus();
+ }
+
+ menubarLanguageToggleButton.addEventListener('click', function () {
+ if (menubarLanguagePopup.style.display === 'flex') {
+ hideLanguage();
+ } else {
+ showLanguage();
+ }
+ });
+
+ menubarLanguagePopup.addEventListener('focusout', function(e) {
+ // e.relatedTarget is null in Safari and Firefox on macOS (see workaround below)
+ if (!!e.relatedTarget && !menubarLanguageToggleButton.contains(e.relatedTarget) && !menubarLanguagePopup.contains(e.relatedTarget)) {
+ hideLanguage();
+ }
+ });
+
+ // Should not be needed, but it works around an issue on macOS & iOS: https://github.com/rust-lang/mdBook/issues/628
+ document.addEventListener('click', function(e) {
+ if (menubarLanguagePopup.style.display === 'block' && !menubarLanguageToggleButton.contains(e.target) && !menubarLanguagePopup.contains(e.target)) {
+ hideLanguage();
+ }
+ });
+
+ languageButtons.forEach((btn) => {
+ btn.addEventListener('click', function(e) {
+ const regex = /(?:(?:\/)+(?[a-z]{2}(?=\/|$)))?(?(?:\/)*.*)?/g
+ var match = regex.exec(window.location.pathname)
+
+ var path = match.groups.path
+ console.log(`Path: ${path} ${typeof path}`)
+
+ const lang = match.groups.lang
+ console.log(`Lang: ${lang}`)
+
+ window.location = `/${e.target.id}${path}${window.location.hash}`
+ });
+ })
+})();
+
(function chapterNavigation() {
document.addEventListener('keydown', function (e) {
if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) { return; }
diff --git a/theme/css/chrome.css b/theme/css/chrome.css
index 8cbda7c69..ead7ee881 100644
--- a/theme/css/chrome.css
+++ b/theme/css/chrome.css
@@ -83,6 +83,13 @@ body.sidebar-visible #menu-bar {
}
}
+.right-buttons .icons {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ column-gap: 0.5rem;
+}
+
.icon-button {
border: none;
background: var(--bg);
@@ -139,10 +146,13 @@ body.sidebar-visible #menu-bar {
/* Collapse Menu Popup */
+#menubar-collapse-toggle {
+ position: relative;
+}
#menubar-collapse-popup {
position: absolute;
- right: 30px;
- top: var(--menu-bar-height);
+ right: 0px;
+ top: 35px;
z-index: 105;
border-radius: 5px;
font-size: 14px;
@@ -172,6 +182,44 @@ body.sidebar-visible #menu-bar {
background-color: var(--theme-hover);
}
+/* Languages Menu Popup */
+#menubar-languages-toggle {
+ position: relative;
+}
+
+#menubar-languages-popup {
+ position: absolute;
+ right: 0px;
+ top: 35px;
+ z-index: 105;
+ border-radius: 5px;
+ font-size: 14px;
+ color: var(--fg);
+ background: var(--bg);
+ border: 1px solid var(--table-border-color);
+ margin: 0;
+ padding: 0px;
+ display: none;
+ flex-direction: column;
+ max-height: 300px;
+ width: 150px;
+ overflow: scroll;
+}
+#menubar-languages-popup .menu-bar-link {
+ border: 0;
+ margin: 0;
+ padding: 8px 20px;
+ line-height: 25px;
+ white-space: nowrap;
+ text-align: start;
+ cursor: pointer;
+ color: inherit;
+ background: inherit;
+ font-size: inherit;
+}
+#menubar-languages-popup .menu-bar-link:hover {
+ background-color: var(--theme-hover);
+}
.left-buttons {
display: flex;
diff --git a/theme/index.hbs b/theme/index.hbs
index ecd2565f4..95c964391 100644
--- a/theme/index.hbs
+++ b/theme/index.hbs
@@ -144,34 +144,60 @@