Frage Tool zum Testen eines Benutzerkontos und eines Passwortes (Test Login)


Ja, ich kann eine VM oder Remote in etwas starten und das Passwort versuchen ... Ich weiß ... aber gibt es ein Tool oder Skript, das eine Anmeldung simulieren wird, nur um zu bestätigen oder zu leugnen, dass das Passwort korrekt ist?

Szenario:

Das Passwort eines Serverdienstkontos ist "vergessen" ... aber wir denken, wir wissen, was es ist. Ich möchte die Anmeldeinformationen an etwas weitergeben und es mit "korrektem Passwort" oder "falschem Passwort" zurücktreten lassen.

Ich dachte sogar über ein Laufwerk Mapping-Skript mit diesem Benutzerkonto und Passwort übergeben, um zu sehen, ob es das Laufwerk erfolgreich zugeordnet oder nicht, aber ging in der Logik verloren, damit es richtig funktioniert ... etwas wie:

-Skript fragt nach Benutzername über msgbox -script fragt nach Passwort über msgbox -script versucht, ein Laufwerk einer gemeinsamen Freigabe zuzuordnen, auf die alle zugreifen können -script-Unschemata fahren bei Erfolg -script gibt popup msgbox mit der Angabe "Passwort korrigieren" oder "Falsches Passwort" zurück

Jede Hilfe wird geschätzt ... Sie würden denken, dass dies ein seltenes Ereignis wäre, das kein Werkzeug benötigt, um es zu unterstützen, aber ... nun ....


38
2017-09-22 14:38


Ursprung


Welches OS? Welcher Service? - Cristian Ciupitu
@ Cristian - Windows Domain-Konten - einfach überprüfen, ob das Passwort korrekt ist oder nicht - TheCleaner


Antworten:


runas /u:yourdomain\a_test_user notepad.exe

Das Dienstprogramm wird zur Eingabe des Kennworts auffordern, wenn das richtige Kennwort angegeben wurde, wird Notepad gestartet, andernfalls wird der Fehler 1326 ausgegeben: Benutzername oder Kennwort sind falsch


63
2017-10-09 14:49



Cleverer Roberto. +1 - TheCleaner
Einfach. Elegant. Ich mag das. - Lopsided
Genial! Diese Lösung hat zwei wichtige Vorteile gegenüber der angenommenen Antwort: 1) verfügbar auf Windows XP + out of the box, muss nichts herunterladen, 2) im Zusammenhang damit: wie es von MS ist, erfordert es nicht, dass ich meinem traue Passwort zu einem Drittanbieter-Tool unbekannter Herkunft. - akavel
Schnell, sauber und einfach! Vielen Dank! - juFo
Serverfault-IT-Administratoren wissen das, aber wenn Sie ein Heimanwender sind, der diese Antwort bei einer Websuche findet (dies ist übrigens die beste Antwort - verwendet nur Sachen, die mit Windows mitgeliefert werden): auf einem Heimcomputer yourdomain Teil oben ist der Computer Name. Finden Sie das unter Systemsteuerung> System. Einer der Werte ist wörtlich: "Computername:". Z.B. Wenn der Name des Computers "Smith-Laptop" ist und Ihr Benutzername "Joe" ist, würden Sie tun runas /u:smith-laptop\joe notepad.exe - Daryn


Powershell-Skript:

#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 
} 

http://powershellcommunity.org/Forums/tabid/54/aft/8034/Default.aspx


7
2017-12-23 20:19



new-object directoryservices.directoryentry "",$username,$password - Rückgabewert, Anmeldeinformationen funktionieren, Ausnahme, sie funktionieren nicht. Aus dieser Antwort, wo es in eine ordentliche Funktion verpackt ist: serverfault.com/q/596602/57144 - TessellatingHeckler


Sie können auch verwenden:

net use \\ Computername \ sharename [Passwort] / USER:] Benutzername]

Wenn auf dem Remotecomputer eine Freigabe mit diesem Namen vorhanden ist. Oder, benutze C$ wenn das Konto ein Administrator ist.


5
2017-09-04 15:22





Sie können eine einfache VBScript-Funktion schreiben, die dies überprüfen kann ... etwas wie:

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

Quellen:

http://www.4guysfromrolla.com/webtech/061202-1.shtml

http://hsdn.net/category_3.html


1
2017-10-01 15:28



Bitte beachten Sie, dass dies dazu führt, dass ein Konto gesperrt wird, nachdem die Anmeldung fehlgeschlagen ist. Dies sollte immer für jede Lösung gelten, die Sie verwenden. - mrTomahawk
Diese Überprüfung ignoriert möglicherweise auch die Anmeldeinformationen lokaler Benutzer, es sei denn, Sie optimieren sie, indem Sie den Benutzernamen zweimal angeben OpenDSObject("WinNT://domain/userName,user","userName", "password", 1). Quelle. - Agostino


Auf Windows-Desktop können Sie Active Directory Explorer von SysInternals / MS selbst verwenden:

https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer 


1
2018-01-10 15:30



Ich gehe davon aus, dass Sie die Eingabeaufforderung "Mit Active Directory verbinden" als Passwort-Testfall vorschlagen - dies scheint die Aufgabe meines Tests zu erfüllen. Ein falsches Passwort führt dazu, dass ein "Benutzername oder Passwort ist inkorrekt" ziemlich schnell angezeigt wird, also wäre dies ein anständiger GUI-basierter Test, um eine gedankliche Liste von möglichen Passwörtern abzuarbeiten. - JimNim


Sie können eines der vielen bekannten Tools verwenden, um Passwörter zu testen. Eine, die ich sah, ist L0phtcrack. Vielleicht gibt es sogar eine Möglichkeit, dies offline mit einem Dump Ihrer Authentifizierungsdatenbank zu tun. In "the other world" verwenden wir "John the Ripper" für solche Sachen.


0
2017-09-22 17:17



Ich spreche nicht davon, Passwörter zu knacken oder ihre Stärke zu testen. Ich spreche von einem Tool, das mir sagen kann, ob das Passwort, das ich für einen bestimmten Account eingegeben habe, das Passwort dieses Accounts ist. - TheCleaner
@TheCleaner: Sicher, Sie können eine Wortliste mit allen möglichen Passwörtern für ein bestimmtes Konto erstellen und diese Liste für eine Reihe von Konten verwenden. oder ein einzelner ... Testen mit SMB oder etwas ist eine ziemlich schlechte Idee. Es füllt Ihre Protokolle, vermasselt Sitzungen zum Dateiserver, erzeugt Last auf DCs und Dateiservern und so weiter. - PEra


Überprüfen Sie mithilfe des obigen Codes alle Domänenkonten, um festzustellen, ob sie ein bestimmtes Kennwort verwenden.

$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}
}

0
2018-03-15 22:02





Warum nicht einen Netzwerkdienst mit Authentifizierung verwenden (Telnet, POP, IMAP, SMTP, was Sie wollen)? Andere Seite, wenn Sie an der Maschine sind, können Sie versuchen su - userToTest von einem nicht-privaten Konto. Wenn das Passwort in Ordnung ist, werden Sie in userToTest homedir zugelassen, wenn die Shell die Verbindung erlaubt


-1
2017-09-23 17:00