Gerador de variações de username a partir de nomes completos, feito para acelerar a fase de enumeração de usuários em CTFs e testes de pentest.
Dado um nome (primeiro [meio] último), o UserForge combina um motor de
templates com uma lista de "plugins" de formato para gerar dezenas de
possíveis nomes de usuário, os mesmos padrões que normalmente se testa
manualmente contra SMB, LDAP, RDP, serviços de e-mail etc.
git clone https://github.com/MateuzCabral/Userforge
cd userforge
python3 userforge.py -hpython3 userforge.py Bruno SteelfoxSaída:
# Bruno Steelfox
bruno
steelfox
brunosteelfox
steelfoxbruno
bruno.steelfox
steelfox.bruno
bruno_steelfox
steelfox_bruno
bruno-steelfox
steelfox-bruno
brunos
bruno.s
sbruno
s.bruno
bsteelfox
b.steelfox
steelfoxb
steelfox.b
bs
b.s
# Nome com nome do meio (ativa plugins extras automaticamente)
python3 userforge.py Bruno S Steelfox
# Lista de nomes em arquivo -> salva tudo em outro arquivo
python3 userforge.py -i nomes.txt -o usuarios.txt
# Usar só alguns plugins específicos
python3 userforge.py -f first.last,flast Bruno Steelfox
# Adicionar sufixos de ano, número e domínio de e-mail
python3 userforge.py --years 2025 2026 --numbers 1 12 --suffix @empresa.com Bruno Steelfox
# Manter a capitalização original em vez de forçar minúsculas
python3 userforge.py --preserve-case Bruno Steelfox
# Listar todos os plugins de formato disponíveis
python3 userforge.py -lPlugins que usam apenas primeiro nome + sobrenome:
| Plugin | Template | Exemplo (Bruno Steelfox) |
|---|---|---|
first |
%f |
bruno |
last |
%l |
steelfox |
firstlast |
%f%l |
brunosteelfox |
lastfirst |
%l%f |
steelfoxbruno |
first.last |
%f.%l |
bruno.steelfox |
last.first |
%l.%f |
steelfox.bruno |
first_last |
%f_%l |
bruno_steelfox |
last_first |
%l_%f |
steelfox_bruno |
first-last |
%f-%l |
bruno-steelfox |
last-first |
%l-%f |
steelfox-bruno |
firstl |
%f%i.l |
brunos |
first.l |
%f.%i.l |
bruno.s |
lfirst |
%i.l%f |
sbruno |
l.first |
%i.l.%f |
s.bruno |
flast |
%i.f%l |
bsteelfox |
f.last |
%i.f.%l |
b.steelfox |
lastf |
%l%i.f |
steelfoxb |
last.f |
%l.%i.f |
steelfox.b |
initials |
%i.f%i.l |
bs |
initials.dot |
%i.f.%i.l |
b.s |
Plugins que só entram quando o nome do meio é informado:
| Plugin | Template |
|---|---|
firstmiddlelast |
%f%m%l |
first.middle.last |
%f.%m.%l |
firstml |
%f%i.m%l |
first.m.last |
%f.%i.m.%l |
fmlast |
%i.f%i.m%l |
fml |
%i.f%i.m%i.l |
mlast |
%i.m%l |
Use python3 userforge.py -l a qualquer momento para ver essa lista
diretamente no terminal.
Aceita colunas firstname, middlename, lastname, separadas por espaço,
vírgula ou TAB (detectado automaticamente pela primeira linha). Se a
primeira linha não contiver nenhum desses nomes de coluna, o arquivo é
tratado como firstname lastname sem cabeçalho.
Com cabeçalho:
firstname,middlename,lastname
Bruno,S,Steelfox
Maria,,Darkwave
Sem cabeçalho (assume firstname lastname):
Bruno Steelfox
Maria Darkwave
Um bloco por nome, separado por linha em branco, com o nome completo como comentário:
# Bruno Steelfox
bruno
steelfox
bruno.steelfox
...
# Maria Darkwave
maria
darkwave
maria.darkwave
...
Pronto para ser usado direto como wordlist em ferramentas como Hydra, NetExec, Kerbrute, etc.
| Opção | Descrição |
|---|---|
nome |
Nome via linha de comando: primeiro [meio] ultimo |
-i, --input-file |
Arquivo com lista de nomes |
-o, --output-file |
Salva a saída em arquivo (padrão: mostra no terminal) |
-f, --select-format |
Lista de plugins a usar, separados por vírgula (veja -l) |
-l, --list-formats |
Lista os plugins de formato disponíveis e sai |
--years [ANOS...] |
Sufixos de ano a anexar (ex: 2025 2026) |
--numbers [NUMS...] |
Sufixos numéricos a anexar (ex: 1 12 123) |
--suffix SUFIXO |
Sufixo fixo anexado a cada variação (ex: @empresa.com) |
--preserve-case |
Não força minúsculas na saída |
-h, --help |
Mostra a ajuda |
Gerar wordlist de usernames a partir de uma lista de funcionários (OSINT/LinkedIn):
python3 userforge.py -i funcionarios.txt -o usernames.txtTestar só os formatos mais comuns em ambiente corporativo (first.last, flast):
python3 userforge.py -f first.last,flast -i funcionarios.txt -o usernames.txtGerar variações prontas para e-mail:
python3 userforge.py -f first.last -i funcionarios.txt --suffix @empresa.com -o emails.txtUse apenas em ambientes autorizados: CTFs, labs próprios, ou testes de pentest com autorização explícita por escrito. Gerar/testar usernames contra sistemas sem autorização pode ser crime na maioria das jurisdições.