SprayHound

Password Attacks v0.0.3

Password spray для Active Directory с интеграцией BloodHound: проверяет политику блокировки и счётчик badPwdCount перед атакой, автоматически помечает найденные учётки как Owned в BloodHound.

v0.0.3
current
Добавлен 26.06.2026 · Обновлён 26.06.2026 · Password Attacks
Установка
# pip
pip install sprayhound

# Из исходников
git clone https://github.com/Hackndo/sprayhound
cd sprayhound && pip install -e .

# Зависимости
pip install ldap3 termcolor

# Пример: spray ActiveDirectory
sprayhound -U users.txt -p 'Password123' -d domain.local -dc 192.168.1.1
переведено ИИ

SprayHound

Версия PyPI Twitter

Пример

Python-библиотека для безопасного подбора паролей в Active Directory, помечает скомпрометированных пользователей как захваченные в BloodHound и обнаруживает пути до администраторов домена

Эта библиотека использует проект ldap3 для всех LDAP-операций.

Разделы Описание
Требования Требования для установки sprayhound
Предупреждение Прочитайте это перед использованием инструмента
Установка Инструкции по установке
Использование Примеры использования и командной строки

Требования

  • Python >= 3.6

Предупреждение

В настоящее время проверяется только политика домена по умолчанию. Если для политики паролей используется пользовательская GPO, она не будет обнаружена. Эта функция находится в разработке.

Установка

Через pip

python3 -m pip install sprayhound

Из исходного кода

sudo apt-get install libsasl2-dev python3-dev libldap2-dev libssl-dev
git clone git@github.com:Hackndo/sprayhound.git
cd sprayhound
python3 setup.py install

Использование

Параметры

$ sprayhound -h

использование: sprayhound [-h] [-u USERNAME] [-U USERFILE]
                  [-p PASSWORD | --lower | --upper] [-t THRESHOLD]
                  [-dc DOMAIN_CONTROLLER] [-d DOMAIN] [-lP LDAP_PORT]
                  [-lu LDAP_USER] [-lp LDAP_PASS] [-lssl]
                  [-lpage LDAP_PAGE_SIZE] [-nh NEO4J_HOST] [-nP NEO4J_PORT]
                  [-nu NEO4J_USER] [-np NEO4J_PASS] [--unsafe] [--force]
                  [--nocolor] [-v]

sprayhound v0.0.1 - Подбор паролей

необязательные аргументы:
  -h, --help            показать это сообщение справки и выйти
  --unsafe              Разрешить попытки входа на аккаунтах, почти заблокированных
  --force               Не запрашивать подтверждение от пользователя
  --nocolor             Не использовать цвета для вывода
  -v                    Уровень детализации (-v или -vv)

учетные данные:
  -u USERNAME, --username USERNAME
                        Имя пользователя
  -U USERFILE, --userfile USERFILE
                        Файл, содержащий список пользователей
  -p PASSWORD, --password PASSWORD
                        Пароль
  --lower               Использовать имя пользователя как пароль в нижнем регистре
  --upper               Использовать имя пользователя как пароль в верхнем регистре
  -t THRESHOLD, --threshold THRESHOLD
                        Допустимое количество оставшихся попыток пароля до блокировки

ldap:
  -dc DOMAIN_CONTROLLER, --domain-controller DOMAIN_CONTROLLER
                        Контроллер домена
  -d DOMAIN, --domain DOMAIN
                        Полное доменное имя (FQDN)
  -lP LDAP_PORT, --ldap-port LDAP_PORT
                        Порт LDAP
  -lu LDAP_USER, --ldap-user LDAP_USER
                        Пользователь LDAP
  -lp LDAP_PASS, --ldap-pass LDAP_PASS
                        Пароль LDAP
  -lssl, --ldap-ssl     LDAP через TLS (ldaps)
  -lpage LDAP_PAGE_SIZE, --ldap-page-size LDAP_PAGE_SIZE
                        Размер страницы LDAP (По умолчанию: 200)

neo4j:
  -nh NEO4J_HOST, --neo4j-host NEO4J_HOST
                        Хост Neo4J (По умолчанию: 127.0.0.1)
  -nP NEO4J_PORT, --neo4j-port NEO4J_PORT
                        Порт Neo4J (По умолчанию: 7687)
  -nu NEO4J_USER, --neo4j-user NEO4J_USER
                        Пользователь Neo4J (По умолчанию: neo4j)
  -np NEO4J_PASS, --neo4j-pass NEO4J_PASS
                        Пароль Neo4J (По умолчанию: neo4j)

Без аутентификации

При использовании без аутентификации sprayhound не сможет проверять политики паролей. Учетные записи могут быть заблокированы.

# Один пользователь, один пароль
sprayhound -u simba -p Pentest123.. -d hackn.lab -dc 10.10.10.1

# Список пользователей, один пароль
sprayhound -U ./users.txt -p Pentest123.. -d hackn.lab -dc 10.10.10.1

# Имя пользователя как пароль
sprayhound -U ./users.txt -d hackn.lab -dc 10.10.10.1

# Имя пользователя как пароль в нижнем регистре
sprayhound -U ./users.txt --lower -d hackn.lab -dc 10.10.10.1

# Имя пользователя как пароль в верхнем регистре
sprayhound -U ./users.txt --upper -d hackn.lab -dc 10.10.10.1

С аутентификацией

При предоставлении действительной доменной учетной записи sprayhound попытается найти политику домена по умолчанию и проверит атрибут badpwdcount каждого пользователя относительно порога блокировки. Если значение слишком близко к порогу, эти учетные записи будут пропущены.

# Один пользователь, один пароль
sprayhound -u simba -p Pentest123.. -d hackn.lab -dc 10.10.10.1 -lu pixis -lp P4ssw0rd

# Все пользователи домена, один пароль
sprayhound -p Pentest123.. -d hackn.lab -dc 10.10.10.1 -lu pixis -lp P4ssw0rd

# Все пользователи домена, один пароль, с использованием учетной записи из доверенного домена
sprayhound -p Pentest123.. -d hackn.lab -dc 10.10.10.1 -lu 'babdcatha.net\Babd' -lp P4ssw0rd

# Имя пользователя как пароль для всех пользователей домена
sprayhound -d hackn.lab -dc 10.10.10.1 -lu pixis -lp P4ssw0rd

# Имя пользователя как пароль в нижнем регистре
sprayhound --lower -d hackn.lab -dc 10.10.10.1 -lu pixis -lp P4ssw0rd

# Имя пользователя как пароль в верхнем регистре
sprayhound --upper -d hackn.lab -dc 10.10.10.1 -lu pixis -lp P4ssw0rd

Разницу между badpwdcount и порогом блокировки можно настроить с помощью параметра --threshold. Если установлено значение 2, а политика паролей блокирует учетные записи после 5 неудачных попыток входа, то sprayhound не будет тестировать пользователей с badpwdcount 3 (и более).

sprayhound -d hackn.lab -dc 10.10.10.1 -lu pixis -lp P4ssw0rd --threshold 1

Интеграция с Bloodhound

Когда sprayhound находит учетные данные, он может пометить эти учетные записи как Захваченные (Owned) в BloodHound. Информацию BloodHound необходимо предоставить этому инструменту.

# -nh: Сервер Neo4J
# -nP: Порт Neo4J
# -nu: Пользователь Neo4J
# -np: Пароль Neo4J
sprayhound -d hackn.lab -dc 10.10.10.1 -lu pixis -lp P4ssw0rd -nh 127.0.0.1 -nP 7687 -nu neo4j -np bloodhound

Журнал изменений

v0.0.2
------
Первый релиз
Комментарии
Войдите, чтобы оставить комментарий