實例操作
登錄名和密碼
你有很多種方式來指定嘗試的登錄名和密碼,使用 “-l” 選項指定單個登錄名,使用 “-p” 選項指定單個密碼。使用 “-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/
1234
此外,你可以通過指定 “-e” 選項嘗試基礎的密碼,”-e” 選項有三個參數:
- s - 使用登錄名作為密碼
- n - 使用空密碼
- r - 將登錄名倒序作為密碼
如果你想使用這個選項,嘗試使用組合的方式指定,比如可以使用 “-e sn” 指定使用登錄名作為密碼和嘗試空密碼。
除了使用 -p/-P 外,還有一種指定登錄名密碼的方式,使用 “登錄名:密碼” 的格式放到文件中指定,例如:
admin:password
test:test
foo:bar
123
這是一種公共的默認的賬號列表格式,這種格式也是一開始提到的 “dpl4hydra.sh” 生成的默認賬號文件的格式。
你可以使用 “-C” 選項指定該格式的文件,當使用這種賬號模式時,就不能再使用 “-l/-L/-p/-P” 選項(不過可以使用 “-e nsr” 選項)。
例子:
hydra -C default_accounts.txt ftp://localhost/
1
最后,還有一種Brute Force模式(暴力模式),使用 “-x” 選項指定(此選項不能和 “-p/-P/-C” 選項一起使用):
-x minimum_length:maximum_length:charset
1
上面的 charset 位置,使用 a 表示小寫字母,A 表示大寫字母,1 表示數字,and for anything else you supply it is their real representation.
例子:
-x 1生成一個字符的并且小寫字母的密碼。也就是說該參數會嘗試從a到z共26個密碼。
a-x 1生成長度為1到3個字符并且全部小寫字母的密碼
a-x 2生成長度為2到5個字符并且只包含斜杠的密碼
/-x 5生成長度為5到8個字符并且有大寫字母和數字的密碼
A1
例子:
hydra -l ftp -x 3:3:a ftp://localhost/
1
模塊的特殊選項
通過第三個命令行參數(目標主機 服務名稱 選項)或者使用 “-m” 選項,你可以給模塊加一個選項。很多模塊可以加,有一些必須加。
查看特定模塊的選項,執行:
hydra -U <module>
1
例如:
./hydra -U http-post-form
1
特定的選項可以通過 “-m” 參數指定,作為第三個命令行參數或者直接寫在 “service://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
123
恢復 中止/崩潰 的會話
當hydra終止后,可能是因為Control-C,進程被殺死,或者崩潰,它會留下一個 “hydra.restore” 文件,這個文件包含了所有的恢復會話所需的必要信息。這個會話文件每隔5分鐘寫一次。
注意:hydra.restore文件不能復制到不同的平臺下(例如:在不同的字符編碼的平臺間復制,或者不同的操作系統)。
如何 掃描/破解 代理服務器
環境變量 “HYDRA_PROXY_HTTP” 定義了Web代理(這種只能用于http服務)。格式如下:
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"
123
最后一個示例是一個文本文件包含多達64個代理(格式定義與其他示例相同)。
對于所有其他的服務,使用 “HYDRA_PROXY” 環境變量去掃描/破解。例如:
HYDRA_PROXY=[connect|socks4|socks5]://[login:password@]proxy_addr:proxy_port
1
例子:
HYDRA_PROXY=connect://proxy.anonymizer.com:8000
HYDRA_PROXY=socks4://auth:pw@127.0.0.1:1080
HYDRA_PROXY=socksproxylist.txt
123
附加提示
按可能性對密碼文件內容進行排序,并且使用 “-u” 選項查找最快的密碼!
去除密碼字典中重復的密碼! 這將會節省很多時間 :-)
cat words.txt | sort | uniq > dictionary.txt 1如果你知道目標密碼的策略(只允許用戶使用最少6個字符,包含至少一個字母和一個數字,等等。你可以使用hydra自帶的 “pw-inspector” 工具來減少密碼列表:
cat dictionary.txt | pw-inspector -m 6 -c 2 -n > passlist.txt 1
結果輸出
破解結果會和其它信息一起輸出到標準輸出。通過指定 “-o” 命令行參數,可以將破解結果寫入一個文件。使用 “-b” 選項指定輸出的格式。目前支持如下幾個格式:
text- 普通文本。jsonv1- 1.x版本使用的JSON數據格式(見下)。json- 最后一個版本使用的JSON數據格式,當前最后一個版本就是1.x。
如果使用JSON輸出,當hydra啟動報錯時,結果文件中可能會有非JSON格式的數據,可能會導致解析報錯,需要特殊處理。
JSON格式
這里有一個JSON輸出的數據格式示例。注意某些字段信息的標記說明:
errormessages- 該字段是一個數組,包含有hydra運行結束后的錯誤輸出。輸出的內容很隨意,沒有任何格式。success- 表明hydra是否沒有出現任何錯誤成功執行完成。(注意 不是表示有沒有發現弱口令)。根據是否完成取值true或false。quantityfound- 發現的用戶名密碼對的數量。jsonoutputversion- Schema版本, 1.00, 1.01, 1.11, 2.00, 2.03, 等等。
1.00 版本例子:
{
"errormessages": [
"[ERROR] Error Message of Something",
"[ERROR] Another Message",
"These are very free form"
],
"generator": {
"built": "2018-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
}
12345678910111213141516171819202122232425262728293031323334
速度
使用并行特性,密碼破解速度會非常快,但是,它取決于協議,不同協議速度不同。通常最快的是POP3和FTP。
嘗試改變 “-t” 選項的參數去加快速度,參數值越大,速度越快(當然如果過快可能會使服務宕掉,或者會觸發服務的登錄保護機制)
hydra工具安裝使用方法教程
推薦文章: