
Criar administradores locais com a API SAMR (técnica de nível mais baixo). Implementado em C#, Crystal, Python e Rust.
Criar administradores locais usando a API SAMR, operando em um nível mais baixo do que net.exe, o New-LocalUser do PowerShell ou a API NetUserAdd.
Requer privilégios de Administrador e, se o usuário existir, ele é adicionado ao grupo, mas a senha não é atualizada.
Existem 4 implementações neste repositório (C#, Python, Rust e Crystal), mas há versões públicas em outras linguagens como C++ por @M0nster3 ou arquivo BOF por @AgeloVito.
Este código serve como complemento a este post do blog sobre diferentes técnicas para criar contas locais.
Os argumentos são:
-u, --username - Nome de usuário a ser criado (obrigatório)
-p, --password - Senha do usuário (obrigatório)
-g, --group - Nome do grupo (padrão: "Administrators")
-v, --verbose - Ativar modo detalhado
-h, --help - Mostrar mensagem de ajuda
# Uso básico
adduser.exe -u <username> -p <password>
# Especificar grupo
adduser.exe -u <username> -p <password> -g <group>
# Saída detalhada
adduser.exe -u testuser -p MyPass123 -g Administrators -v

A ferramenta usa as seguintes chamadas do protocolo SAMR:
Compile usando Visual Studio ou msbuild.
cd Crystal
crystal build adduser.cr --release
.\adduser.exe -u testuser -p MyPass123 -v
Você pode usar o script Python:
cd Python
python adduser.py -u testuser -p MyPass123 -v
Ou criar um binário autônomo com:
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