Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
apimspray — Azure apim 迷你代理 | Kitploit
工具/GitHubGitHub/crtvrffnrt/apimspray
OSINT (开源情报)侦察密码攻击信息收集云安全红队
GitHubcrtvrffnrt/apimspray

apimspray

Azure apim 迷你代理

查看仓库
61610天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Apimspray

apimspray

Python Azure License Status

apimspray 是一款专为授权安全研究和红队行动设计的 Entra ID 密码喷洒工具包。它利用 Azure API Management (APIM) 网关作为分布式、轮换的代理层,实现 IP 轮换。

阅读博客文章以了解该项目的更多详细信息。

先决条件

  • Azure CLI (az):旋转脚本需要用于部署资源。(请在已通过 az cli 进行身份验证的 CLI 会话中执行脚本,或使用 Azure Cloud Shell)
  • 有效的 Azure 订阅:用于部署 APIM 消耗层资源(成本可忽略不计,短期评估通常低于 $0.01)。

安装

  1. 克隆仓库。
  2. 安装 Python 依赖:
    root@kitploit:~
    pip install -r requirements.txt
    
  3. 确保已登录 Azure CLI:
    root@kitploit:~
    az login
    
    注意:旋转脚本依赖于后台活跃的 Azure CLI 会话来部署资源。

设置

快速开始(Azure Cloud Shell)

直接在已身份验证的 Azure 环境中运行 apimspray。

在 Azure Cloud Shell 中打开
root@kitploit:~
git clone https://github.com/crtvrffnrt/apimspray.git
cd apimspray
python3 apimspray.py --help

1. 部署网关

将多个 APIM 网关部署到不同区域。

root@kitploit:~
python3 apimspraycreate.py --count 5 --outfile urls.txt

将 33 个 APIM 实例部署到 germanywestcentral 和 westeurope,并保存到 urls.txt。

root@kitploit:~
 python3 apimspraycreate.py --location germanywestcentral,westeurope --count 33 --outfile urls.txt

apimspraycreate CLI 参考:

root@kitploit:~
usage: apimspraycreate.py [-h] --outfile OUTFILE [--count COUNT] [--location LOCATION] [--prefix PREFIX] [--realm-prefix REALM_PREFIX] [--delete-old]

apimspraycreate - Azure APIM 部署器

options:
  -h, --help            显示此帮助信息并退出
  --outfile OUTFILE     用于 URL 的输出文件
  --count COUNT         实例数量
  --location LOCATION   逗号分隔的 APIM 部署区域。提供此参数时,仅使用这些区域,且第一个区域用于资源组。
  --prefix PREFIX       API URL 前缀
  --realm-prefix REALM_PREFIX
                        Realm API 前缀
  --delete-old          删除旧资源组

重要提示: 对于所有方法,后台必须有一个活跃的 az 会话(az login)。

2. 准备字典

确保准备好目标列表:

  • users.txt:用户主体名称列表(例如 [email protected])。
  • passwords.txt:要喷洒的密码列表。

3. 侦察 / UPN 生成(可选)

如果没有用户列表,可以使用辅助脚本 generate_upns.py。该工具:

  1. 查询目标 Azure 租户,发现所有已连接并验证的域。
  2. 从 GitHub 下载统计分析中常见的服务帐户用户名列表。
  3. 生成 UPN(用户主体名称)的排列列表,并保存到 users.txt。

用法:

root@kitploit:~
# 为特定域或租户 ID 生成 users.txt
python3 generate_upns.py --target example.com
# 或者使用 Tenantid
python3 generate_upns.py --target 00000000-0000-0000-0000-000000000000

generate_upns CLI 参考:

root@kitploit:~
usage: generate_upns.py [-h] --target TARGET

从连接的 Azure 租户和服务帐户生成 UPN。

options:
  -h, --help       显示此帮助信息并退出
  --target TARGET  目标域(例如 example.com)或租户 UUID

用法

root@kitploit:~
usage: apimspray.py [-h] [--urls URLS] [--users USERS] [--passwords PASSWORDS] [--output OUTPUT] [--tenant TENANT] [--domain DOMAIN] --mode {spray,validate} [--pace {stealth,low,mid,medium,high}]
                    [--continue-on-success]

apimspray - Entra ID 评估工具

options:
  -h, --help            显示此帮助信息并退出
  --urls URLS           APIM URL 文件路径(来自 apimspraycreate.py 或 apimsprayrotator.sh)
  --users USERS         用户文件路径
  --passwords PASSWORDS 密码文件路径
  --output OUTPUT       输出目录
  --tenant TENANT       租户 ID 或域
  --domain DOMAIN       如果用户缺少域,则附加域
  --mode {spray,validate}
                        操作模式。'spray' 用所有密码测试所有用户(1:N)。'validate' 进行 1:1 凭据对测试。
  --pace {stealth,low,mid,medium,high}
                        请求和锁定管理的节奏配置:
                         - high:    15 个工作线程,0.1s 延迟,每个区块 10 次密码尝试,5m 锁定等待,20 个安全阈值
                         - medium:  5 个工作线程,1.0s 延迟,每个区块 5 次密码尝试,10m 锁定等待,10 个安全阈值,10% 抖动
                         - low:     2 个工作线程,5.0s 延迟,每个区块 2 次密码尝试,15m 锁定等待,5 个安全阈值,20% 抖动
                         - stealth: 1 个工作线程,30.0s 延迟,每个区块 1 次密码尝试,20m 锁定等待,1 个安全阈值,40% 抖动
  --continue-on-success 即使发现有效凭据,也继续评估。

模式

  • validate:检查 user:password 对列表。要求两个列表长度相等。

    root@kitploit:~
    python3 apimspray.py --urls urls.txt --mode validate --users u.txt --passwords p.txt
    
  • spray:尝试一个密码针对所有用户,然后等待(如果配置了),再尝试下一个密码。

    root@kitploit:~
    python3 apimspray.py --urls urls.txt --mode spray --users users.txt --passwords common_passwords.txt --pace medium
    

节奏配置

--pace 参数控制喷洒的激进程度。这些值是硬编码的,以确保稳定性和安全性。

  • 每个区块密码数:在每个用户上尝试的密码数量,之后暂停以等待锁定计时器重置。
  • 锁定等待时间:密码区块之间的休眠时间。
  • 安全阈值:如果此数量的帐户被锁定(AADSTS50053),工具将立即中止。
  • 抖动:随机化延迟以规避静态时序分析。

输出

结果保存在 results/<timestamp>/ 目录中:

  • valid_*.txt:成功认证(需要 MFA 或收到令牌)。
  • blocked_*.txt:锁定或条件阻止的帐户。
  • failed_*.txt:无效凭据或用户未找到。

致谢与参考

  • o365spray:ROPC 流程的逻辑灵感。
  • TeamFiltration:工具结构的设计灵感。
  • FireProx:云网关轮换技术的鼻祖。
下载工具
Profile工作线程数延迟每个区块密码数锁定等待时间安全阈值抖动
high150.1s105m20 个锁定0%
medium51.0s510m10 个锁定10%
low25.0s215m5 个锁定20%
stealth130.0s120m1 个锁定40%