赞
踩
——本文献给无聊的计算机系大学生们
密码破解从大类来分可以分为两种,一种是在线破解,这种方hydra式一般要求待破解的对象对我们来说是可以正常提供服务的,通俗来讲就是能够让我们通过一定的途径去尝试登录,或者是验证用户密码的正确性。而另一种就是本地破解,比如wifi抓包破解wifi密码,只要提前抓到了wifi登录验证的数据包,就可以在本地电脑上进行破解操作,而不需要路由器来参与验证密码的正确性。
本文主要给大家介绍第一种密码破解的方式,也就是在线破解。需要用到的工具是hydra,kali系统会默认安装,ubuntu使用sudo apt-get install hydra
安装即可,其他Linux系统安装类似。此软件有图形界面——输入xhydra
启动(如下图),但本文主要介绍其命令行界面的使用。
web登录页面破解演示:
下面拿路由器的后台管理页面来测试(如下图),用户名已知是root,所以只需要猜出出密码就好了。
我们在浏览中右键检查查看一下这个页面验证密码的具体过程。点击network选项卡,然后随便填一个密码,点击登录,在右边可以看到多出来一个POST请求和它对应的响应报文。POST的内容就是一个简单的键值对的形式(username=用户名&password=密码):
然后我们观察到当密码错误时,页面上会显示无效的用户名和/或密码!请重试。
字样。所以大致的思路应该是:用hydra向ip 58.155.106.35发送一个POST验证请求,把password字段换成字典中的一条,根据服务端的回复验证密码是否正确。然后循环验证字典中的密码。下面直接给出命令,然后再具体解释:
hydra -t 1 -l root -P cyzidian.txt -o out.txt -vV -f 58.155.106.35 http-post-form "/:username=^USER^&password=^PASS^:error"
-t 1
控制线程数 无此选项默认12线程,经过测试这个服务端线程开太多会无响应,所以在这里制定为1(大家应该自行尝试最佳线程数)。
-l root
指定单个用户名“root”。(可替换成-L 字典.txt
来指定一系列用户名)
-P cyzidian.txt
指定密码字典cyzidian.txt(可替换成-p 密码
指定单个密码,一般不常用)。
-o out.txt
将尝试过程与结果保存到out.txt
-vV
显示详细过程
-f
找到一个结果后停止
58.155.106.35
目标ip地址
http-post-form
使用http协议下的post方法进行破解
"/:username=^USER^&password=^PASS^:error"
最后这段字符串由三部分组成,由其中的两个冒号划分,第一部分只有一个”/“,是指定登录页面所在目录,这个例子刚好在根目录。第二部分:username=^USER^&password=^PASS^
,由上文可知这就是刚刚在network中看到的POST提交的内容只是把用户名和密码部分换成了^USER^
和^PASS^
。USER对应前面的-l 后跟的用户名root,PASS会被字典中的密码逐个替换。最后一部分error
是指定的判断密码是否正确的条件,默认是黑名单模式,也就是如果返回页面中存在”error“就说明这个密码不正确,原因是我们在随便输入一个错误密码后,会看到页面中多了一个类为error的标签(如下图):
(备注:上面所说的字典就是一个含有很多可能密码的文本文件,这个可以在网上下载或者是用一些字典生成软件生成,比如crunch)
回车运行
可以看到屏幕上已经开始打印每条尝试结果,理论上来讲如果我们的字典中有正确的密码,耐心等待应该就能够得到正确的结果。
但是按照我们刚刚的配置,过了很久很久也没有发现正确的密码……这时候反应过来,用页面中是否有”error“这个词来判断密码是否正确可能是有问题的。因为如果页面中的其他地方也出现了单词error,那即使出现了正确的密码也会被程序判断为错误。
那就只能再找一个更加显著的错误密码判断条件了。所以只好试一下密码错误后页面中明显出现的无效的用户名和/或密码!请重试。
字样来判断(为什么一开始不用它呢?因为据说最好不要使用中文作为判断条件,具体的原因可能是编码问题或者其他的什么,既然有这种说法肯定是有原因的,所以并不建议用中文字符作为判断条件,但试试也无妨)。
于是将上面命令中最后面的字符串中的最后一项”error“改为无效的用户名
:
hydra -t 1 -l root -P cyzidian.txt -o out.txt -vV -f 58.155.106.35 http-post-form "/:username=^USER^&password=^PASS^:无效的用户名"
然后再运行
可以看到在第103个密码”admin“的地方程序找到了正确的密码:
现在去页面用root,admin登录试试
成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。