
Cree administradores locales con la API SAMR (técnica de nivel más bajo). Implementado en C#, Crystal, Python y Rust
Crear administradores locales usando la API SAMR, operando a un nivel más bajo que net.exe, el cmdlet New-LocalUser de PowerShell o la API NetUserAdd.
Requiere privilegios de Administrador y si el usuario existe, se añade al grupo pero la contraseña no se actualiza.
Hay 4 implementaciones en este repositorio (C#, Python, Rust y Crystal), pero existen versiones públicas en otros lenguajes como C++ por @M0nster3 o archivo BOF por @AgeloVito.
Este código sirve como complemento a esta entrada de blog sobre diferentes técnicas para crear cuentas locales.
Los argumentos son:
-u, --username - Nombre de usuario a crear (requerido)
-p, --password - Contraseña para el usuario (requerido)
-g, --group - Nombre del grupo (por defecto: "Administrators")
-v, --verbose - Habilitar modo verbose
-h, --help - Mostrar mensaje de ayuda
# Uso básico
adduser.exe -u <username> -p <password>
# Especificar grupo
adduser.exe -u <username> -p <password> -g <group>
# Salida verbose
adduser.exe -u testuser -p MyPass123 -g Administrators -v

La herramienta utiliza las siguientes llamadas del protocolo SAMR:
Compilar usando Visual Studio o msbuild.
cd Crystal
crystal build adduser.cr --release
.\adduser.exe -u testuser -p MyPass123 -v
Puedes usar el script de Python:
cd Python
python adduser.py -u testuser -p MyPass123 -v
O crear un binario independiente con:
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