Bir kullanıcı hesabını ve şifreyi test etmek için bir araç (giriş testi)


46

Evet, bir VM cihazını veya uzaktan kumandasını bir şeye ateşleyebilir ve şifreyi deneyebilirim ... Biliyorum ... ama şifrenin doğru olduğunu onaylamak veya reddetmek için bir girişi simüle edecek bir araç veya script var mı?

Senaryo:

Bir sunucu servis hesabının şifresi "unutuldu" ... ama ne olduğunu bildiğimizi düşünüyoruz. Kimlik bilgilerini bir şeye aktarmak ve "doğru şifre" veya "yanlış şifre" ile geri almak istiyorum.

Sürücüyü başarılı bir şekilde eşleştirip eşlemeyeceğini görmek için bu kullanıcı hesabı ve parola geçirilmiş bir sürücü eşleme komut dosyası bile düşündüm.

-Script msgbox üzerinden kullanıcı adı sorar -script msgbox üzerinden şifre ister -script, başarılı bir komut dosyası "başarılı parola" veya "Doğru Parola" ifadesini belirten açılır msgbox döndürürse herkesin -script unmaps sürücüsüne erişebildiği ortak bir paylaşımla eşlemeye çalışır Parola"

Herhangi bir yardım takdir edilmektedir ... bunun, onu desteklemek için bir araç gerektirmeyen nadir bir olay olacağını düşünebilirsiniz ama ...


Hangi işletim sistemi? Hangi servis?
Cristian Ciupitu

@Cristian - Windows etki alanı hesapları - parolanın doğru olup olmadığını doğrulayın
TheCleaner 23.09.2009

Yanıtlar:


77
runas /u:yourdomain\a_test_user notepad.exe

Yardımcı program şifre isteyecektir, eğer doğru şifre sağlanmışsa, 1326 hatası üretmeyecekse not defteri açılacaktır: kullanıcı adı veya şifre yanlış


1
Zeki Roberto. +1
TheCleaner

3
Basit. Zarif. Bunu sevdim.
Lopsided

5
Müthiş! Bu çözümün kabul edilen cevaba göre iki önemli avantajı var: 1) Windows XP + 'da mevcut, kutudan çıkan herhangi bir şey indirmek zorunda değilsiniz, 2) bununla ilgili: MS’ten olduğu gibi, benim güvenmemi gerektirmiyor bilinmeyen bazı üçüncü taraf araçların şifresi.
akavel

2
Serverfault IT yöneticileri bunu biliyor, ancak bu cevabı bir web araması dışında bulan bir ev kullanıcısıysanız (bu, yalnızca Windows ile birlikte verilenleri kullanan en iyi cevaptır): ev bilgisayarında, yourdomainyukarıdaki bölüm sizin bilgisayarın adı . Bunu Denetim Masası> Sistem'de bulun. Değerlerden biri kelimenin tam anlamıyla "Bilgisayar Adı:" dır. Örneğin, eğer bilgisayarınızın adı "smith-laptop" ve kullanıcı adınız "joe" ise, yaparsınızrunas /u:smith-laptop\joe notepad.exe
Daryn

1
Başarılı bir kimlik doğrulamada, sadece gibi bir hata alabilirsiniz1385: Logon failure: the user has not been granted the requested logon type at this computer.
mwfearnley

11

Powershell betiği:

#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


new-object directoryservices.directoryentry "",$username,$password- dönüş değeri, kimlik bilgileri işe yarar, istisna, işe yaramazsa. : O düzgün bir işleve sarılı Bu yanıt alınan serverfault.com/q/596602/57144
TessellatingHeckler

5

Ayrıca kullanabilirsin:

net use \\ bilgisayar kullanıcı adı \ paylaşım adı [şifre] / KULLANICI:] kullanıcı adı]

Uzak bilgisayarda bu adla bir paylaşım varsa. Veya, C$hesap bir yönetici ise kullanın .


1

Bunu doğrulayabilecek basit bir vbscript işlevi yazabilirsiniz ... bunun gibi bir şey:

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

Kaynaklar:

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

http://hsdn.net/category_3.html


Lütfen, 'n' tutarının başarısız olduğu giriş yaptıktan sonra bir hesabı kilitleyeceğini ve 'n' belirlediğiniz politika olduğunu unutmayın. Bu her zaman kullandığınız herhangi bir çözüm için doğru olmalıdır.
mrTomahawk

Ayrıca, bu kontrol, kullanıcı adınızı iki kez belirterek belirlemediğiniz sürece, yerel kullanıcıların kimlik bilgilerini göz ardı edebilir OpenDSObject("WinNT://domain/userName,user","userName", "password", 1). Kaynak .
Agostino

1

Windows masaüstünde Active Directory Explorer’ı SysInternals / MS’in kendisinden kullanabilirsiniz:

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


İlk "Active Directory'ye Bağlan" komutunu bir şifre test durumu olarak önerdiğinizi farz ediyorum - bu işi testimden yapıyor gibi görünüyor. Yanlış şifre "kullanıcı adı veya şifre yanlış" olarak hızlıca sonuçlanır, bu nedenle zihinsel bir olası şifreler listesi üzerinde çalışmak için iyi bir GUI tabanlı bir test olacaktır.
JimNim

0

Şifreleri test etmek için bilinen birçok araçtan birini kullanabilirsiniz. Gördüğüm bir tanesi L0phtcrack . Belki de bunu çevrimdışı yapmak için bir kimlik doğrulama veritabanı dökümü ile bir yolu bile var. "Diğer dünya" da, "john ripper" ı böyle şeyler için kullanırız.


1
Şifreleri kırmaktan veya güçlerini test etmekten bahsetmiyorum. Belirli bir hesap için girdiğim parolanın o hesabın parolası olup olmadığını söyleyen bir araçtan bahsediyorum.
TheCleaner

@ TheCleaner: Elbette, belirli bir hesap için olası tüm şifreleri içeren bir kelime listesi oluşturabilir ve bu listeyi bir hesap grubu için kullanabilirsiniz. ya da tek bir ... SMB ya da başka bir şeyle test etmek oldukça kötü bir fikirdir. Günlüklerinizi doldurur, oturumları dosya sunucusuna siler, DC'lerde ve dosya sunucularında yük oluşturur, vb.
PEra

0

Yukarıdaki kodu kullanarak, belirli bir şifre kullanıp kullanmadıklarını görmek için tüm etki alanı hesaplarını kontrol edin.

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

-1

Neden bir kimlik doğrulama ile bir ağ servisi kullanmıyorsunuz (telnet, POP, IMAP, SMTP, ne istiyorsun)? Diğer tarafta, makinedeyseniz özel su - userToTestolmayan bir hesaptan deneyebilirsiniz . Eğer şifre tamamsa, kabuk bağlantıya izin veriyorsa userToTest homedir içinde izin verilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.