PowerShell批量檢查域密碼弱口令

需求:標題就是需求,想用密碼庫批量檢測一下域內的弱密碼。

解決:PowerShell來實現,不需要第三方工具,不怕被人偷了密碼。


本腳本需要3個文件,空的即可,位於d:/pwd下

1 name.csv,保存需要測試的用戶名列表

2 pwd.csv,保存需要測試的密碼列表

3 name2.csv,保存驗證成功的密碼

域不能限制測試密碼次數,必須管理員方式運行

echo "本腳本需要3個文件,位於d:/pwd下"
echo "1 name.csv,保存需要測試的用戶名列表 "
echo "2 pwd.csv,保存需要測試的密碼列表"
echo "3 name2.csv,保存驗證成功的密碼"
echo "域不能限制測試密碼次數,必須管理員方式運行"
$files = (Get-Childitem d:\pwd\name2.csv).pspath
$content = get-content $files
Import-Csv -Path D:\pwd\name.csv | foreach { 
$bb ="{0}" -F $_.name
$UserName = "tech\" +"$bb"
Import-Csv -Path D:\pwd\pwd.csv | foreach { 
$pwd2 ="{0}" -F $_.pwd
$pass = ConvertTo-SecureString -AsPlainText $_.pwd -Force
$cred = New-Object System.Management.Automation.PSCredential($UserName,$Pass) 
$dCred = $cred
$dUsername = $dCred.username
$dPassword = $dCred.GetNetworkCredential().password
$currentDomain = "LDAP://" + ([ADSI]"").distinguishedName
$auth = New-Object System.DirectoryServices.DirectoryEntry($CurrentDomain,$dUserName,$dPassword)
    if ($auth.name -eq $null)
    {
   # Write-Host 當前測試用戶$bb 當前測試密碼$pwd2
   # Write-Host "驗證密碼失敗." -foregroundcolor 'Red'
    }
    else
   {      Write-Host 當前測試用戶$bb 當前測試密碼$pwd2
    Write-Host "密碼測試成功 -> " $($auth.Name) -foregroundcolor 'green'
     $a = "密碼測試成功 -> $UserName $pwd2" |Out-File -Append  D:\pwd\name2.csv 
    }    }    }

如果有密碼驗證成功的,會自動追加寫入到D:\pwd\name2.csv下,同時,控制檯會綠色顯示那條記錄。

在上面的腳本中,我註釋掉了兩行,可以顯示密碼驗證失敗的時候,以紅色顯示記錄,考慮到不顯示會更節省內存,所以註釋掉了。這個腳本用到了很多PowerShell的知識點,有興趣的同學可以自己看看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章