MSSprinkler是一款功能强大的密码喷射安全测试工具,可以帮助广大研究人员从外部角度测试其 Microsoft Online 帐户的安全性。
MSSprinkler 是用 PowerShell 编写的,可以直接作为模块导入,并且没有其他依赖项。MSSprinkler 依靠 Microsoft 提供的详细错误消息来识别除密码喷射成功或失败的身份验证尝试之外的其他信息,从而可以收集与用户帐户相关的其他信息。MSSprinkler 还允许配置阈值,以防止错误锁定帐户。默认情况下,此阈值设置为 8(Microsoft 默认为 n-2),但可以根据组织的锁定策略进行调整。此外,成功登录启用了 MFA 的帐户不会向用户推送 MFA。
1、自动喷射带有密码列表的 Microsoft Online 帐户列表。
2、采用低速缓慢的方法避免锁定账户。
3、智能检测不存在或被锁定的帐户,跳过这些帐户以减少不必要的流量并加快测试速度。
4、如果需要,可以覆盖默认阈值以更好地匹配组织策略。
5、详细输出,显示有关帐户的其他信息:
6、检测帐户是否被锁定。
7、检测用户是否存在于租户中。
8、检测特定用户是否正在使用 MFA,而无需触发 MFA 推送。
9、输出并将结果存储到 csv 文件中。
广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/TheresAFewConors/MSSprinkler.git
导入模块:
Import-Module MSSprinkler.ps1
使用模块:
Invoke-MSSprinkler
使用样例:
Invoke-MSSprinkler -user userlist.txt -pass passwordlist.txt
Invoke-MSSprinkler -user userlist.txt -pass passwordlist.txt -threshold 12 -output .\output.csv
用户列表文件应包含格式为users@tenant.com的用户列表,每行一个用户。示例如下:
user1 .com
user2 .com
...
user43 .com
密码列表应遵循相同的格式。每行一个密码:
password1
password2
...
password10
可以通过 PowerShell 内置模块在工具内查看更多帮助:
Get-Help .\mssprinkler.ps1 -detailed
输出文件中的时间戳采用 UTC 时区,并带有适合本地用户的偏移量,例如当地时间下午 2:11:
09/17/2024 13:11 +01
本项目的开发与发布遵循MIT开源许可协议。
MSSprinkler:
https://github.com/TheresAFewConors/MSSprinkler