
Um script para testar credenciais contra o Active Directory Federation Services (ADFS), permitindo ataques de password spraying ou força bruta.
Um script para testar credenciais contra o Active Directory Federation Services (ADFS), calculando a URL do ADFS de uma organização e permitindo ataques de password spraying ou brute force.
A ideia principal é realizar ataques de password spraying com um atraso aleatório e alto entre cada teste e usando uma lista de proxies ou Tor para dificultar a detecção pela Equipe Azul. Ataques de brute force também são possíveis, ou testar credenciais no formato usuário:senha (por exemplo, do Pwndb). Logins testados serão armazenados em um arquivo de log para evitar testá-los duas vezes.
./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]
Os parâmetros para os ataques são:
* -t: Domínio alvo. Exemplo: test.com
* -u: Nome de usuário único. Exemplo: [email protected]
* -U: Arquivo com uma lista de nomes de usuário. Exemplo: users.txt
* -p: Senha única. Exemplo: Company123
* -P: Arquivo com uma lista de senhas. Exemplo: passwords.txt
* -UP: Arquivo com uma lista de credenciais no formato "usuário:senha". Exemplo: userpass.txt
* -m : Valor mínimo de segundos aleatórios a aguardar entre cada teste. Padrão: 30
* -M : Valor máximo de segundos aleatórios a aguardar entre cada teste. Padrão: 60
* -tp: Senha do Tor (alterar endereços IP usando Tor)
* -pl: Usar uma lista de proxies (alterar endereços IP usando uma lista de IPs de proxy)
* -n: Número de requisições antes de alterar o endereço IP (usado com -tp ou -pl). Padrão: 1
* -s: Parar ao encontrar uma credencial correta. Padrão: False
* -r: Aleatorizar a combinação de usuários e senhas. Padrão: True
* -d: Exibir mensagens de depuração. Padrão: True
* -l: Local do arquivo de log com credenciais já testadas. Padrão: tested.txt
Password spraying com senha "Company123", senha do Tor é "test123" e alterando o IP a cada 3 requisições:
python3 adfsbrute.py -t company.com -U users.txt -p Company123 -tp test123 -n 3
Password spraying com senha "Company123", senha do Tor é "test123", alterando o IP para cada requisição, tempo de atraso aleatório entre 10 e 20 segundos e não aleatorizar a ordem dos usuários:
python3 adfsbrute.py -t company.com -U users.txt -p Company123 -tp test123 -m 10 -M 20 -r False
Encontrar a URL do ADFS:
python3 adfsbrute.py -t company.com
Para usar o Tor para alterar o IP para cada requisição, você deve gerar um hash de uma senha:
tor --hash-password test123
No arquivo /etc/tor/torrc, descomente a variável ControlPort e a variável HashedControlPassword, e nesta última adicione o hash:
ControlPort 9051
HashedControlPassword 16:7F314CAB402A81F860B3EE449B743AEC0DED9F27FA41831737E2F08F87
Reinicie o serviço tor e use esta senha como argumento para o script ("-tp test123" ou "--tor_password 123")
service tor restart
Este script é implementado para testes em auditorias de segurança, NÃO utilize sem a devida autorização da empresa proprietária do ADFS ou você bloqueará contas.