PowerShell批量检查域密码弱口令

简介:

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

解决:PowerShell来实现,不需要第三方工具,不怕被人偷了密码。


本脚本需要3个文件,空的即可,位于d:/pwd下

1 name.csv,保存需要测试的用户名列表

2 pwd.csv,保存需要测试的密码列表

3 name2.csv,保存验证成功的密码

域不能限制测试密码次数,必须管理员方式运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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的知识点,有兴趣的同学可以自己看看。



本文转自 九叔 51CTO博客,原文链接:http://blog.51cto.com/jiushu/1675200,如需转载请自行联系原作者

相关文章
|
4月前
|
监控 安全 数据安全/隐私保护
|
4月前
|
Java 开发工具 数据安全/隐私保护
【Azure Developer】使用 Powershell az account get-access-token 命令获取Access Token (使用用户名+密码)
【Azure Developer】使用 Powershell az account get-access-token 命令获取Access Token (使用用户名+密码)
|
C# 数据安全/隐私保护