OwnershipStealer
Ce code C# est une application console qui tente de prendre possession d'un fichier spécifié.
Logique du code
Le programme vérifie d'abord si un nom de fichier a été spécifié comme argument de ligne de commande et, si ce n'est pas le cas, invite l'utilisateur à en saisir un. Il tente ensuite de prendre possession du fichier en effectuant les étapes suivantes :
- Obtenir le jeton (token) du processus en cours.
- Rechercher le LUID (Locally Unique Identifier) pour le privilège SeTakeOwnershipPrivilege.
- Activer le privilège SeTakeOwnershipPrivilege dans le jeton.
- Tenter de prendre possession du fichier en créant un nouvel objet FileSecurity pour le fichier, en définissant le propriétaire comme étant l'utilisateur actuel, puis en appliquant le nouveau contrôle d'accès sur le fichier.
- Si le programme rencontre une exception UnauthorizedAccessException, il réessaie jusqu'à ce que la propriété du fichier ait été correctement prise ou qu'une exception soit levée et empêche le programme de continuer.
Une fois la propriété prise, le programme se termine et affiche un message indiquant qu'il a terminé.
Utilisation
- Clonez ou téléchargez le dépôt.
- Ouvrez le projet dans Visual Studio.
- Compilez le projet.
- Ouvrez l'invite de commandes ou le terminal et accédez à l'emplacement du fichier exécutable.
- Exécutez la commande avec le chemin du fichier comme argument :
- OwnershipStealer.exe [chemin du fichier]
- Si aucun chemin de fichier n'est fourni, le programme en demandera un.
Licence
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
Preuve de concept vidéo
https://youtu.be/sOcJp58sblM