kali是默认安装了hydra的,hydra险些支持所有协议的在线破解。hydra在网络安全渗透过程中是一款必备的测试工具。
hydra支持的做事有:POP3,SMB,RDP,SSH,FTP,POP3,Telnet,MYSQ... ...
hydra支持的做事

一样平常都是预装在kali中的,这里就不先容安装方法了。
hydra参数讲解还是通过-h参数查看帮助文档:
hydra -h
我只利用过一些常用参数,有些没用过的也只能将帮助文档里的英文进行翻译。以是英文词汇量足够的,可以直接看帮助文档,直接跳过这里的参数讲解,看后面的实操演示。
-R:连续上一次中止/崩溃的任务。-I:(这个是i的大写)忽略已经修复的文件。-S:指定爆破密码时采取SSL连接。-s:指定端口,适用于攻击目标端口非默认的情形。例如:http做事利用非80端口。-l:(这个是L的小写)指定要爆破账户名,适宜在知道用户名爆破密码时利用。-L:指定账户名的字典文件。-p:(小写)指定单个密码,适宜在知道密码爆破用户名时利用。-P:(大写)指定账户密码的字典文件。-x:这个参数紧张是在没有得当的密码字典文件时,让hydra通过传入的参数暴力破解密码用的,用的比较少。-y:在暴力破解时禁止利用指定的符号。-r:在暴力破解时不适用随机天生字符串的办法。-e:可传项nsr,n:空密码试探,s:利用指定用户和密码相同,r:账户密码反转(比如账户root,密码toor)。-u:账户名循环利用,须要和-x一起利用才有效果。-C:当用户名与密码存储到一个文件时利用此参数,把稳,文件(字典)存储的格式必须为“用户名:密码”的格式。-M:指定多个攻击目标,此参数为存储攻击目标的文件的路径(建议为绝对路径)。把稳:列表文件存储格式必须为“地址:端口”-o:将找到用户密码对写入文件中而不是输出到掌握台。-b:指定-o参数输出文档的格式。-f:只要爆破成功一个账户就停滞该主机的爆破,须要和-M一起利用。-F:只要爆破成功一个账户就停滞爆破,须要和-M一起利用。-t:指定爆破时的任务数量(可以理解为线程数),默认为16-T:指定爆破时的任务数量,默认64,须要和-M一起利用。-w:每次要求等待相应的韶光。-W:每个线程两次要求之间的等待间隔。-c:每次线程考试测验登录的等待韶光。-4:利用IPv4的地址。-6:利用IPv6的地址。-v:详情模式。-V:显示每次要求的账户名和密码。-d:debug调试模式。-O:利用SSL的v2活着v3。-K:不做失落败的重复要求,适用于-M批量扫描。-q:不打印连接缺点的信息。-U:显示做事真个详细信息。-m:须要和-U一起适用,用于指定模块的特定选项
hydra实操演示-Windows密码破解
先检讨一下目标主机的账户,并设置一个密码,没有密码也不是不可以,但是就显得后面破解的动作没故意义了。
这里是要利用共享文件夹的smb协议访问,以是也检讨一下是否进行了共享:
net share
为了看到渗透的效果,这里提前将目标的远程桌面打开:
打开远程连接
检讨一下远程连接打开后对应端口是否打开:
netstat -nao
除了3389是远程桌面用的端口,还有445、139都是smb协议会用到的端口。
目标主机的ip地址是192.168.218.131,公网中找目标主机的话,可以用扫描工具随机找,这里就直接在目标主机上查看就行:
ipconfig
用攻击机扫描一下目标主机开放的端口:
目标主机的端口开拓状态
看到这几个端口被开放了,就表示攻击目标已经准备好了。
接下来便是要准备一些字典文件了,可以从Kali中找现成的来用:
Kali中自带的密码字典
但是我准备的机器密码是自己随意设置的,该当不会涌如今Kali中的密码字典中,这里就手动添加一下。
之后就可以用hydra考试测验破解密码了,命令如下:
hydra -l chen -P passwords_john.txt smb://192.168.218.130
破解结果
这里准备的目标机器管理员账户是chen,一样平常品牌机可以利用一些默认的管理员账户,例如administrator、admin。
前面利用的是smb协议,利用rdp协议也是一样的,只要将命令中的协议换一下:
hydra -l chen -P passwords_john.txt rdp://192.168.218.130
实行之后没有获取到密码:
实行结果
从返回的结果中可以看到涌现了一些缺点。紧张是freerdp模块无法和目标主机建立连接导致的,这个无法连接不是账户名密码不对,便是纯挚的无法连接,连密码都还没校验。
碰着这种情形要耐心剖析缘故原由,不要轻易剖断字典中没有精确的密码,可以考试测验根据报错信息找找对应的帖子,或者换一个爆破工具。我这里选择躺平,由于无法在Kali利用xfreerdp命令连接上Windows的远程桌面,不清楚是freerdp工具有问题,还是目标Windows有什么策略限定了。
hydra实操演示-Linux ssh密码破解准备一个Linux的目标机器,检讨一下ssh的端口是否打开:
目标主机的端口开拓状态
直接只用这个命令:
hydra -l root -P pass.lst ssh://192.168.218.129
实行后得到结果:
实行结果
现在该当比较少了,但是平时最好都加个参数-e nsr,会考试测验空密码、账户密码相同、账户密码反转,这些都是很低级的失落误,但是开拓有时候就喜好犯低级缺点。
hydra实操演示-Linux ftp密码破解先查看一下有没有ftp干系的端口被打开:
目标主机的端口开拓状态
这里我们选择攻击2121端口,命令如下:
hydra -L user.txt -P pass.txt ftp://192.168.218.129 -s 2121 -e nsr -vV
须要准备用户名字典和密码字典,按照比较常用的账户密码就行,太多了就比较摧残浪费蹂躏韶光。
实行结果
hydra实操演示-HTTP登录找一个不须要验证码的登录接口,利用hydra进行爆破,命令如下:
hydra -l admin -P passwords_john.txt -f 192.168.218.129 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"
轻微阐明一下,参数-f的浸染是找到一个有效账户后停滞爆破。参数http-post-form表示要求办法和传参类型,现在该当不会有get要求进行登录的,如果真碰着这类奇葩了,可以利用http-get作为参数。
后面一长串字符串第一个英文冒号前面是要求的地址,两个冒号之间的是post的body数据,username和password这两个参数名可以通过页面上提交要求看F12中的network记录,也可以直接看页面的源码中对参数的定义。至于^USER^和^PASS^是固定写法,便是从前面命令中传入的用户名和密码。末了第二个冒号之后的内容表示有这个字符串便是登录失落败。
实行结果
这里要提一下,命令中第二个冒号之后跟的默认是失落败的依据,但是也可以通过S指定成功的依据,例如
hydra -l admin -P passwords_john.txt -f 192.168.218.129 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:S=index.php"
实行结果
hydra实操演示-MySQL密码破解还是先检讨有没有将MySQL的端口打开:
目标主机的端口开拓状态
直策应用如下命令:
hydra -l root -P pass.txt mysql://192.168.218.129 -e nsr -vV
实行结果
hydra图形化界面可以通过命令xhydra打开hydra的图形化掌握台:
hydra的图形化掌握台
如果对hydra的参数有一定理解,基本都能将掌握台上的选项和参数对应起来。
这里就不对图形化掌握台进行演示了,效果实在和命令行是完备同等的。
总结hydra的功能非常强大,而且相对以前的版本,现在的hydra稳定性已经有了较明显的提升。但是要想用hydra做好爆破事情,还是要多熟习各个参数的浸染,要积累各种爆破场景的履历。
提醒一下,密码爆破的核心实在是字典,hydra这类工具只是起到考验字典内容的浸染。