ルーターへのシェルアクセスを取得しようとしていて、その/ etc/shadowファイルを取得できました:
root:$1$$N76hdwGfg11g0KdKbtyh21:0:0:root:/root:/bin/bash
john を使用してクラックしようとしましたが、できませんでした。
$ ./john --show passwd
0 password hashes cracked, 1 left
私はテストアカウントも作成し、ubuntu/debianでそれをクラックすることに成功しました:
$ ./john --show passwd_test
testtesttest:test:16626:0:99999:7:::
1 password hash cracked, 0 left
ここで、testtesttestはユーザー、testはパスワードです。パスワードハッシュの形式は何ですか?
編集:
見つけた ここ 。ただし、その形式を知っておくとよいでしょう。
Unixライクなシステムでのハッシュの最も一般的な形式は、$ALG$SALT$OUTPUT
の形式です。ここで[〜#〜] alg [〜#〜]は、アルゴリズムを識別する小さな番号[〜#〜] salt [〜#〜]はハッシュのソルトであり、[〜#〜] output [〜#〜]はハッシュ関数の出力です。 [〜#〜] salt [〜#〜]および[〜#〜] output [〜#〜] はbase64でエンコードされています。
アルゴリズム1は、MD5ハッシュ関数の反復に基づく構造である「MD5 crypt」です。このアルゴリズムは、正式な標準では定義されていません(私が知る限り、まだ定義されていません)。 1994年にFreeBSDでPoul-Henning Kampによって導入された でした。
通常のAPIはソルトを追加します。元の実装では48ビットのソルトが強制されました。反復回数は2477に固定されており、著者は当時のハイエンドPCで34µsのベンチマークを行いました。ハッシュに空のソルトがあります。これは珍しいことであり、通常のツールをバイパスしてライブラリ関数を直接呼び出すように設定した開発者または管理者を必要とします。
現在のLinuxシステムでは、通常、SHA-256とSHA-512の反復に基づいた アルゴリズム5および6 を使用します。これらの構成要素はおおまかに PBKDF2 と同じ原理に基づいていますが、反復ハッシュの計算方法が異なります。
パスワードハッシュアルゴリズムに関する豊富な情報は passlibライブラリのドキュメント で確認できます。もちろん、ライブラリではPython実装が提供されます。このアルゴリズムは- passlib.hash.md5_crypt
。
ルータがパスワードハッシュのglibc
標準に準拠していると仮定すると、2番目のフィールド($1$$N76hdwGfg11g0KdKbtyh21
)はパスワードであり、次のようにエンコードされます。
$1$
:反復MD5ハッシュ$
:塩なしN76hdwGfg11g0KdKbtyh21
:ハッシュされたパスワード(base64エンコード)。 16進エンコーディングでは、37bea177019f835d60d0a74a6edca1db