CredMaster密码攻击工具使用指南

本文详细介绍了CredMaster工具的功能和使用方法,包括安装步骤、插件说明、操作技巧和实际命令示例。该工具利用AWS API Gateway进行IP地址轮换,支持针对多种认证系统的密码猜测攻击。

CredMaster Cheatsheet

合作作者:Adam Rose & Martin Pearson || 审核:Alyssa Snow

本博客是《攻击工具速查表:信息安全生存指南资源》的一部分。您可以通过以下链接了解更多信息并找到所有速查表:https://www.blackhillsinfosec.com/offensive-tooling-cheatsheets/

重要提示!8月13日更新:本文发布后,BHIS了解到AWS的渗透测试客户服务政策禁止在渗透测试中使用API Gateway。CredMaster广泛使用API Gateway进行IP地址轮换。即使获得授权,使用CredMaster进行渗透测试也可能导致您的AWS账户被封禁或面临法律诉讼。BHIS对违反亚马逊政策或使用CredMaster造成的后果不承担任何责任。使用风险自负!

CredMaster速查表:可打印PDF版本 工具地址:https://github.com/knavesec/CredMaster

CredMaster是一款针对常见目标进行密码猜测攻击的工具,具有规避和反检测能力,使用AWS API为每次猜测轮换IP地址。

前置要求

CredMaster需要AWS订阅。创建账户并生成AWS访问密钥和秘密访问密钥(需要信用卡并可能产生费用)。

https://aws.amazon.com/blogs/security/how-to-find-update-access-keys-password-mfa-aws-management-console/

出于安全和易用性考虑,将密钥导出为环境变量:

1
export AWS_KEY=<您的密钥> && export AWS_SECRET_KEY=<您的秘密密钥>

现在可以通过在变量名前加美元符号($)来引用这些环境变量:

1
echo $AWS_KEY

安装步骤

确保已安装Python 3:

1
python3 --version

克隆仓库:

1
git clone https://github.com/knavesec/CredMaster.git

设置并激活Python虚拟环境,安装依赖:

1
cd CredMaster/ && python3 -m venv credmaster-env && source ./credmaster-env/bin/activate && pip install -r requirements.txt

插件

CredMaster通过插件支持针对各种认证提供者和目标的密码猜测攻击。以下是我们常用插件的简要概述:

插件名称 描述
o365enum 从可能的电子邮件/用户名列表中枚举有效的O365/Microsoft Online用户。不进行认证尝试。
msgraph 通过Graph API认证到Microsoft Online实例。有时可用作Entra ID条件访问绕过。
azuresso 认证到Entra ID(Microsoft Azure Active Directory)。需要使用--domain传入租户域名。
msol 认证到Microsoft Online和托管的O365实例。基本上等同于使用login.microsoftonline.com。
okta 认证到目标组织的Okta登录门户。需要--url标志。
gmailenum 从可能的电子邮件列表中枚举有效的GSuite用户。不进行认证尝试。
fortinetvpn 认证到Fortinet VPN实例。需要--url标志指定目标登录门户。

操作技巧

没有两个组织是相同的,不同的目标需要不同的操作考虑。CredMaster具有许多自定义功能,以适应每个项目的独特目标。以下是我们经常使用的一些最有用的命令行选项:

标志 描述
-t, –threads 设置同时请求的数量。CredMaster将为每个线程在不同区域启动AWS API Gateway。
-d, –delay 设置密码猜测波次之间的延迟(分钟)。设置此选项对于避免锁定合法用户至关重要。
–passwordsperdelay 设置每个延迟周期中每个用户的认证尝试次数。设置此选项对于避免锁定合法用户至关重要。
–region 设置将创建API Gateway的AWS区域。将其设置为目标组织用户所在的区域有时有助于避免检测。
-j, –jitter 设置每个线程在密码猜测之间的最大延迟秒数。
-m, –jitter_min 设置每个线程的最小延迟秒数。
–weekday_warrior 通过传入目标组织的本地UTC时区偏移,将密码猜测波次限制在上午7点、11点和下午3点。这有助于使密码猜测与合法用户登录混在一起。
–clean 销毁所有AWS API。在项目结束后运行以避免昂贵的AWS账单很重要。

示例命令和基本用法

基本命令语法

1
python3 credmaster.py --plugin {{插件名称}} --access_key $AWS_KEY --secret_access_key $AWS_SECRET_KEY -u 用户文件 -p 密码文件 -a ./useragents.txt

O365用户枚举

1
python3 credmaster.py --plugin o365enum --access_key $AWS_KEY --secret_access_key $AWS_SECRET_KEY -u 用户文件 -a ./useragents.txt

Microsoft Online凭据填充攻击(带抖动)

1
python3 credmaster.py --plugin msol --access_key $AWS_KEY --secret_access_key $AWS_SECRET_KEY -f {{用户:密码文件}} -a ./useragents.txt -j 30 -m 5

Microsoft Online密码喷洒攻击(带抖动,波次间隔90分钟)

1
python3 credmaster.py --plugin msol --access_key $AWS_KEY --secret_access_key $AWS_SECRET_KEY -u {{用户名文件}} -p {{密码文件}} -a ./useragents.txt -j 30 -m 5 --passwordsperdelay 1 -d 90

Entra ID/Azure SSO密码喷洒(带抖动,波次间隔90分钟)

1
python3 credmaster.py --plugin azuresso --access_key $AWS_KEY --secret_access_key $AWS_SECRET_KEY --domain {{目标的租户域名}} -u {{用户名文件}} -p {{密码文件}} -a ./useragents.txt -j 30 -m 5 --passwordsperdelay 1 -d 90
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计