SpearSpray:专为AD环境设计的高级密码喷洒工具

2025-10-10 10:45:01 0 110

SpearSpray

SpearSpray 是一款专为 Active Directory 环境设计的高级密码喷洒工具。它结合了通过 LDAP 进行用户枚举和基于模式的智能密码生成功能,从而通过 Kerberos 执行可控且隐秘的密码喷洒攻击。

Github:https://github.com/sikumy/spearspray

特征

核心能力

  • LDAP 集成:通过 LDAP 查询直接枚举 Active Directory 用户
  • 自定义 LDAP 查询:定义特定查询以仅针对特定用户或组进行喷洒
  • 基于模式的密码生成:用于创建目标密码列表的灵活模板系统
  • 域策略感知:自动检索和遵守域密码策略
  • 帐户锁定保护:智能过滤,避免锁定用户帐户
  • PSO 检测:使用密码设置对象识别和处理用户
  • Kerberos 身份验证:通过 Kerberos 预身份验证进行快速高效的身份验证测试
  • Neo4j 集成:在 Neo4j/BloodHound 数据库中自动将受损用户标记为“已拥有”
  • 实时结果:实时反馈显示在攻击期间哪些用户被标记为所有者
  • 攻击摘要:包含统计数据和成功率的综合结果摘要

安全与隐身功能

  • 抖动支持:可配置身份验证尝试之间的延迟
  • 阈值管理:自动过滤接近锁定阈值的用户
  • 多线程:可配置线程数以优化性能
  • 速率限制:控制每秒的请求数,以防止域控制器不堪重负
  • SSL/LDAPS 支持:需要时保护 LDAP 连接

先进的模式系统

  • 动态变量:支持用户特定数据(姓名、上次更改密码的日期......)
  • 自定义分隔符和后缀:灵活的密码模式自定义
  • 额外参数:公司特定术语的整合。
  • 交互式模式选择:用于模式选择的动态菜单系统

要求

  • Python 3.8+
  • 有效的 Active Directory 凭据
  • 对目标域控制器的网络访问

安装

先决条件

# Install system dependencies (Ubuntu/Debian)
sudo apt-get update
sudo apt-get install python3-dev libkrb5-dev libldap2-dev libsasl2-dev

# Install system dependencies (CentOS/RHEL)
sudo yum install python3-devel krb5-devel openldap-devel libsasl2-dev

# Install system dependencies (macOS)
brew install krb5 openldap

从 GitHub(推荐)

git clone https://github.com/sikumy/spearspray.git
cd spearspray
pip install -e .

使用 Poetry

git clone https://github.com/sikumy/spearspray.git
cd spearspray
poetry install
poetry run spearspray --help

直接安装

pip install git+https://github.com/sikumy/spearspray.git

用法

命令行选项

LDAP 配置

  • -d, --domain: LDAP 域名(例如,fabrikam.local)[必需]
  • -u, --username: LDAP 用户名[必填]
  • -p, --password: LDAP 密码[必填]
  • -dc, --domain-controller: 域控制器的 FQDN 或 IP [必需]
  • -q, --query: 自定义 LDAP 查询(默认:启用用户,不包括被阻止的帐户)
  • --ssl: 使用 SSL/LDAPS 连接(端口 636)
  • -lps, --ldap-page-size: LDAP 分页大小(默认值:200)

Neo4j 集成

  • -nu, --neo4j-username: BloodHound 集成的 Neo4j 用户名
  • -np, --neo4j-password: BloodHound 集成的 Neo4j 密码
  • --uri: Neo4j 连接 URI(默认:bolt://localhost:7687)

密码喷洒配置

  • -t, --threads: 并发线程数(默认值:10)
  • -j, --jitter: 尝试之间的延迟:N 秒或 N,M 范围(默认值:0)
  • --max-rps: 每秒最大 Kerberos 请求数。如果未设置,则不应用速率限制
  • -thr, --threshold: 帐户锁定前尝试离开缓冲区的次数(默认值:2)

模式配置

  • -i, --input: 模式文件路径(默认patterns.txt:)
  • -x, --extra: 通过变量注入密码模式的自定义单词{extra}(例如,公司名称,无空格/逗号)
  • -sep, --separator: 模式中变量的分隔符(默认值:无)
  • -suf, --suffix: 模式中变量的后缀字符(默认值:无)

其他选项

  • -s, --silent: 不显示启动横幅
  • --debug: 启用文件输出的调试日志记录
  • -l, --list: 列出可用的模式变量并退出

基本用法

您可以使用以下命令列出可用的模式变量:

# List available pattern variables
spearspray -l

这些变量可用于在文件中创建模式。

下面,您可以看到两个最简单的 SpearSpray 命令:

# Basic password spraying with default settings
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local

# Add extra word for pattern generation
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local -x "CompanyName"

--extra-x)参数在需要在模式中使用特定词汇,或需对所有用户测试相同密码时极为实用。其效果完全取决于您在patterns.txt中编写的模式是否使用了{extra}变量。

高级用法

SpearSpray 支持一系列参数,可以增强密码喷洒各个方面的定制性,并适应各种场景:

# Domain controllers might require an encrypted connection
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local --ssl

# Perhaps you only want to perform Password Spraying on a specific group of users (SpearSpray allows it!)
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local \
  -q "(&(objectCategory=person)(objectClass=user)(department=IT))"

# You want to add symbols as separators or suffixes to passwords generated by patterns
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local -sep '@' -suf '!'

# Integrate with Neo4j/BloodHound to automatically mark compromised users as owned
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local -nu neo4j -np bloodhound

隐蔽使用

如果您正在执行任务,或者身处非常敏感的环境,需要控制 SpearSpray 的速度。有几种方法可供选择:

# You can try reducing the number of threads
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local -t 5

# You can try adding a fixed jitter (N) or random jitter between two values (N,M)
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local -j 3,5

# You can limit the requests per second that the tool makes
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local --max-rps 10

您还可以将所有这些参数组合在一起。

关于作者

whoami115篇文章173篇回复

勤快的搬运工。

评论0次

要评论?请先  登录  或  注册