密碼破解-john的使用


john類似於hashcat一樣,也是一款密碼破解方式,john跟專注於系統密碼的破解,並且和hashcat一樣在kali中自帶
hash請見hash的簡單使用

識別Hash類型

john會自動識別需要破解的hash,但是很多時候會識別錯誤,這不用擔心,我們使用專門識別hash類型的工具hash-identifier,幸運的是他在kali中自帶,也可以使用網站來識別hash的類型哈希類型標識符

在對hash值的類型進行識別后,我們需要在john找到是否支持破解該類型的hash
john --list=formats可以列出所有可以支持破解的hash類型,我們可以配合grep進行篩選john --list=formats | grep md5

找到john可以破解該類型hash的名稱,我們可以直接使用john進行密碼的破解,下面是john在使用的時候語法格式

john --format=[format] --wordlist=[path to wordlist] [path to file]

重要的參數
--wordlist=字典--format=加密類型

破解windows hash

我們知道windows hash的加密為NTLM,需要我們--format指定,在john中,分別有NTLM兩種加密,這里我並不知道使用哪一個
john --help可以查看幫助

在末尾可以看到--list=formats--list=subformats可以查看所支持的破解類型
不指定破解類型和字典直接破解

john會自動進行使用默認的字典,並識別我們的hash類型進行自動選擇

這里我們的hash存儲在a文件中

john a

破解出來的密碼為空,AdministratorGuest的密碼確實為空,但是Jackson的密碼並不是空的,所以這里john自動識別類型錯誤了
當我們破解成功后,john會將破解成功的hash緩存在我們家目錄的.john/john.pot文件中,需要我們手動進行刪除,否則下次爆破會出現

意思就是讓我們--show查看破解成功的密碼,或者--format=LM指定破解類型
需要手動刪除rm -rf ~/.john/john.pot

指定類型進行破解
john --format=NT a,這里的坑就是john推薦我們使用LM類型,但是並不是

並沒有指定字典,使用默認字典/usr/share/john/password.lst進行破解,摁下Enter查看正在破解1ms8wb..1m1L3R
由於破解時間較長,Ctrl + C停止
同樣刪除john.pot文件
使用字典進行暴力破解
john --wordlist=2.txt --format=NT a

成功將Jackson密碼破解

破解Linux hash密碼

Linux的密碼存儲在/etc/shadow中,只需要查看並復制即可破解
這里hash文件為b

root:$6$90/diajJs2fHcIGa$hB5wj4tMF8Qdd6o5VNRTY4v4vEpV8x0NP4O1N/tpJ8ns7JmJ8RyvSih7.W8TQdfwweUFh16dJejFpKw07i2uR1::0:99999:7:::
jackson:$6$Zje1WaoS$eH24JFr5n67149yBcDWWsfxME5cYlOXMmJxnf2uinbvYm8vWc0BmjvAoXIFY/0ZUJItRpPhHkCGDiqjXT10EV0:19066:0:99999:7:::

Linux的加密算法為sha512crypt
破解john -wordlist=2.txt b

unshadow

John 可能非常挑剔它需要數據的格式才能使用它,因此 - 為了破解 /etc/shadow 密碼,您必須將它與 /etc/passwd 文件結合起來,以便 John了解所提供的數據。為此,我們使用了 John 工具套件中內置的一個名為 unshadow 的工具。unshadow 的基本語法如下:

unshadow [path to passwd] [path to shadow]

unshadow- 調用取消陰影工具

[path to passwd]- 包含您從目標機器獲取的 /etc/passwd 文件副本的文件

[path to shadow]- 包含您從目標機器獲取的 /etc/shadow 文件副本的文件

用法示例:

unshadow local_passwd local_shadow > unshadowed.txt

文件注意事項

使用 unshadow 時,您可以使用整個 /etc/passwd/etc/shadow 文件 - 如果您有它們,或者您可以使用每個文件的相關行,例如:

文件 1 - local_passwd

包含根用戶的 /etc/passwd 行:

root:x:0:0::/root:/bin/bash

文件 2 - local_shadow

包含根用戶的 /etc/shadow 行:

root:$6$2nwjN454g.dv4HN/$m9Z/r2xVfweYVkrr.v5Ft8Ws3/YYksfNwq96UL1FX0OJjY1L6l.DS3KEVsZ9rOVLB/ldTeEL/OIhJZ4GMFMGA0:18576::::::

然后使用john --format=sha512crypt --wordlist=/usr/share/wordlists/rokeyou.txt unshadow.txt

單一破解模式

到目前為止,我們一直在使用 John 的單詞列表模式來處理簡單的暴力破解,而不是那么簡單的哈希。但是 John 還有另一種模式,叫做 Single Crack 模式。在這種模式下,John 僅使用用戶名中提供的信息,通過略微更改用戶名中包含的字母和數字,以啟發式方式嘗試並計算出可能的密碼

詞處理
展示什么是 Single Crack 模式以及什么是單詞 mangling 的最好方法是實際通過一個示例:

如果我們使用用戶名:Markus

一些可能的密碼可能是:

  • Markus1, Markus2, Markus3 (etc.)
  • MArkus, MARkus, MARKus (etc.)
  • Markus!, Markus$, Markus* (etc.)

使用單一破解模式
要使用單一破解模式,我們使用與目前為止大致相同的語法,例如,如果我們想破解名為“Mike”的用戶的密碼,使用單一模式,我們將使用:

