ハッカーはJohn the Ripperツールでパスワードキャッシュを解析してパスワードをクラックする(Kali Linu)
パスワードキャッシュを解析してパスワードをクラックする方法を理解するためにまとめてみました。
このの動作確認は自分のドメインでテストを行っています。
John the Ripperとは
John the Ripperは、複数のクラッキングモードを1つのプログラムに統合しており、特定のニーズに合わせて完全に設定することができます。また、John the Ripperは複数の異なるプラットフォームに対応しているため、どこでも同じクラッカーを使うことができます (別のプラットフォームで開始したクラッキングセッションを継続することもできます)。
動作確認では、Kali Linuxにテストユーザーを追加して、作成したパスワードハッシュよりパスワードをクラックしました。
機能
・パスワードをクラックします。
ツールの場所
[Applications]→[05-Password Attacks]→[john]
ツールと使用方法
john [OPTIONS] [PASSWORD-FILES]
例 john -users:u-john password.txt
【実行イメージ】少し端折って整形しています。
┌──(root__kali)-[/home/kali]
└─# john -users:u-john password.txt
Using default input encoding: UTF-8
Loaded 1 password hash (HMAC-SHA256 [password is key, SHA256 256/256 AVX2 8x])
Will run 2 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
Warning: Only 2 candidates buffered for the current salt, minimum 16 needed for performance.
Warning: Only 10 candidates buffered for the current salt, minimum 16 needed for performance.
Almost done: Processing the remaining buffered candidate passwords, if any.
Warning: Only 1 candidate buffered for the current salt, minimum 16 needed for performance.
Proceeding with wordlist:/usr/share/john/password.lst, rules:Wordlist
Proceeding with incremental:ASCII
:
:
時間がかかっております。
終了次第アップデートします。
オプション
–single[=SECTION[,..]]
“single crack" mode, using default or named rules.
“single crack “モードでは、デフォルトまたは名前付きのルールを使用します。
–single=:rule[,..]
same, using “immediate" rule(s).
同じく、「即時」ルールを使用します。
–wordlist[=FILE] –stdin
wordlist mode, read words from FILE or stdin.
ワードリストモードでは、FILEまたはstdinから単語を読み込みます。
–wordlist[=FILE] –pipe
like –stdin, but bulk reads, and allows rules.
–stdinのように、一括して読み込んで、ルールを許可します。
–loopback[=FILE]
like –wordlist, but extract words from a .pot file.
–wordlist と同様に、.pot ファイルから単語を抽出します。
–dupe-suppression
suppress all dupes in wordlist (and force preload).
ワードリスト内のすべてのダブりを抑制する(プリロードを強制する)。
–prince[=FILE]
PRINCE mode, read words from FILE.
PRINCEモードでは、FILEから単語を読み込みます。
–encoding=NAME
input encoding (eg. UTF-8, ISO-8859-1). See also doc/ENCODINGS and –list=hidden-options.
入力エンコーディング(例:UTF-8、ISO-8859-1)を指定します。doc/ENCODINGS および –list=hidden-options も参照してください。
–rules[=SECTION[,..]]
enable word mangling rules (for wordlist or PRINCE modes), using default or named rules.
デフォルトまたは名前付きのルールを使用して、(wordlistまたはPRINCEモードの)単語のマングリングルールを有効にします。
–rules=:rule[;..]]
same, using “immediate" rule(s).
同じく、「即時」ルールを使用します。
–rules-stack=SECTION[,..]
stacked rules, applied after regular rules or to modes that otherwise don’t support rules.
通常のルールの後や、ルールがサポートされていないモードに適用される、スタックされたルール。
–rules-stack=:rule[;..]
same, using “immediate" rule(s).
同じく、「即時」ルールを使用します。
–incremental[=MODE]
“incremental" mode [using section MODE].
“インクリメンタル “モード[セクションMODEを使用]。
–mask[=MASK]
mask mode using MASK (or default from john.conf).
MASK(またはjohn.confのデフォルト)を使用したマスクモード。
–markov[=OPTIONS]
“Markov" mode (see doc/MARKOV).
“Markov “モード(doc/MARKOV参照)。
–external=MODE
external mode or word filter.
外部モードまたはワードフィルター。
–subsets[=CHARSET]
“subsets" mode (see doc/SUBSETS).
“subsets “モード(doc/SUBSETS参照)。
–stdout[=LENGTH]
just output candidate passwords [cut at LENGTH].
候補となるパスワードを「長さ」で出力するだけです。
–restore[=NAME]
restore an interrupted session [called NAME].
中断されたセッション(NAMEと呼ばれる)を復元します。
–session=NAME
give a new session the NAME.
新しいセッションにNAMEを与えます。
–status[=NAME]
print status of a session [called NAME].
NAMEというセッションのステータスを表示します。
–make-charset=FILE
make a charset file. It will be overwritten.
は、charsetファイルを作る。上書きされます。
–show[=left]
show cracked passwords [if =left, then uncracked].
クラックされたパスワードを表示する[=左の場合は、クラックされていないパスワードを表示]。
–test[=TIME]
run tests and benchmarks for TIME seconds each.
テストとベンチマークをそれぞれTIME秒ずつ実行します。
–users=[-]LOGIN|UID[,..]
[do not] load this (these) user(s) only.
このユーザーだけに負荷をかけないようにしてください。
–groups=[-]GID[,..]
load users [not] of this (these) group(s) only.
この(これらの)グループ(複数可)のみのロードユーザー[ではない]。
–shells=[-]SHELL[,..]
load users with[out] this (these) shell(s) only.
このシェルを使用しているユーザーにのみ負荷をかけることができます。
–salts=[-]COUNT[:MAX]
load salts with[out] COUNT [to MAX] hashes.
COUNT[~MAX]のハッシュで塩をロードします。
–costs=[-]C[:M][,…]
load salts with[out] cost value Cn [to Mn]. For tunable cost parameters, see doc/OPTIONS.
コスト値Cn[からMn]を持つ[外]塩をロードします。調整可能なコストパラメーターについては、doc/OPTIONSを参照してください。
–save-memory=LEVEL
enable memory saving, at LEVEL 1..3.
LEVEL 1..3でメモリーセーブを有効にします。
–node=MIN[-MAX]/TOTAL
this node’s number range out of TOTAL count.
このノードの数の範囲は、TOTALカウントから外れています。
–fork=N
fork N processes.
N個のプロセスをフォークします。
–pot=NAME
pot file to use.
使用するポットファイルです。
–list=WHAT
list capabilities, see –list=help or doc/OPTIONS.
リストの機能については、–list=help または doc/OPTIONS を参照してください。
–format=NAME
force hash of type NAME. The supported formats can be seen with –list=formats and –list=subformats.
NAME型のハッシュを作成します。サポートしているフォーマットは –list=formats と –list=subformats で確認できます。
John the Ripperツールのまとめ
John the Ripperツールでクラックするパスワードを7桁の「john001」に設定した為、すごい時間がかかっています。
もう2時間経ちますがまだ、終了していません。
いつ終わるのでしょうか???
テストでは簡単なパスワードにする必要がありますね。
ブラックハットハッカーは高速なCPUで巨大なメモリのパソコンを使っているのでしょうか?
テストでは、ユーザーidは判明していることを前提にクラッキングしています。
情報さえ用意していれば、時間は掛かりますが以外に簡単にパスワードのクラッキングはできるのですね。
たぶん、サーバーにハッキングした後に、「shadow」「passwd」のデータを元にしています。
よって、正しい「情報」を取得するのが一番の問題ですね。