MichaelGrafnetter/DSInternals

Empty Password not returning full results

joejsullivan opened this issue · 3 comments

Hi,
Maybe I'm looking at this or doing something wrong - I'm executing lines like this:

$accounts = Get-ADDBAccount -DatabasePath $path -BootKey $key -All | Where-Object samaccounttype -like User
$results = $accounts | Test-PasswordQuality
$riskyAccounts = $accounts | Where-Object LogonName -in $results.EmptyPassword
$riskyAccounts | Select-Object -Property SamAccountName .... | Export-Csv some-path

While this does produce fantastically interesting data, it is missing the hash for empty password- 31d6cfe0d16ae931b73c59d7e0c089c0

When looking at the password file directly, this hash is present, when analyzed through Get-ADDBAccount, it does not detect any empty password results.

Suggestions? Am I doing something wrong?

Thanks,
Joe

I think a workaround could be to enter the hash 31d6cfe0d16ae931b73c59d7e0c089c0 into the weak password hash sorted file and call it "empty password" in the output.

$results = $accounts | Test-PasswordQuality -WeakPasswordHashesSortedFile single-empty-hash.txt

Hello @joejsullivan , I double-checked the code behind the EmptyPassword test and it actually compares the NT hash against 31d6cfe0d16ae931b73c59d7e0c089c0:

if (this.Account.NTHash == null)
{
    // The account has no password.
    this.result.EmptyPassword.Add(this.Account.LogonName);

    // All the remaining tests are based on NT hash, so we can skip them.
    return;
}

if (HashEqualityComparer.GetInstance().Equals(this.Account.NTHash, NTHash.Empty))
{
    // The account has an empty password.
    this.result.EmptyPassword.Add(this.Account.LogonName);

    // Skip the remaining tests, because they only make sense for non-empty passwords.
    return;
}

Could you please re-test? Maybe you are just missing the -IncludeDisabledAccounts parameter. Disabled accounts are more likely to have an empty password than enabled ones.

Thanks @MichaelGrafnetter. That's likely the issue. Thanks for the quick reply.

Joe