暴力破解工具的的使用

Use of violence cracking tools

About Brute force


0x00 前言

暴力破解在很多地方都可以用到,比如burp就自带暴力破解的选项,很实用,但是在web以外的服务,比如爆破ftp密码,ssh密码等等,就不能使用了。所以,hydra以及medusa的使用了。

暴力破解就是指,对不知道的账号密码(就是口令)进行猜测尝试,这种尝试很少是漫无目的的随意爆破,这样是没有意义的,往往是基于字典进行暴力猜解,而字典的生成,无非就是弱口令合集或者是那种姓名的拼音合集,是有依据的。这样不仅省了很多不必要的测试,还可以加大爆破成功的几率。

0x01 工具介绍

hydra是一款开源的密码破解工具,目前也有windows版本,我没下载过,一般是用kali自带的,方便简单。medusa也是一款暴力破解密码的神器,但是我发现用hydra的比medusa的多,其实从效率上来说,medusa比hydra要高。这两个爆破神器几乎支持所有的协议。

hydra

参数

-R 继续上次的破解(比如某次被迫中断)
-S 采用SSL链接
-s 指定非默认端口(比如ssh默认的端口是22,但是也会被改为是2222)
-l 指定用户名
-L 指定用户名字典
-p 指定密码
-P 指定密码字典
-e ns 可选选项,n跟s不一定同时使用,n表示使用空密码试探,s是指定用户和密码进行试探(个人不是很理解s)
-C 使用冒号分分割格式,例如”登录名:密码”来代替-P/-L参数
-M 这个就是一一对应,把你的用户名字典跟密码字典一行一行一一对应
-o 指定结果的输出文件
-f 在使用-M参数以后,找到第一对登录名或密码的时候中止破解(-f跟-M以后我找个实际例子,结合使用下瞅一瞅)
-t 设置线程,默认是16
-w 就是设置超时的时间,比如使用某个账号密码登陆,在一定时间内没有回应,就进行下一组爆破,节省时间,默认是30s
-v/V 显示详细过程

server 目标ip
service 支持的服务

示例

破解ssh:

hydra -L username.txt -P password.txt -t 20 -w 20 -o result.txt 10.10.10.10 ssh

破解ftp:

hydra 10.10.10.10 ftp -L username.txt -P password.txt -t 20 -e ns -vV -o result.txt

破解web:

get:hydra -L username.txt -P password.txt -t -vV e ns 10.10.10.10 http-from-get/admin/index.php
post: hydra -L username.txt -P password.txt -s 80 10.10.10.10 http-post-from"/admin/login.php:username=^USER^&password=^password^&submit=login:sorry password serror"

hydra -L username.txt -P password.txt -o result.txt -s 80 10.10.10.10 http-post-from"/admin/login.php:username=^USER^&password=^PASS^:<title>wrong username or password</title>"

get跟post我还没有实际进行尝试,之后再做修改吧。命令基本上都看懂了,post暴力破解的命令第二个:后面跟的就是登录不成功的返回信息了,可以自定义的。

破解https:

hydra -m /index.php -l muts -P pass.txt 10.10.10.10 https

这个也待测试。。。

破解telnet:

hydra 10.10.10.10 telnet -l 用户 -P 密码字典 -t 32 -s 23 -e ns -f -V

破解RDP(远程登陆3389):

hydra 10.10.10.10 rdp -L username.txt -P password.txt -V

其他的暂时没有用过,碰到了我再补充。

medusa

参数

-h 指定主机,就是ip
-H 主机列表
-u 用户名
-U 用户名列表
-p 密码
-P 密码列表
-C 组合条目文件(类似于hydra的-C)
-O 文件的日志信息
-e ns 类似于hydra,n为空密码,s意为账号和密码相同
-M 模块执行名称
-m 传递参数到模块
-d 显示所有的模块
-n 使用非默认的端口
-s 启用SSL
-r 重试间隔时间,默认3秒
-t 设置线程
-L 并行化,每个用户使用一个线程
-f 在人任何的主机上找到第一个账号/密码后,停止破解
-q 显示模块的使用信息
-v 0-6显示的详细级别
-w 0-10错误的调试级别
-V 显示版本
-Z 继续上次扫描

示例

查看可用模块:

medusa -d

查看模块帮助:

medusa -M postgres -q

破解ssh:

medusa -M ssh -h 10.10.10.10 -U username.txt -P password.txt -e ns -f

破解mysql:

medusa -M mysql -h 10.10.10.10 -U username.txt -P password.txt -e ns -f

破解telnet:

medusa -M telnet -h 10.10.10.10 -U username.txt -P password.txt -e ns -f

其实使用的方式就是需要加个模块,然后跟参数都可以了。

0x02 小结

其实这两种工具的具体效率,还是要看字典的内容,如果字典非常给力,那么工具的效率自然就可以提高。至于工具的使用,不同情况下搭配不同的参数就可以了,具体的使用,还是要在实践中学习。


附带上两位大佬的博客:

实例演示之medusa密码破解

hydra—-密码爆破神器


Reprint please specify: wh1te 暴力破解工具的的使用

Previous
Sqlmap Sqlmap
About Sqlmap About Sqlmap Security 0x01 前言关于sqlmap,其实早就想写下总结个这哥是我接触安全认识的第一个神器,非常之叼。sqlmap是十分著名的自动化的SQL注入工具,他是开源的,由pytho
2018-05-10
Next
WEB安全-常见源码泄露 WEB安全-常见源码泄露
About WEB Security About WEB Security 0x0 前言关于WEB安全,这两天做题碰到了.git源码泄露的问题,刚好自己又记得不牢,所以写了个笔记,记录下关于常见的源码泄露。 0x1 .git源码泄露当在一
2018-05-10
TOC