testing用户帐号和密码的工具(testinglogin)

是的,我可以启动一个虚拟机或远程进入一些东西,并尝试密码…我知道…但有一个工具或脚本,将模拟login只是足以确认或否认密码是正确的?

场景:

服务器服务帐户的密码被“忘记”了…但我们认为我们知道它是什么。 我想通过凭据的东西,并用“正确的密码”或“不正确的密码”踢回来。

我甚至想过使用该用户帐户和密码的驱动器映射脚本,以查看它是否成功映射了驱动器,但在使其正常工作的逻辑中丢失了一些信息:如:

-Script通过msgbox询问用户名-script通过msgbox询问密码-script试图将驱动器映射到每个人都可以访问的公共共享-script如果成功则取消映射驱动器-script返回popup msgbox指出“正确的密码”或者“不正确密码”

任何帮助表示赞赏…你会认为这将是一个罕见的事件,不需要一个工具来支持它,但…好吧….

runas /u:yourdomain\a_test_user notepad.exe 

该实用程序将提示input密码,如果提供了正确的密码,则会启动记事本,否则会产生错误1326:用户名或密码不正确

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

你也可以使用:

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

如果远程计算机上有该名称的共享。 或者,如果帐户是pipe理员,则使用C$

你可以写一个简单的VBScriptfunction,可以validation这个…像这样的:

 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 

资料来源:

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

http://hsdn.net/category_3.html

你可以使用其中一个众所周知的工具来testing密码。 我看到的是L0phtcrack 。 也许还有一种方法可以在离线状态下执行此操作,并转储您的身份validation数据库。 在“另一个世界”,我们用这个“john the ripper”作为东西。

使用上面的代码,检查所有的域帐户,看他们是否使用某个密码。

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

为什么不用身份validation的networking服务(telnet,POP,IMAP,SMTP,你想要什么)? 另一方面,如果你在机器上,你可以尝试su - userToTest从一个非su - userToTest帐户。 如果密码正确,如果shell允许连接,你将被允许在userToTest homedir中