码迷,mamicode.com
首页 > 系统相关 > 详细

PowerShell批量检查域密码弱口令

时间:2015-07-16 14:24:04      阅读:321      评论:0      收藏:0      [点我收藏+]

标签:powershell   active directory域   adsi   

需求:标题就是需求,想用密码库批量检测一下域内的弱密码。

解决: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 当前测试密码$mysecret
    Write-Host "密码测试成功 -> " $($auth.Name) -foregroundcolor ‘green‘
     $a = "密码测试成功 -> $UserName $mysecret" |Out-File -Append  D:\pwd\name2.csv 
    }    }    }

如果有密码验证成功的,会自动追加写入到D:\pwd\name2.csv下,同时,控制台会绿色显示那条记录。

在上面的脚本中,我注释掉了两行,可以显示密码验证失败的时候,以红色显示记录,考虑到不显示会更节省内存,所以注释掉了。这个脚本用到了很多PowerShell的知识点,有兴趣的同学可以自己看看。

本文出自 “九叔-微软私有云” 博客,请务必保留此出处http://jiushu.blog.51cto.com/972756/1675200

PowerShell批量检查域密码弱口令

标签:powershell   active directory域   adsi   

原文地址:http://jiushu.blog.51cto.com/972756/1675200

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!