Sim, eu posso iniciar uma VM ou remoto em algo e tentar a senha... eu sei... mas existe uma ferramenta ou script que irá simular um login apenas o suficiente para confirmar ou negar que a senha está correta?
Cenário:
A senha de uma conta de serviço do servidor é "esquecida"... mas achamos que sabemos qual é. Eu gostaria de passar as credenciais para algo e tê-lo de volta com "senha correta" ou "senha incorreta".
Eu até pensei em um script de mapeamento de unidade com essa conta de usuário e senha sendo passada para ver se mapeava a unidade com sucesso ou não, mas me perdi na lógica de fazê-la funcionar corretamente ... algo como:
-Script solicita nome de usuário via msgbox -script solicita senha via msgbox -script tenta mapear uma unidade para um compartilhamento comum ao qual todos têm acesso -script desmapeia a unidade se for bem-sucedido -script retorna a msgbox pop-up informando "Senha correta" ou "Incorreta" Senha"
Qualquer ajuda é apreciada... você pensaria que isso seria uma ocorrência rara, não exigindo uma ferramenta para apoiá-lo, mas... bem....
O utilitário solicitará a senha, se a senha correta foi fornecida, o bloco de notas será iniciado, caso contrário, produzirá o erro 1326: o nome de usuário ou a senha está incorreto
Script Powershell:
http://powershellcommunity.org/Forums/tabid/54/aft/8034/Default.aspx
Você também pode usar:
Se houver um compartilhamento com esse nome no computador remoto. Ou use
C$
se a conta for um administrador.Você pode escrever uma função vbscript fácil que pode verificar isso ... algo como:
Fontes:
http://www.4guysfromrolla.com/webtech/061202-1.shtml
http://hsdn.net/category_3.html
Na área de trabalho do Windows, você pode usar o Active Directory Explorer do próprio SysInternals/MS:
https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer
Você pode usar uma das muitas ferramentas conhecidas para testar senhas. Um que eu vi é L0phtcrack . Talvez haja até uma maneira de fazer isso offline com um dump do seu banco de dados de autenticação. No "outro mundo", usamos "john the ripper" para coisas assim.
Usando o código acima, verifique todas as contas de domínio para ver se estão usando uma determinada senha.
Abra o PowerShell com privilégio de administrador e insira os comandos abaixo:
Usando isso, criamos uma credencial com
username
epassword
, e passamos essa credencial paraStart-Process
.Porquewhoami
não abre um programa em segundo plano, então não nos importamos em como fechá-lo.Se você estiver tentando testar senhas de usuário no PC-A a partir do PC-B, poderá fazer isso com WinRM e Python.
Ative o WinRM no PC-A e
pip install pywinrm
no PC-B. Passe o comando anterior parawinrm.Session().run_ps()
, verifique o status_code do resultado, 0 está correto enquanto 1 é falso.Referência
Documentação do processo de início: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/start-process?view=powershell-6
Criar credenciais: http://duffney.io/AddCredentialsToPowerShellFunctions
Como ativar o WinRM: https://docs.microsoft.com/en-us/windows/win32/winrm/installation-and-configuration-for-windows-remote-management
Configuração rápida do WinRM: https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/set-wsmanquickconfig?view=powershell-6
Configuração básica do WinRM do Ansible: https://docs.ansible.com/ansible/latest/user_guide/windows_setup.html
Por que não usar um serviço de rede com autenticação (telnet, POP, IMAP, SMTP, o que você quiser) ? Por outro lado, se você estiver na máquina, poderá tentar
su - userToTest
de uma conta não privada. Se a senha estiver OK, você terá permissão no homedir userToTest se o shell permitir a conexão