web-dev-qa-db-ja.com

ユーザーアカウントとパスワードをテストするツール(テストログイン)

ええ、VMまたはリモートで何かを起動してパスワードを試すことができます...わかっています...しかし、確認または確認するのに十分なログインをシミュレートするツールまたはスクリプトはありますか?パスワードが正しいことを否定しますか?

シナリオ:

サーバーサービスアカウントのパスワードは「忘れられました」...しかし、それが何であるかはわかっています。資格情報を何かに渡し、「正しいパスワード」または「誤ったパスワード」でそれをキックバックさせたいのですが。

そのユーザーアカウントとパスワードが渡されたドライブマッピングスクリプトを考えて、ドライブが正常にマップされたかどうかを確認しましたが、正しく機能させるロジックで失われました...次のようなもの:

-スクリプトはmsgboxを介してユーザー名を要求します-scriptはmsgboxを介してパスワードを要求します-scriptはドライブが誰にでもアクセスできる共通の共有にドライブをマッピングしようとしますパスワード"

助けていただければ幸いです...これは、それをサポートするツールを必要としないまれな出来事だと思いますが...まあ...

48
TheCleaner
runas /u:yourdomain\a_test_user notepad.exe

ユーティリティはパスワードの入力を求めます。正しいパスワードが指定されている場合は、メモ帳が起動します。そうでない場合は、エラー1326が発生します。ユーザー名またはパスワードが正しくありません

78
Roberto Dimas

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

11
Even Mien

次のものも使用できます。

Net Use \\ computername\sharename [password]/USER:] username]

リモートコンピュータにその名前の共有がある場合。または、C$アカウントが管理者の場合。

5
Greg

これを確認できる簡単なvbscript関数を書くことができます...

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

1
mrTomahawk

Windowsデスクトップでは、SysInternals/MS自体でActive Directory Explorerを使用できます。

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

1
Tomasz Modelski

上記のコードを使用して、すべてのドメインアカウントをチェックし、特定のパスワードを使用しているかどうかを確認します。

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

admin権限でPowerShellを開き、以下のコマンドを入力します:

_your_password_および_your_username_の値を変更する

_$PlainPassword="your_password"
$SecurePassword = $PlainPassword | ConvertTo-SecureString -AsPlainText-Force
$UserName = "your_username"
$Credentials = New-Object System.Management.Automation.PSCredential -ArgumentList $UserName,$SecurePassword
Start-Process whoami -Credential $Credentials
_

これを使用して、usernamepasswordで認証情報を作成し、この認証情報を_Start-Process_に渡します。whoamiはバックグラウンドでプログラムを開かないため、それを閉じる方法は気にしません。

PC-BからPC-Aでユーザーパスワードをテストする場合は、WinRMとPythonを使用してテストできます。

PC-AでWinRMをオンにし、PC-Bで_pip install pywinrm_をオンにします。前のコマンドをwinrm.Session().run_ps()に渡し、結果のstatus_codeを確認します。0は正しいが、1はfalseです。

参照

Start-Processドキュメント: https://docs.Microsoft.com/en-us/powershell/module/Microsoft.powershell.management/start-process?view=powershell-6

資格情報の作成: http://duffney.io/AddCredentialsToPowerShellFunctions

WinRMをオンにする方法: https://docs.Microsoft.com/en-us/windows/win32/winrm/installation-and-configuration-for-windows-remote-management

WinRMクイック構成: https://docs.Microsoft.com/en-us/powershell/module/Microsoft.wsman.management/set-wsmanquickconfig?view=powershell-6

Ansibleからの基本的なWinRM構成: https://docs.ansible.com/ansible/latest/user_guide/windows_setup.html

0
milkice

世の中にある有名なツールの1つを使用してパスワードをテストすることができます。私が見たのは L0phtcrack です。認証データベースのダンプを使用してオフラインでこれを行う方法さえあるかもしれません。 「異世界」では「ジョン・ザ・リッパー」を使っています。

0
PEra