<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    John the Ripper 選項

    John the Ripper的命令行語法

    在不帶命令行參數的情況下調用“john”時,將打印其使用情況摘要。

    支持的命令行參數是密碼文件名和選項。許多被支持的選項接受額外的參數。

    您可以在命令行“john”中列出任意數量的密碼文件。您不必指定任何選項。如果指定了有效的密碼文件,但沒有給出選項,John將通過默認設置的破解模式的默認選擇。

    選項可以與密碼文件一起指定,也可以單獨指定,不過有些選項要求指定密碼文件,有些則不支持對密碼文件的操作。

    所有選項都是區分大小寫的,只要縮寫沒有歧義就可以縮寫,可以用兩個破折號(GNU-style)或一個破折號作為前綴,可以使用”=”或”:”表示參數(如果支持給定選項)。

    支持的選項如下,方括號表示可選參數:
    --single "single crack" mode

    啟用“單一破解”模式,使用配置文件中的規則[List.Rules: single]。

    --wordlist=FILE wordlist mode, read words from FILE,
    --stdin or from stdin

    它們用于啟用wordlist模式。
    --rules1 enable word mangling rules for wordlist mode

    啟用從[List.Rules:Wordlist ]讀取的單詞混淆規則。
    --incremental[=MODE] "incremental" mode [using section MODE]

    啟用“增量”模式,使用指定的配置文件定義(section [incremental: mode])。如果忽略模式,對于大多數散列類型,默認為“ASCII”,對于LM散列,默認為“LM_ASCII”。

    --external=MODE external mode or word filter

    使用section [List.External: mode]中定義的外部函數啟用外部模式。
    --stdout[=LENGTH] just output candidate passwords

    當使用破解模式時,除了“單一破解”,讓John輸出它生成的候選密碼到stdout,而不是實際嘗試他們對密碼散列;使用此選項時,不能指定密碼文件。如果給定長度,John會假設這是有效密碼長度,并只生成該長度以內的密碼。
    --restore[=NAME] restore an interrupted session

    繼續中斷的破解會話,從指定的會話文件或$JOHN/ JOHN中讀取狀態信息。默認情況下矩形。

    --session=NAME give a new session the NAME

    這個選項只能在開始一個新的破解會話時使用,它的目的是給新的會話一個名稱(John將在其中附加以形成會話文件名的后綴“.rec”)。這對于并行運行多個John實例或能夠稍后恢復除您中斷的最后一個會話之外的其他會話非常有用。
    --status[=NAME] print status of a session [called NAME]

    打印中斷或正在運行的會話的狀態。注意,在unix-like系統中,您可以通過向適當的“john”進程發送SIGHUP來獲得一個分離運行的會話來更新它的會話文件;然后使用此選項讀取并顯示狀態。

    --make-charset=FILE make a charset, overwriting FILE

    根據$JOHN/ JOHN中的字符頻率生成一個字符集文件.pot,用于“增量”模式。默認情況下,pot將用于生成字符集。您可以通過指定一些密碼文件(在這種情況下,只使用與這些密碼文件對應的已破解的密碼)、”–format”或”–external”(使用定義filter()函數的外部模式)來限制使用的密碼集。
    --show show cracked passwords

    顯示已破解的給定密碼文件的密碼(必須指定)。當John的另一個實例正在破解時,您可以使用這個選項來查看John到目前為止做了什么;要獲得最新的信息,首先向適當的“john”進程發送SIGHUP。
    --test[=TIME] run tests and benchmarks for TIME seconds each

    測試所有在哈希算法中編譯的正確操作,并對它們進行基準測試。“–format”選項可用于將此限制為特定的算法。
    --users=[-]LOGIN|UID[,..] [do not] load this (these) user(s)

    允許您僅選擇幾個帳戶以進行破解或其他操作。列表前的破折號可用于反轉檢查(即加載未列出的所有帳戶的信息)。

    --groups=[-]GID[,..] load users [not] of this (these) group(s)

    告訴John只加載(或不加載)指定組中的帳戶信息。
    --shells=[-]SHELL[,..] load users with[out] this (these) shell(s)

    此選項對于僅加載使用有效shell的帳戶或不加載使用錯誤shell的帳戶非常有用。您可以省略shell名稱前的路徑,因此“–shell =csh”將匹配“/bin/csh”和“/usr/bin/csh”,而“–shell =/bin/csh”將只匹配“/bin/csh”。
    --salts=[-]N load salts with[out] at least N passwords

    這一特性允許在某些特殊情況下實現更好的性能。例如,您可以使用“—salts=2”更快地破解一些salt,然后使用“—salts=-2”破解其余的salt。破解總時間大致相同,但你可能會更早地破解一些密碼。

    --save-memory=LEVEL enable memory saving, at LEVEL 1..3

    如果您沒有足夠的內存,或者不希望John過多地影響其他進程,或者不需要它加載和打印登錄名和破解的密碼,那么您可能需要這個選項。一級告訴John不要在登錄名上浪費內存;它只在明確請求破解模式而不是“單一破解”時被支持。它對性能沒有負面影響——事實上,它有時會加快速度。請注意,如果沒有–save-memory=1選項(或更高選項),John將在潛在的登錄名上浪費一些內存,即使密碼散列文件碰巧不包含任何登錄名。(John在開始解析文件時并不知道登錄名的完全缺失,所以它必須記錄每個單獨的條目沒有登錄名的事實,除非您指定了這個選項。)級別2和3減少了涉及大型查找表的性能優化,因此對性能有負面影響。你應該盡量避免使用它們,除非John不能工作或以其他方式交換。

    --node=MIN[-MAX]/TOTAL this node's number range out of TOTAL count

    此選項旨在允許一些簡單的手工配置的并行和分布式處理。例如,要將工作負載分散到兩個節點(可以是機器、CPU內核等),在一次調用John時指定“–node=1/2”,在另一次調用John時指定“–node=2/2”。(如果您只在一臺機器上執行此操作,并且使用相同的John構建,那么還需要為兩個同時發生的調用指定不同的“–session”名稱。)假設節點的速度相同(如果不是這樣,一個節點將會超過另一個節點,并且可能會更快完成,除非您使用破解模式和設置,使會話永遠不會“完成”——這是可以的)。如果您的節點的速度非常不同,您可以通過為單個調用分配節點編號的范圍來彌補。舉個例子,如果你在兩臺機器使用 John OpenMP-enabled構建,OpenMP是支持哈希類型(具有良好的可伸縮性),和其他相比,其中一個機器的CPU內核速度是其兩倍多,然后你可以在兩倍大的機器上用“–node=1-2/3”(讓它成為3個總節點中的節點1和節點2),并在其中一個較小的機器上使用“–node=3/3”。

    這種并行處理方法的效率目前已經實現的有:破解模式的類型和設置(對于增量模式和有很多規則的wordlist模式,效率更高;對于其他破解模式,以及沒有規則或規則很少的wordlist模式,效率更低),salt數(salt含量越高,效率越高)以及節點數(節點數越低,效率越高)。可伸縮性可能受到限制。您可以合理使用的最高節點數因分解模式、其設置、散列類型和salt數的不同而不同。在增量模式下,c/s率方面的效率近乎完美(本質上是沒有開銷),但目前某些節點可能收到太少工作——高節點數(比如100或更多)和限制性設置(比如MinLen和MaxLen被設置為相同的值或較小的范圍,以及使用的字符集文件)會加劇這個問題。在wordlist模式下,為了提高效率,規則計數(在預處理器擴展之后)需要比節點計數高很多倍,除非p/s比率很低(由于哈希類型慢或salt計數高)。

    由于節點之間沒有通信,一個節點成功破解的散列將繼續被其他節點破解。這主要是沒有salt的哈希類型或者當只有一個salt(因為無論如何都要進行相同數量的哈希計算——也就是說,每個候選密碼只測試一次),但這是一個嚴重的缺點。當出現許多不同的salt,因為一些哈希被破解而導致他們的數量有所下降。
    --fork=N fork N processes

    此選項僅在類unix系統上可用。這是一種使用多個CPU或CPU核心的簡單方法——只需指定想要運行的John進程的數量。您可以使用“–fork”作為OpenMP的替代品,以替代目前不支持OpenMP的格式,或者與OpenMP一起使用(例如,在一臺擁有64個邏輯cpu的機器上,您可以選擇使用“–fork=8”來運行8個進程,并使用OpenMP為每個進程運行8個線程)。

    您可以使用“–fork”和“–node”來使用多臺機器,同時每臺機器運行多個John進程。例如,要使用兩臺類似的8核機器,可以在其中一臺機器上運行“–fork=8–node=1-8/16”,在另一臺機器上運行“–fork=8–node=9-16/16”。一個更加復雜的例子,如果你有一個8核機器和一個64核機,且它倆每個核的性能類似,您可以在這兩臺機器上運行支持openmp的構建,并在第一臺機器上使用“–node=1/9”(不使用“–fork”)(一個進程中有8個線程),在64核機器上使用“–fork=8–node=2-9/9”(8個進程中有8個線程,在這臺機器上總共有64個線程)。在當前實現中,分配給每個John調用的節點編號范圍必須與“–fork”進程計數匹配。

    使用“—fork”、“multiple”運行時,創建.rec文件,然后通過“–status”和“–restore”(如果使用這些選項)讀取。與其他選項一樣,不能同時指定“–fork”和“–status”或“–restore”,因為它們首先讀取主“.rec”文件(未編號)。其中包含正確的”–fork”選項,導致進一步讀取(編號)“.rec”文件。

    在內部,“–fork”使用了與“–node”相同的功能,因此也存在同樣的效率和可伸縮性限制。盡管如此,“–fork”通常比OpenMP高效得多——特別是對于快速計算散列類型(比如LM散列)而言,在這種情況下,OpenMP的開銷通常是不可接受的。

    與“-node”類似,使用“-fork”的進程之間幾乎沒有通信。一個進程成功破解的散列將繼續被其他進程破解。就像“–node”一樣,對于無salt哈希類型或者只有一種salt的情況下,這基本沒有問題,但是當存在許多不同的salt,并且它們的數量可能會隨著一些哈希被破解而減少時,這是一個嚴重的缺點。要從所有進程中刪除被破解的散列(可能還有salt),您可以偶爾中斷并恢復會話。
    --format=NAME force hash type NAME

    允許您重寫散列類型檢測。作為John Ripper版本1.8.0,有效的“格式名稱”是descrypt、bsdicrypt、 md5crypt、 bcrypt、LM、 AFS、tripcode、dummy和crypt。您可以在啟動破解會話時使用此選項,也可以同時使用“–test”、“–show”、“–make-charset”等選項。

    注意,John不能同時破解不同類型的散列。如果您碰巧得到一個密碼文件使用了多個散列類型,那么您必須為每個散列類型調用John一次,并且您需要使用此選項使John破解默認情況下自動檢測不到的類型的散列。

    在給定的John版本中,可能支持”–format=crypt”,也可能不支持。在John的默認構建中,目前只在Linux和Solaris中包含這種支持。當指定(并受支持)時,該選項使John去使用系統的crypt(3)或crypt_r(3)函數。這可能需要審計系統支持的密碼散列,但John自己優化的密碼例程還不支持。目前,最近版本的Fedora和Ubuntu使用glibc 2.7+ SHA-crypt散列,以及最近版本的Solaris支持(但默認不使用)的SunMD5散列。實際上,您不必為這些特定類型的散列顯式指定“–format=crypt”,除非在密碼文件中還有其他散列類型(John本地支持的散列類型)(在這種情況下,可能會檢測到另一種散列類型,除非指定此選項)。

    “–format=crypt”也是一個方法,在同一時間,它使John破解不同類型的crypt(3)散列,但是這樣做會導致“faster”類型的散列(與同時加載的“slower”散列相比)的性能較差,并且會導致不必要的糟糕結果(就密碼破解而言)。因此建議您使用單獨的John調用,每個散列類型調用一個。

    附加實用程序(與John一起編譯/安裝)

    在John的run目錄中有一些相關的實用程序。(根據平臺的不同,這些可能是指向主John程序二進制文件的符號鏈接。)

    unshadow PASSWORD-FILE SHADOW-FILE

    組合“passwd”和“shadow”文件(當您已經能夠訪問這兩個文件時),以便與John一起使用。您可能需要這樣做,因為如果您只使用您的shadow文件,“Full Name”或“GECOS”信息將不會被“single crack”模式使用(從而降低其效率),并且您將不能使用“—groups”和“—shell”選項,也不能通過UID和“—users”進行選擇。您可能還希望使用“—show”查看所有passwd文件字段。

    您通常希望將“unshadow”的輸出重定向到一個文件,然后將該文件傳遞給John。
    unafs DATABASE-FILE CELL-NAME

    從二進制AFS數據庫中獲取密碼散列,并生成John可用的輸出(您應該將輸出重定向到一個文件)。
    unique OUTPUT-FILE

    從wordlist中刪除重復項(從stdin中讀取),而不改變條目的順序。如果您有大量的磁盤空間來換取減少的破解時間(可能會嘗試一些副本,因為它們可能會使用單詞混淆規則產生),那么您可能會希望將此與John的“–stdout”選項一起使用。

    腳本

    John的運行目錄中還提供了一些相關腳本。(John的二進制包可以選擇將這些文件與文檔一起安裝。)

    relbench BENCHMARK-FILE-1 BENCHMARK-FILE-2

    relbench是一個Perl腳本,用于比較兩個“john—test”基準測試運行,例如針對不同的機器、“make”目標、C編譯器、優化選項和john the Ripper版本。要使用它,請將每個“john—test”運行的輸出重定向到一個文件,然后在這兩個文件上運行腳本。腳本輸出的大多數值表示第二個基準測試運行時與第一個基準測試運行時的相對性能,值1.0表示沒有變化,大于1.0的值表示加速,小于1.0的值表示減速。具體地說,該腳本輸出在“john—test”執行的許多基準測試中看到的加速(或減速)的最小值、最大值、中值和幾何平均值。它還輸出中值絕對偏差(相對于中值)和幾何標準差(相對于幾何平均值)。在這兩者中,中間值絕對偏差0.0表明與中間值之間的偏差并不普遍,而幾何標準偏差1.0則表明所有基準測試都以相同的比率加速或減速,或者速度保持不變。實際上,這些值將分別偏離0.0和1.0。
    mailer PASSWORD-FILE

    一個shell腳本發送郵件給所有用戶的密碼被破解。然而,這并不總是一個好主意,因為許多人不檢查他們的電子郵件或忽略這類消息,而這些消息可能是cookie的提示。

    在要求用戶更改密碼(無論使用該腳本還是其他方式)之前,您可能應該部署主動的密碼強度檢查,比如使用passwdqc。您應該在可能使用之前在腳本中編輯消息。
    makechr

    這是(重新)生成.chr文件的腳本。該腳本使用john.pot中的密碼,以及應用所有定義的外部模式過濾器。為了在足夠大的計算機(RAM和cpu)上加快速度,可以在腳本中John調用之后添加“&”(以便并行運行它們)。

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类