Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
PrivescCheck — Script d'énumération d'escalade de privilèges pour Windows | Kitploit
Outils/GitHubGitHub/itm4n/privesccheck
Escalade de PrivilègesAnalyse des VulnérabilitésAudit de ConfigurationCollecte d'InformationsPost-ExploitationTests d'IntrusionTop en Post-Exploitation n°16Top en Escalade de Privilèges n°2
GitHub
3.9k507289il y a 2 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
itm4n/privesccheck

PrivescCheck

Script d'énumération d'escalade de privilèges pour Windows

Voir le dépôt
# PrivescCheck

Identifiez rapidement les **vulnérabilités** Windows courantes et les **problèmes de configuration** qui ne sont pas nécessairement couverts par les standards de sécurité publics, et collectez des informations utiles pour les tâches d'exploitation et de post-exploitation.

> [!IMPORTANT]
> Un aspect majeur à garder à l'esprit lors de l'utilisation de cet outil est que toutes les vérifications de contrôle d'accès sont effectuées dans le contexte de l'utilisateur actuel. Par conséquent, s'il est exécuté avec des privilèges d'administrateur, un grand nombre de vérifications de vulnérabilités sont ignorées afin d'éviter de générer des résultats incorrects.

## Démarrage rapide

Téléchargez le script ici : [PrivescCheck.ps1](https://github.com/itm4n/PrivescCheck/releases/latest/download/PrivescCheck.ps1)

> [!TIP]
> Le lien ci-dessus peut également être utilisé directement dans un terminal PowerShell avec `(New-Object Net.WebClient).DownloadString(...)`.

### Cas d'usage 1 : Évaluation rapide

```bat
powershell -ep bypass -c ". .\PrivescCheck.ps1; Invoke-PrivescCheck -Report TXT,HTML"
```

### Cas d'usage 2 : Évaluation étendue

```bat
powershell -ep bypass -c ". .\PrivescCheck.ps1; Invoke-PrivescCheck -Extended -Report TXT,HTML"
```

### Cas d'usage 3 : Évaluation complète

```bat
powershell -ep bypass -c ". .\PrivescCheck.ps1; Invoke-PrivescCheck -Extended -Audit -Report ALL"
```

## Utilisation détaillée

```txt
Invoke-PrivescCheck [-Extended] [-Audit] [-Risky] [-Report <FORMAT>[,...]]
    [-FilePath <PREFIX>]  [-Silent] [-Force]

    -Extended
        Include all "extended" checks in the scan.

    -Audit
        Include all "audit" checks in the scan.

    -Risky
        Include all "risky" checks in the scan. Those are checks that are
        likely to trigger active EDR counter measures due to their behavior.

    -Report <FORMAT>[,...]
        Specify output report file formats (TXT, HTML, CSV, XML). Use alias
        'ALL' to generate all report files. By default, the output filename
        is automatically generated. Use option '-FilePath' to specify one
        explicitly.

    -FilePath <PREFIX>
        Specify the output report file name or directory. The file extension
        is automatically appended. If a directory path is supplied, the
        filename is automatically generated at runtime.

    -Silent
        Suppress terminal output. This can be useful if you want to run the
        script as part of a batch file, in a scheduled task for instance.

    -Force
        Force execution and ignore warnings. Typically, the script stops if
        it is executed with administrator privileges. Use this option to
        execute it anyway.
```

## Formats de fichier de rapport

### Format de fichier de rapport > TXT

Utilisez l'option `-Report TXT` pour générer un **rapport en texte brut**. La sortie est similaire à la sortie du terminal, sauf qu'elle ne contient que des caractères ASCII pour une meilleure compatibilité avec les éditeurs de texte.

![Capture d'écran d'un rapport en texte brut généré par PrivescCheck](https://assets.kitploit.com/production/public/readmes/411/39eb4cd266494c6b5915b90198f886309702269a1140a9b5f6e9f20d5359bdea.png)

### Format de fichier de rapport > HTML

Utilisez l'option `-Report HTML` pour générer un **rapport HTML**. Le fichier de sortie peut être ouvert dans un navigateur web. Aucune connexion Internet n'est requise car il n'a aucune dépendance externe. Il est plus pratique pour visualiser les données que le rapport en texte brut. De plus, il offre des capacités de **tri** et de **filtrage** !

![Capture d'écran d'un rapport HTML généré par PrivescCheck](https://assets.kitploit.com/production/public/readmes/411/cd685587f4b72a5bd0e5d2cee66a30781da90d21f57d5f72e3c47642f9357eb5.png)

### Format de fichier de rapport > CSV ou XML

Utilisez l'option `-Report CSV` ou `-Report XML` pour générer un **rapport CSV ou XML**. Le fichier de sortie est destiné à faciliter l'analyse des résultats par des outils de reporting automatisés.

> [!NOTE]
> Bien que le format de sortie ne soit pas documenté (pour l'instant), vous pouvez facilement le comprendre en analysant la structure d'un fichier déjà généré. Vous pouvez utiliser la valeur `Id` de chaque vérification comme identifiant unique.

## Types de vérification

### Type de vérification > Base

Les vérifications de type `Base` seront toujours exécutées, sauf si le script est exécuté en tant qu'administrateur. Elles sont principalement destinées à identifier les vulnérabilités d'élévation de privilèges, ou d'autres problèmes importants.

### Type de vérification > Extended

Les vérifications de type `Extended` ne peuvent être exécutées que si l'option `-Extended` est spécifiée sur la ligne de commande. Elles sont principalement destinées à fournir des informations supplémentaires qui pourraient être utiles pour le développement d'exploits, ou la post-exploitation.

### Type de vérification > Audit

Les vérifications de type `Audit` ne peuvent être exécutées que si l'option `-Audit` est spécifiée sur la ligne de commande. Elles sont principalement destinées à fournir des informations pertinentes dans le contexte d'un audit de configuration.

## Astuces & Conseils

### Politique d'exécution PowerShell

Par défaut, la [politique d'exécution](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies) PowerShell est définie sur `Restricted` sur les clients, et `RemoteSigned` sur les serveurs, lorsqu'un nouveau processus `powershell.exe` est démarré. Ces politiques bloquent l'exécution de scripts (non signés), mais elles peuvent être contournées dans la portée actuelle comme suit.

```powershell
Set-ExecutionPolicy Bypass -Scope Process -Force
. .\PrivescCheck.ps1
```

Cependant, cette astuce ne fonctionne pas lorsque la politique d'exécution est imposée via une GPO. Dans ce cas, après avoir démarré une nouvelle session PowerShell, vous pouvez charger le script comme suit.

```powershell
Get-Content .\PrivescCheck.ps1 | Out-String | Invoke-Expression
```

### PowerShell Version 2

Une méthode courante pour contourner le [Constrained Language Mode](https://devblogs.microsoft.com/powershell/powershell-constrained-language-mode/) consiste à utiliser PSv2 car il n'implémente pas cette protection. Par conséquent, une part importante de l'effort de développement est consacrée au maintien de cette rétrocompatibilité.

> [!NOTE]
> Bien que PowerShell version 2 ~~soit encore activé par défaut sur les versions récentes de Windows~~ ([Suppression de PowerShell 2.0 de Windows](https://support.microsoft.com/en-us/topic/powershell-2-0-removal-from-windows-fe6d1edc-2ed2-4c33-b297-afe82a64200a)), il ne peut pas s'exécuter sans le framework .Net version 2.0, ce qui nécessite une installation manuelle.

### Délai d'attente Metasploit

Si vous exécutez ce script dans une session Meterpreter, vous obtiendrez probablement une erreur de "timeout". Cela est dû au fait que Metasploit utilise une valeur de délai d'attente par défaut de 15 secondes, ce qui n'est pas suffisant pour qu'une exécution typique du script se termine.

```console
meterpreter > load powershell
Loading extension powershell...Success.
meterpreter > powershell_import /local/path/to/PrivescCheck.ps1
[+] File successfully imported. No result was returned.
meterpreter > powershell_execute "Invoke-PrivescCheck"
[-] Error running command powershell_execute: Rex::TimeoutError Operation timed out.
```

Il est possible de définir un délai d'attente différent grâce à l'option `-t` de la commande `sessions` ([documentation](https://www.offensive-security.com/metasploit-unleashed/msfconsole-commands/)). Dans l'exemple suivant, un délai d'attente de 2 minutes est défini pour la session avec l'ID `1`, mais vous voudrez peut-être définir une valeur encore plus élevée.

```console
msf6 exploit(multi/handler) > sessions -t 120 -i 1
[*] Starting interaction with 1...
meterpreter > powershell_execute "Invoke-PrivescCheck"
```

## Build

### Mettre à jour les données

Certaines des vérifications reposent sur des données en ligne (*par ex.* la base de données des pilotes LOL), mais le script est conçu pour fonctionner hors ligne. Pour résoudre ce problème, les données sont intégrées dans le script, et doivent donc être régulièrement mises à jour. Ce processus est entièrement automatisé dans la version officielle, mais si vous souhaitez construire le script localement, vous pouvez éventuellement le faire manuellement.

```bat
powershell -ep bypass ". .\build\Build.ps1; Update-LolDriverFile"
```

### Construire le script

Construire le script est aussi simple que d'exécuter la commande ci-dessous. Le fichier de sortie sera enregistré dans le dossier `.\dist\`.

```bat
powershell -ep bypass ". .\build\Build.ps1; Invoke-Build -Name PrivescCheck"
```

Le script de build utilise un générateur de nombres pseudo-aléatoires avec une **graine** générée aléatoirement pour choisir un nom de variable pour chaque module. Si vous souhaitez générer des résultats reproductibles entre les builds, vous pouvez choisir de réutiliser la **graine** précédemment générée en utilisant l'option `-NoNewSeed`.

```bat
powershell -ep bypass ". .\build\Build.ps1; Invoke-Build -Name PrivescCheck -NoNewSeed"
```

## Crédits

- Liste de mots - [CBHue/PyFuscation](https://github.com/CBHue/PyFuscation)
- Liste des pilotes vulnérables connus - [https://www.loldrivers.io/](https://www.loldrivers.io/)
Télécharger l’outil