Ferramenta para testar uma conta de usuário e senha (login de teste)

39

Sim, posso ativar uma VM ou controle remoto em algo e experimentar a senha ... Eu sei ... mas existe uma ferramenta ou script que 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 de servidor é "esquecida" ... mas achamos que sabemos o que é. Eu gostaria de passar as credenciais para algo e tê-lo chute 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 ele mapeou a unidade com êxito ou não, mas se perdeu na lógica de fazer funcionar corretamente ... algo como:

-Script solicita nome de usuário via msgbox -script pede senha via msgbox -script tenta mapear uma unidade para um compartilhamento comum ao qual todos tenham acesso -script unmaps drive se bem sucedido -script retorna popup msgbox indicando "Senha Correta" ou "Senha Incorreta"

Qualquer ajuda é apreciada ... você pensaria que esta seria uma ocorrência rara, não exigindo uma ferramenta para apoiá-la, mas ... bem ....

    
por TheCleaner 22.09.2009 / 14:38

8 respostas

65
runas /u:yourdomain\a_test_user notepad.exe

O utilitário solicitará a senha, se a senha correta tiver sido fornecida, o bloco de notas será iniciado; caso contrário, produzirá o erro 1326: o nome de usuário ou senha está incorreto

    
por 09.10.2014 / 14:49
7

Roteiro Powershell:

#usage: Test-UserCredential -username UserNameToTest -password (Read-Host)

Function Test-UserCredential { 
    Param($username, $password) 
    Add-Type -AssemblyName System.DirectoryServices.AccountManagement 
    $ct = [System.DirectoryServices.AccountManagement.ContextType]::Machine, $env:computername 
    $opt = [System.DirectoryServices.AccountManagement.ContextOptions]::SimpleBind 
    $pc = New-Object System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList $ct 
    $Result = $pc.ValidateCredentials($username, $password).ToString() 
    $Result 
} 

link

    
por 23.12.2012 / 20:19
5

Você também pode usar:

net use \computername\sharename [password] /USER:]username]

Se houver um compartilhamento com esse nome no computador remoto. Ou use C$ se a conta for um administrador.

    
por 04.09.2012 / 15:22
1

Você pode escrever uma função vbscript fácil que pode verificar isso ... algo como:

Function GoodPassword(strAdminUsername, strAdminPassword, strNTDomain)
    Const ADS_SECURE_AUTHENTICATION = 1

    On Error Resume Next
    Set objIADS = GetObject("WinNT:").OpenDSObject("WinNT://" & _
                        strNTDomain, strAdminUserame, _
                        strAdminPassword, _
                        ADS_SECURE_AUTHENTICATION)
    if err.number = 0 then
       GoodPassword = True
    Else
       GoodPassword = False
    End If
    On Error GoTO 0
End Function

Fontes:

link

link

    
por 01.10.2009 / 15:28
1

Na área de trabalho do Windows, você pode usar o Active Directory Explorer pelo próprio SysInternals / MS:

link

    
por 10.01.2018 / 15:30
0

Você pode usar uma das muitas ferramentas conhecidas para testar senhas. Uma que eu vi é L0phtcrack . Talvez haja até mesmo uma maneira de fazer isso offline com um despejo de seu banco de dados de autenticação. No "outro mundo", usamos "john the ripper" para coisas assim.

    
por 22.09.2009 / 17:17
0

Usando o código acima, verifique todas as contas de domínio para ver se elas estão usando uma determinada senha.

$usernames = Get-ADUser -Filter * | select -ExpandProperty SamAccountName

foreach ($username in $usernames) {
$password = "Password"
Add-Type -AssemblyName System.DirectoryServices.AccountManagement 
$ct = [System.DirectoryServices.AccountManagement.ContextType]::Machine, $env:computername 
$opt = [System.DirectoryServices.AccountManagement.ContextOptions]::SimpleBind 
$pc = New-Object System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList $ct 
$Result = $pc.ValidateCredentials("domain\$username", $password).ToString() 
If ($Result -eq "True") {echo "$username" >> C:\result.txt}
}
    
por 15.03.2016 / 22:02
-1

Por que não usar um serviço de rede com autenticação (telnet, POP, IMAP, SMTP, o que você quer)? Do outro lado, se você estiver na máquina, você pode tentar su - userToTest de uma conta não privada. Se a senha estiver OK, você será permitido no homedir userToTest se o shell permitir a conexão

    
por 23.09.2009 / 17:00