
Créer des administrateurs locaux avec l'API SAMR (technique de plus bas niveau). Implémenté en C#, Crystal, Python et Rust
Créez des administrateurs locaux en utilisant l'API SAMR, en opérant à un niveau plus bas que net.exe, New-LocalUser de PowerShell ou l'API NetUserAdd.
Cela nécessite des privilèges d'administrateur et si l'utilisateur existe, il est ajouté au groupe mais le mot de passe n'est pas mis à jour.
Il y a 4 implémentations dans ce dépôt (C#, Python, Rust et Crystal), mais il existe des versions publiques dans d'autres langages comme C++ par @M0nster3 ou un fichier BOF par @AgeloVito.
Ce code sert de complément à cet article de blog sur différentes techniques pour créer des comptes locaux.
Les arguments sont :
-u, --username - Nom d'utilisateur à créer (obligatoire)
-p, --password - Mot de passe pour l'utilisateur (obligatoire)
-g, --group - Nom du groupe (par défaut : "Administrators")
-v, --verbose - Activer le mode verbeux
-h, --help - Afficher le message d'aide
# Utilisation de base
adduser.exe -u <username> -p <password>
# Spécifier un groupe
adduser.exe -u <username> -p <password> -g <group>
# Sortie verbeuse
adduser.exe -u testuser -p MyPass123 -g Administrators -v

L'outil utilise les appels suivants du protocole SAMR :
Compilez en utilisant Visual Studio ou msbuild.
cd Crystal
crystal build adduser.cr --release
.\adduser.exe -u testuser -p MyPass123 -v
Vous pouvez utiliser le script Python :
cd Python
python adduser.py -u testuser -p MyPass123 -v
Ou créez un binaire autonome avec :
cd Python
pyinstaller -F adduser.py
.\dist\adduser.exe -u testuser -p MyPass123 -v
cd Rust && mkdir target
cargo build --release
.\target\release\adduser.exe -u testuser -p MyPass123 -v