john --single --format=[format] [path to file]

--single 這個標志讓 john 知道你想使用單一哈希破解模式

用法示例:

john --single --format=raw-sha256 hashes.txt

關於單破解模式下文件格式的說明:

如果您在單一破解模式下破解哈希,則需要更改您為 john 提供的文件格式,以便它了解從哪些數據創建單詞列表。您可以通過在哈希之前添加哈希所屬的用戶名來執行此操作,因此根據上面的示例 ,我們將更改文件 hashes.txt

From:

1efee03cdcb96d90ad48ccc7b8666033

To

mike:1efee03cdcb96d90ad48ccc7b8666033

試着破解Joker的hash值7bf6d9bb82bed1302f331fc6b816aada

你的答案是什么呢?

破解受密碼保護的 Zip 文件

是的!你沒看錯。我們可以使用 John 來破解受密碼保護的 Zip 文件的密碼。同樣,我們將使用 john 工具套件的單獨部分將 zip 文件轉換為 John 可以理解的格式,但出於所有意圖和目的,我們將使用您的語法你現在已經很熟悉了。

Zip2John
與我們之前使用的 unshadow 工具類似,我們將使用 zip2john 工具將 zip 文件轉換為 John 能夠理解並有望破解的哈希格式。基本用法是這樣的:

zip2john [options] [zip file] > [output file]

[options]- 允許您將特定的校驗和選項傳遞給 zip2john,這通常不是必需的

[zip file]- 您希望獲取其哈希值的 zip 文件的路徑

>- 這是輸出導向器,我們用它來將這個文件的輸出發送到...

[output file]- 這是將存儲輸出的文件

用法示例

zip2john zipfile.zip > zip_hash.txt

然后,我們可以在名為“zip_hash.txt”的示例用例中獲取我們從 zip2john 輸出的文件,並且就像我們對 unshadow 所做的那樣,將它直接提供給 John,因為我們已經專門為它輸入了內容。

john --wordlist=/usr/share/wordlists/rockyou.txt zip_hash.txt

練習https://junglezt.lanzouf.com/iZLDf0rbr27a,下載得到secure.zip,嘗試解開這個zip壓縮包吧

破解受密碼保護的 RAR 存檔

我們可以使用與上一個任務中使用的過程類似的過程來獲取 rar 檔案的密碼。如果您不熟悉,rar 檔案是由 Winrar 檔案管理器創建的壓縮文件。就像 zip 文件一樣,它們可以壓縮各種文件夾和文件。

Rar2John
哈哈,似曾相識的感覺,與我們剛剛使用的 zip2john 工具幾乎相同,我們將使用 rar2john 工具將 rar 文件轉換為 John 能夠理解的哈希格式。基本語法如下:

rar2john [rar file] > [output file]

rar2john- 調用 rar2john 工具

[rar file]- 您希望獲取其哈希值的 rar 文件的路徑

>- 這是輸出導向器,我們用它來將這個文件的輸出發送到...

[output file]- 這是將存儲輸出的文件
用法示例

rar2john rarfile.rar > rar_hash.txt

再一次,我們可以在我們的示例用例中獲取我們從 rar2john 輸出的文件,稱為“rar_hash.txt”,就像我們對 zip2john 所做的那樣,我們可以將它直接提供給 John..

john --wordlist=/usr/share/wordlists/rockyou.txt rar_hash.txt

練習:https://junglezt.lanzouf.com/iP8oZ0rbszzc,下載得到secure.rar文件,嘗試破解這個文件吧

破解SSH密鑰密碼

好的,好的,我聽到了,不再有文件存檔了!美好的!讓我們探索 JohnCTF 挑戰中半頻繁出現的另一種用法。使用John破解id_rsa文件的SSH私鑰密碼。除非另有配置,否則您將使用密碼驗證您的 SSH 登錄。但是,您可以配置基於密鑰的身份驗證,它允許您使用您的私鑰 id_rsa 作為身份驗證密鑰通過 SSH 登錄到遠程計算機。然而,這樣做通常需要密碼——在這里我們將使用 John 來破解此密碼,以允許使用密鑰通過 SSH 進行身份驗證。

ssh2john
誰能猜到,另一個轉換工具?好吧,這就是與 John 合作的意義所在。顧名思義,ssh2john 將您用於登錄SSH會話的 id_rsa 私鑰轉換為 john 可以使用的哈希格式。撇開玩笑不談,這是 John 多才多藝的另一個很好的例子。語法是關於你所期望的。請注意,如果您沒有安裝 ssh2john,則可以使用位於 /opt/john/ssh2john.py 中的 ssh2john.py。如果您這樣做,請將ssh2john命令替換為python3 /opt/ssh2john.py,Kali 上的或,python /usr/share/john/ssh2john.py.

ssh2john [id_rsa private key file] > [output file]

ssh2john - 調用 ssh2john 工具

[id_rsa private key file]- 您希望獲取其哈希值的 id_rsa文件的路徑

>- 這是輸出導向器,我們用它來將這個文件的輸出發送到...

[output file]- 這是將存儲輸出的文件

用法示例

ssh2john id_rsa > id_rsa_hash.txt

最后一次,我們提供從 ssh2john 輸出的文件,在我們的示例用例中稱為“id_rsa_hash.txt”,就像我們對 rar2john 所做的那樣,我們可以與 John 無縫地使用它:

john --wordlist=/usr/share/wordlists/rockyou.txt id_rsa_hash.txt


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM