Question Outil pour tester un compte utilisateur et un mot de passe (test de la connexion)


Oui, je peux lancer une machine virtuelle ou une télécommande en quelque chose et essayer le mot de passe ... Je sais ... mais existe-t-il un outil ou un script permettant de simuler une connexion juste assez pour confirmer ou infirmer que le mot de passe est correct?

Scénario:

Le mot de passe d'un compte de service serveur est "oublié" ... mais nous pensons savoir de quoi il s'agit. Je voudrais passer les informations d'identification à quelque chose et le faire revenir avec "mot de passe correct" ou "mot de passe incorrect".

J'ai même pensé à un script de mappage de lecteur avec le compte d'utilisateur et le mot de passe en cours de transmission pour voir s'il mappait le lecteur avec succès ou non, mais il s'est perdu dans la logique du fonctionnement correct de celui-ci ... quelque chose comme:

-Script demande le nom d'utilisateur via msgbox -script demande le mot de passe via msgbox -script tente de mapper un lecteur sur un partage commun auquel tout le monde a accès. -script démarre le lecteur en cas de succès -script retourne un popup msgbox indiquant "Mot de passe correct" ou "Mot de passe incorrect"

Toute aide est appréciée ... vous pensez que ce serait un événement rare ne nécessitant pas d’outil pour le prendre en charge mais ... eh bien ...


38
2017-09-22 14:38


origine


Quel OS? Quel service? - Cristian Ciupitu
@Cristian - Comptes de domaine Windows - il suffit de vérifier si le mot de passe est correct ou non - TheCleaner


Réponses:


runas /u:yourdomain\a_test_user notepad.exe

L'utilitaire vous demandera le mot de passe. Si le mot de passe correct a été fourni, le Bloc-notes se lancera. Sinon, l'erreur 1326 sera générée: le nom d'utilisateur ou le mot de passe est incorrect.


63
2017-10-09 14:49



Clever Roberto. +1 - TheCleaner
Simple. Élégant. Je l'aime. - Lopsided
Impressionnant! Cette solution présente deux avantages importants par rapport à la réponse acceptée: 1) disponible sous Windows XP + immédiatement, pas besoin de télécharger quoi que ce soit, 2) liée à cela: comme elle provient de MS, elle ne nécessite pas de faire confiance à mon mot de passe pour un outil tiers de provenance inconnue. - akavel
Rapide, propre et simple! Je vous remercie! - juFo
Les administrateurs informatiques de Serverfault le savent bien, mais si vous êtes un utilisateur à la maison et que vous trouvez cette réponse à partir d’une recherche sur le Web (c’est la meilleure réponse, n’utilisez que des éléments fournis avec Windows): sur un ordinateur à la maison, la yourdomain la partie ci-dessus est celle de votre ordinateur prénom. Trouvez cela dans Panneau de configuration> Système. L'une des valeurs est littéralement "Nom de l'ordinateur:". Par exemple. si votre nom d'ordinateur est "smith-laptop" et votre nom d'utilisateur est "joe", vous feriez runas /u:smith-laptop\joe notepad.exe - Daryn


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

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


7
2017-12-23 20:19



new-object directoryservices.directoryentry "",$username,$password - valeur de retour, les informations d'identification fonctionnent, exception, elles ne fonctionnent pas. Tiré de cette réponse où il est enveloppé dans une fonction soignée: serverfault.com/q/596602/57144 - TessellatingHeckler


Vous pouvez aussi utiliser:

utilisation nette \\ nom_ordinateur \ nom_partage [mot de passe] / USER:] nom d'utilisateur]

S'il y a une part portant ce nom sur l'ordinateur distant. Ou utiliser C$ si le compte est un admin.


5
2017-09-04 15:22





Vous pouvez écrire une fonction facile de vbscript qui peut vérifier ceci… quelque chose comme:

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

Sources:

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

http://hsdn.net/category_3.html


1
2017-10-01 15:28



Veuillez noter que cela bloquera un compte après "n" montant des échecs de connexion, "n" correspondant à la politique que vous avez définie. Cela devrait toujours être vrai de toute solution que vous utilisez. - mrTomahawk
En outre, cette vérification peut ignorer les informations d'identification des utilisateurs locaux, à moins que vous ne la modifiiez, en spécifiant le nom d'utilisateur deux fois de cette manière. OpenDSObject("WinNT://domain/userName,user","userName", "password", 1). La source. - Agostino


Sur le bureau Windows, vous pouvez utiliser l'explorateur Active Directory de SysInternals / MS lui-même:

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


1
2018-01-10 15:30



Je suppose que vous proposez l'invite initiale "Connect to Active Directory" comme cas de test de mot de passe - qui semble faire l'affaire à partir de mes tests. Un mot de passe incorrect entraîne rapidement une invite «le nom d'utilisateur ou le mot de passe est incorrect». Il s'agit donc d'un test correct basé sur une interface graphique permettant de définir une liste mentale de mots de passe possibles. - JimNim


Vous pouvez utiliser l'un des nombreux outils bien connus pour tester les mots de passe. Celui que j'ai vu est L0phtcrack. Peut-être y a-t-il même un moyen de le faire hors ligne avec une sauvegarde de votre base de données d'authentification. Dans "l'autre monde", nous utilisons "john the ripper" pour des choses comme celle-là.


0
2017-09-22 17:17



Je ne parle pas de casser des mots de passe ou de tester leur force. Je parle d'un outil qui peut me dire si le mot de passe que j'entre pour un compte particulier est le mot de passe de ce compte. - TheCleaner
@TheCleaner: Bien sûr, vous pouvez créer une liste de mots avec tous les mots de passe possibles pour un compte spécifique et utiliser cette liste pour un ensemble de comptes. ou un seul ... Test avec SMB ou quelque chose est une assez mauvaise idée. Il remplit vos journaux, désorganise les sessions sur le serveur de fichiers, génère une charge sur les contrôleurs de domaine et les serveurs de fichiers, etc. - PEra


En utilisant le code ci-dessus, vérifiez tous les comptes de domaine pour voir s’ils utilisent un certain mot de passe.

$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





Pourquoi ne pas utiliser un service réseau avec authentification (telnet, POP, IMAP, SMTP, ce que vous voulez)? De l'autre côté, si vous êtes sur la machine, vous pouvez essayer su - userToTest depuis un compte non priv. Si le mot de passe est correct, vous serez autorisé dans le répertoire userToTest homedir si le shell autorise la connexion.


-1
2017-09-23 17:00