Crowbar 是一个暴力破解工具,它可以在渗透测试中使用。该工具现在已经被开发成可以破解各种协议,有些协议是目前比较流行的暴力破解工具比如thc-hydra不支持的。
Crowbar是什么?
Crowbar(也被称作Levye)是一个在渗透测试中使用的暴力破解工具。它可以用来暴力破解一些协议,并且使用的是和其他暴破工具不一样的方式。举例说明,大多数的暴破工具使用用户名和密码做SSH暴力破解,而Crowbar使用SSH 秘钥(一个或多个)。这就实现了在渗透测试中获取私钥并用来攻击其他SSH服务器。
目前Crowbar所支持的有:
·OpenVPN (-b openvpn
)
·NLA支持的远程桌面协议Remote Desktop Protocol (RDP) with NLA support (-b rdp
)
·SSH私钥认证SSH private key authentication (-b sshkey
)
·VKC秘钥认证VNC key authentication (-b vpn
)
安装
安装所有依赖
# apt-get -y install openvpn freerdp-x11 vncviewer
从github上得到最新版本
# git clone https://github.com/galkan/crowbar
注:RDP客户端包的选择取决于你的操作系统:
·Debian 7/8 或者 Kali 1/2 使用 freerdp-x11
包;
·其他系统可以试试xfreerdp
.
·不行的话你可能还需要编译并调试freerdp,请参考 :opentechnotes.blogspot.co.uk/2015/02/compile-headless-freerdp-credential-checking.html
别忘了编辑一个脚本指向它。
使用方法
-b:锁定服务 。Crowbar 支持的有: openvpn
, rdp
, sshkey
, vnckey
。
-c: 使用静态密码登录。Static password to login with
-C: </path/to/file>
来获取密码列表。
-d: 在暴力破解之前,运行一个tcp端口在一定范围IP内range (-s
/-S
)扫描(nmap)。这会检测出目标端口是否开启。
-D: 切换成debug模式。
-h: 显示帮助菜单。
-k: </path/to/file-or-folder>
获取key秘钥文件(SSH 或者VNC的)。
-l: 使用</path/to/file>
来存储日志文件log file
(默认是./crowbar.log
)。
-m: </path/to/file>
来获取一个OpenVPN 配置文件。
-n: 获取线程数。
-o: </path/to/file>
来存储成功的尝试(默认是is ./crowbar.out
)。
-p: 端口号(如果目标服务器不是在默认端口上)。
-q: 切换成安静模式quiet mode (只显示成功登录)。
-s: 获取IP地址/范围(加CIDR 标记)。
-S: </path/to/file>
存储目标IP地址。
-t: 获取Timeout 值。
-u: 获取单一用户名。
-U: </path/to/file>
存储用户名列表。
-v: 切换成完全模式verbose mode (显示所有记录)。
如果你需要查看所有使用选项,请使用./crowbar.py --help
查看。
注意:如果你想要使用包含了DOMAIN的用户名,请将用户名具体化如下所示, Backslash () 是Python的转移字符。所以你不得不使用下面两种格式的其中之一。
# ./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 - "DOMAINgokhan 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,
暴力破解远程桌面协议(RDP)
下面是使用Crowbar暴破RDP的几个例子。
使用单一用户名和单一的密码RDP暴破一个单一的IP地址:
# ./crowbar.py -b rdp -s 192.168.2.182/32 -u admin -c Aa123456
使用用户名列表文件和单一密码RDP暴破单一的IP地址:
# ./crowbar.py -b rdp -s 192.168.2.211/32 -U /root/Desktop/userlist -c passw0rd
使用一个用户名列表文件和密码列表RDP暴破单一的IP地址:
# ./crowbar.py -b rdp -s 192.168.2.250/32 -u localuser -C /root/Desktop/passlist
使用一个用户名列表文件和密码列表在discovery模式下RDP暴破一个子网:
# ./crowbar.py -b rdp -s 192.168.2.0/24 -U /root/Desktop/userlist -C /root/Desktop/passlist -d
暴破SSH私钥
以下是使用Crowbar实现暴破SSH私钥的一些例子:
使用单一用户名和单一SSH私钥进行SSH私钥暴破单一IP地址:
# ./crowbar.py -b sshkey -s 192.168.2.105/32 -u root -k /root/.ssh/id_rsa
使用单一用户名和SSH私钥文件进行SSH私钥暴破单一IP地址:
# ./crowbar.py -b sshkey -s 192.168.2.105/32 -u root -k /root/.ssh/
在discovery模式下使用单一用户名和SSH私钥文件进行SSH私钥暴破单一子网:
# ./crowbar.py -b sshkey -s 192.168.2.0/24 -u root -k /root/.ssh/ -d
暴破VNC
以下是使用Crowbar实现暴破一个VNC服务的一个例子:
使用密码文件和特定端口号VNC暴破单一IP地址:
# ./crowbar.py -b vnckey -s 192.168.2.105/32 -p 5902 -k /root/.vnc/passwd
暴破OpenVPN
以下是使用Crowbar实现暴破OpenVPN的一个例子:
通过特定端口号OpenVPN暴破获取一个IP地址,使用了一个配置文件,一个认证文件,一个用户名和一个密码:
# ./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
日志和输出文件
一旦你执行了Crowbar,你会发现它在你的当前目录下生成了两个文件,一个是日志,一个是输出结果。默认日志文件名是crowbar.log,其中存储了所有暴破执行动作。如果你不想使用默认的日志文件,你可以使用-l log_path。第二个文件是crowbar.out,其中保存了所有成功执行记录,如果你不想使用默认的输出文件,你可以使用-o output_path。这样,你就能查看Crowbar的运行了。
感谢
·Bahtiyar Bircan
·Ertuğrul Başaranoğlu
·G0tmi1k
书签
·Patator – A multi-purpose brute-forcer for protocols that are not supported by Crowbar
·Debian OpenSSL Predictable PRNG – Weak predictable SSH keys for Debian based systems (2011)
·ssh-badkeys – A collection of static private SSH keys