
Uma ferramenta de ataque de dicionário SSH multithread em python3
Um script em Python 3 para executar ataques de dicionário/wordlist contra um servidor SSH alvo usando dois arquivos de texto como entrada. Criado para fins da minha avaliação técnica da Intel.
Este script depende de Paramiko e Colorama.
Instale as dependências via pip install -r requirements.txt ou pip3 install -r requirements.txt.
Porta 22 sem limite de tentativas, ou período de bloqueio
python3 buffalo.py localhost users.txt passwords.txt
O número padrão de threads é 100; essa quantidade pode ser aumentada ou reduzida usando o sinalizador thread.
python3 buffalo.py localhost users.txt passwords.txt --threads 200
Especifique o serviço na porta 2222
python3 buffalo.py localhost users.txt passwords.txt --port 2222
A maioria dos sistemas possui algum tipo de limite de tentativas por conta em determinado período de tempo. Para permanecer abaixo desse limite, o número de tentativas por conta pode ser limitado por meio dos sinalizadores --max_attempts e --lockout_period. Por exemplo, para limitar 3 tentativas por conta em um período de 15 minutos.
python3 buffalo.py localhost users.txt passwords.txt --max_attempts 3 --lockout_period 15
[$] python3 buffalo.py -h [12:39:53]
usage: buffalo.py [-h] [--port [PORT]] [--max_attempts [MAX_ATTEMPTS]] [--lockout_period [LOCKOUT_PERIOD]]
[--threads [THREADS]]
target users passwords
Quick SSH brute force script for Red Team @Intel.
positional arguments:
target Target IP or hostname.
users Username file, one username per line.
passwords Password file, one password per line.
optional arguments:
-h, --help show this help message and exit
--port [PORT] SSH port. DEFAULT 22.
--max_attempts [MAX_ATTEMPTS]
Max attempts per account within the lockout window. DEFAULT unlimited.
--lockout_period [LOCKOUT_PERIOD]
Length of the lockout window in minutes. DEFAULT 0.
--threads [THREADS] Thread count. DEFAULT 100.
Aqui está uma breve lista de coisas que acho que seriam legais de implementar no futuro.
invoke_shell do cliente Paramiko.exec_command se credenciais válidas forem encontradas. Ideias abaixo.