Công cụ kiểm tra tài khoản người dùng và mật khẩu (đăng nhập thử nghiệm)


46

Vâng, tôi có thể kích hoạt VM hoặc điều khiển từ xa vào một cái gì đó và thử mật khẩu ... Tôi biết ... nhưng có một công cụ hoặc tập lệnh sẽ mô phỏng thông tin đăng nhập vừa đủ để xác nhận hoặc từ chối rằng mật khẩu là chính xác không?

Kịch bản:

Mật khẩu của tài khoản dịch vụ máy chủ bị "lãng quên" ... nhưng chúng tôi nghĩ rằng chúng tôi biết nó là gì. Tôi muốn chuyển thông tin đăng nhập cho một cái gì đó và làm cho nó trở lại với "mật khẩu chính xác" hoặc "mật khẩu không chính xác".

Tôi thậm chí đã nghĩ về một tập lệnh ánh xạ ổ đĩa với tài khoản người dùng và mật khẩu được thông qua để xem liệu nó có ánh xạ ổ đĩa thành công hay không nhưng bị lạc trong logic làm cho nó hoạt động chính xác ... đại loại như:

-Script yêu cầu tên người dùng thông qua hộp thư mục -script yêu cầu mật khẩu thông qua hộp thư đến Mật khẩu"

Bất kỳ trợ giúp nào đều được đánh giá cao ... bạn nghĩ rằng đây sẽ là một sự cố hiếm khi không yêu cầu một công cụ hỗ trợ nhưng ... tốt ....


HĐH gì? Dịch vụ gì?
Cristian Ciupitu

@Cristian - Tài khoản miền Windows - chỉ cần xác minh xem mật khẩu có đúng hay không
TheCleaner

Câu trả lời:


77
runas /u:yourdomain\a_test_user notepad.exe

Tiện ích sẽ nhắc nhập mật khẩu, nếu mật khẩu đúng đã được cung cấp, notepad sẽ khởi chạy, nếu không nó sẽ tạo ra lỗi 1326: tên người dùng hoặc mật khẩu không chính xác


1
Thông minh Roberto. +1
TheCleaner

3
Đơn giản. Thanh lịch. Tôi thích nó.
Bỏ qua

5
Tuyệt vời! Giải pháp này có hai ưu điểm quan trọng so với câu trả lời được chấp nhận: 1) có sẵn trên Windows XP +, không phải tải xuống bất cứ thứ gì, 2) liên quan đến điều này: vì nó từ MS, nó không yêu cầu tôi phải tin tưởng mật khẩu cho một số công cụ của bên thứ ba không rõ nguồn gốc.
akavel

2
Quản trị viên Serverfault IT biết điều này, nhưng nếu bạn là người dùng gia đình tìm thấy câu trả lời này trong một tìm kiếm trên web (đây là câu trả lời hay nhất theo cách mà chỉ sử dụng công cụ đi kèm với Windows): trên máy tính gia đình, yourdomainphần trên là của bạn tên máy tính . Tìm trong Bảng điều khiển> Hệ thống. Một trong những giá trị theo nghĩa đen là "Tên máy tính:". Ví dụ: nếu tên máy tính của bạn là "smith-laptop" và tên người dùng của bạn là "joe", bạn sẽ làmrunas /u:smith-laptop\joe notepad.exe
Daryn

1
Khi xác thực thành công, bạn có thể gặp lỗi như1385: Logon failure: the user has not been granted the requested logon type at this computer.
mwfearnley

11

Kịch bản 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


new-object directoryservices.directoryentry "",$username,$password- giá trị trả về, thông tin đăng nhập hoạt động, ngoại lệ, chúng không hoạt động. Lấy từ câu trả lời này, trong đó nó được gói gọn trong một chức năng gọn gàng: serverfault.com/q/596602/57144
TessellatingHeckler

5

Bạn cũng có thể dùng:

sử dụng mạng \ computername \ sharename [password] / USER:] tên người dùng]

Nếu có một chia sẻ theo tên đó trên máy tính từ xa. Hoặc, sử dụng C$nếu tài khoản là quản trị viên.


1

Bạn có thể viết một hàm vbscript dễ dàng có thể xác minh điều này ... đại loại như:

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

Nguồn:

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

http://hsdn.net/carget_3.html


Xin lưu ý rằng điều này sẽ khóa tài khoản sau khi số lần đăng nhập thất bại, 'n' là bất kỳ chính sách nào bạn đã đặt. Điều này luôn luôn đúng với bất kỳ giải pháp nào bạn sử dụng.
mrTomahawk

Ngoài ra, kiểm tra đó có thể bỏ qua thông tin đăng nhập của người dùng cục bộ, trừ khi bạn tinh chỉnh nó, chỉ định tên người dùng hai lần như thế này OpenDSObject("WinNT://domain/userName,user","userName", "password", 1). Nguồn .
Agostino

1

Trên máy tính để bàn Windows, bạn có thể sử dụng Active Directory Explorer của chính SysIternals / MS:

https://docs.microsoft.com/en-us/sysiternals/doads/adexplorer


Tôi giả sử bạn đang đề xuất lời nhắc "Kết nối với Active Directory" ban đầu như trường hợp kiểm tra mật khẩu - điều đó dường như thực hiện công việc từ thử nghiệm của tôi. Mật khẩu không chính xác dẫn đến một dấu nhắc "tên người dùng hoặc mật khẩu không chính xác" khá nhanh, do đó đây sẽ là một thử nghiệm dựa trên GUI tốt để xử lý thông qua một danh sách tinh thần các mật khẩu có thể.
JimNim

0

Bạn có thể sử dụng một trong nhiều công cụ nổi tiếng ngoài kia để kiểm tra mật khẩu. Một cái tôi thấy là L0phtcrack . Có thể thậm chí có một cách để làm điều này ngoại tuyến với một bãi chứa cơ sở dữ liệu xác thực của bạn. Trong "thế giới khác", chúng tôi sử dụng "john the ripper" cho những thứ như thế này.


1
Tôi không nói về việc bẻ khóa mật khẩu hoặc kiểm tra sức mạnh của họ. Tôi đang nói về một công cụ có thể cho tôi biết mật khẩu tôi nhập cho một tài khoản cụ thể có phải là mật khẩu của tài khoản đó không.
TheCleaner

@TheCleaner: Chắc chắn, bạn có thể tạo một danh sách từ với tất cả mật khẩu có thể cho một tài khoản cụ thể và sử dụng danh sách này cho một bộ tài khoản. hoặc một điều duy nhất ... Thử nghiệm với SMB hoặc một cái gì đó là một ý tưởng khá tồi. Nó lấp đầy nhật ký của bạn, làm rối các phiên tới máy chủ tệp, tạo tải trên DC và máy chủ tệp, v.v.
PEra

0

Sử dụng mã từ trên, kiểm tra tất cả các tài khoản miền để xem họ có đang sử dụng một mật khẩu nhất định không.

$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

Tại sao không sử dụng dịch vụ mạng với xác thực (telnet, POP, IMAP, SMTP, những gì bạn muốn)? Mặt khác, nếu bạn đang ở trên máy, bạn có thể thử su - userToTesttừ tài khoản không riêng tư. Nếu mật khẩu ổn, bạn sẽ được phép trong homedir userToTest nếu shell cho phép kết nối

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.