Voici un guide complet (en Markdown) pour présenter ce projet à des utilisateurs, même débutants. Il explique :
- Le but du logiciel
- Comment l’utiliser (options, paramètres)
- Les fonctionnalités principales (barre de progression, logs, etc.)
- Quelques exemples de scénarios
Vous pouvez le mettre directement dans un fichier README.md
sur GitHub.
Version Console
Un outil pour exécuter des commandes Windows avec élévation de privilèges et différents modes (TrustedInstaller, SYSTEM, etc.), proposant également le téléchargement et l’utilisation automatique de AdvancedRun.
- Aperçu du projet
- Fonctionnalités principales
- Installation et compilation
- Utilisation
- Fonctionnement interne
- Contact & Remerciements
Elevation Exploit (powered by danbenba) est un petit outil en C# qui permet :
- De lancer une commande Windows (par ex.
cmd.exe
,powershell.exe
, etc.) - De forcer l’élévation de privilèges (UAC) si nécessaire, afin de s’exécuter en mode Administrateur.
- D’utiliser différents modes via l’outil AdvancedRun (par ex. TrustedInstaller, SYSTEM, etc.).
- De télécharger automatiquement l’exécutable
AdvancedRun.exe
(si le mode avancé est activé) et de l’exécuter en lui passant la commande choisie. - D’afficher une barre de progression pendant le téléchargement et de logger toutes les informations (barre de progression, messages, etc.) dans la console ou dans un fichier
.log
.
Ce programme est particulièrement utile dans un contexte où l’on souhaite tester, debugger ou administrer un système avec différents niveaux de privilèges (par exemple pour des tâches de maintenance ou d’analyse).
-
Élévation UAC :
- Le programme vérifie s’il est déjà lancé en tant qu’administrateur. Si non, il se relance automatiquement avec
Verb=runas
pour obtenir le prompt UAC.
- Le programme vérifie s’il est déjà lancé en tant qu’administrateur. Si non, il se relance automatiquement avec
-
Modes d’exécution (RunAs) via AdvancedRun :
1
: Utilisateur actuel avec autorisation d’élévation3
: Administrateur forcé8
: TrustedInstaller4
: Système, etc.
(Voir la liste complète plus bas.)
-
Téléchargement automatique d’AdvancedRun :
- Par défaut depuis un lien GitHub
- S’enregistre dans
AppData\Temp
- Extraction automatisée du
.zip
-
Logs :
- Affichage en console avec couleurs (Info, Erreur, Succès, Avertissement).
- Option pour sauvegarder dans un fichier
.log
.
-
Barre de progression pendant le téléchargement :
- Affichage d’une jauge ASCII :
[#####-----] 50%
- Affichage d’une jauge ASCII :
-
Arguments supplémentaires :
- Possibilité de passer des arguments additionnels à la commande (par ex.
cmd.exe /c dir
).
- Possibilité de passer des arguments additionnels à la commande (par ex.
- .NET SDK (version 6, 7, 8, 9 ou supérieure) installé sur la machine.
- Visual Studio, Visual Studio Code, ou tout autre environnement supportant .NET.
-
Cloner ou télécharger ce dépôt.
-
Ouvrir un terminal (ou l’IDE de votre choix) dans le dossier du projet.
-
Taper :
dotnet build --configuration Release
-
Le binaire (exécutable) se trouvera dans :
bin/Release/netX.X/Elevation.exe
(X.X dépend de la version .NET configurée.)
-
Optionnel : Publier en un seul exécutable autonome (self-contained) :
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
Vous obtiendrez alors un fichier
Elevation.exe
unique dansbin/Release/netX.X/win-x64/publish
.
elevation.exe <commande> [options]
<commande>
: La commande Windows à exécuter (par ex.cmd.exe
,powershell.exe
, etc.).
Option | Description |
---|---|
-m <1..11> |
Mode /RunAs d’AdvancedRun (ex: -m 8 = TrustedInstaller). Par défaut : 8 . |
-t | Mode TrustedInstaller. |
-arg "<args>" |
Arguments supplémentaires pour la commande (ex: "/c dir" pour cmd.exe ). |
-s | Sauvegarde les logs dans un fichier .log . |
-e "<chemin>" |
Chemin personnalisé pour le fichier .log (ex: -e "C:\Temp\monfichier.log" ). |
-u "<URL>" |
URL personnalisée pour télécharger AdvancedRun (ex: -u "https://monSite/AdvancedRun.zip" ). |
-h / --help | Affiche l’aide (menu récapitulatif). |
Valeur (-m X ) |
Description |
---|---|
1 | Utilisateur actuel – Autoriser l’élévation (LIAC) |
2 | Utilisateur actuel – Sans élévation (IJAC) |
3 | Administrateur (Forcer l’élévation) |
4 | Utilisateur SYSTEM |
5 | Utilisateur du processus sélectionné |
6 | Descendant du processus sélectionné (injection de code) |
7 | Nom d’utilisateur + mot de passe (login/password spécifiés) |
8 | TrustedInstaller |
9 | Autre utilisateur connecté |
10 | Service réseau |
11 | Service local |
-
Exécuter
cmd.exe
en mode Administrateur forcé (-m 3
) :elevation.exe cmd.exe -m 3
- Le programme lancera
AdvancedRun
en mode 3 pour forcer l’élévation Administrateur. - Affichera le prompt UAC si nécessaire.
- Le programme lancera
-
Exécuter
cmd.exe
en mode TrustedInstaller (-m 8
) + Téléchargement :elevation.exe cmd.exe -t -m 8
- Télécharge AdvancedRun si besoin, puis exécute
cmd.exe
avec/RunAs 8
.
- Télécharge AdvancedRun si besoin, puis exécute
-
Ajouter des arguments supplémentaires à
cmd.exe
:elevation.exe cmd.exe -m 3 -arg "/c dir"
- Lance
cmd.exe /c dir
en mode Administrateur forcé (3).
- Lance
-
Sauvegarder les logs dans un fichier
Elevation.log
:elevation.exe powershell.exe -t -s
- Télécharge AdvancedRun, exécute
powershell.exe
en mode8
(par défaut). - Sauvegarde tous les logs (progression, infos, etc.) dans
Elevation.log
.
- Télécharge AdvancedRun, exécute
-
Spécifier un chemin pour le fichier de logs :
elevation.exe cmd.exe -m 4 -s -e "C:\MonDossier\Logs\myElev.log"
- Lance
cmd.exe
en mode SYSTEM (4). - Les logs seront écrits dans
C:\MonDossier\Logs\myElev.log
.
- Lance
-
Changer l’URL de téléchargement :
elevation.exe cmd.exe -t -u "https://exemple.com/AdvancedRun.zip"
- Télécharge la version d’AdvancedRun située à
https://exemple.com/AdvancedRun.zip
.
- Télécharge la version d’AdvancedRun située à
- Le code vérifie si le processus actuel est déjà Admin :
if (!IsRunningAsAdmin()) { RelaunchAsAdmin(args); return; }
- S’il ne l’est pas, il relance le même exécutable avec
ProcessStartInfo.Verb = "runas"
pour afficher le prompt UAC.
- Lorsque l’option
-t
est utilisée (ou qu’un mode-m X
est spécifié), on appelle :DownloadFileWithProgress(_advancedRunUrl, zipFilePath);
- Le fichier ZIP est placé dans le dossier
AppData\Temp\AdvancedRun.zip
. - Puis on l’extrait via :
ZipFile.ExtractToDirectory(zipFilePath, appDataTemp, true);
- L’exécutable
AdvancedRun.exe
est alors prêt à être lancé.
-
Logs :
- Système de niveaux (Info, Success, Error, Warning).
- Couleurs différentes en console (blanc, vert, rouge, jaune).
- Si
-s
est spécifié, on écrit également dans un fichier.log
.
-
Barre de progression :
- Pendant le téléchargement, on affiche quelque chose du style :
[#####-----] 50%
- Mise à jour en temps réel via l’événement
DownloadProgressChanged
.
- Pendant le téléchargement, on affiche quelque chose du style :
- Auteur : danbenba
- Contributeurs : Toute aide est la bienvenue !
- Pour plus d’infos sur l’API AdvancedRun : NirSoft’s AdvancedRun
- En cas de questions ou de problèmes, n’hésitez pas à ouvrir une issue sur le dépôt GitHub.
Disclaimer : Ce projet est un exemple à visée éducative. Son utilisation relève de la responsabilité de l’utilisateur, et peut nécessiter des privilèges élevés risqués pour le système. N’exécutez ce logiciel que sur vos environnements de test ou systèmes autorisés.