HashidとHash-identifier

Kalilinux

入手したhash値の種類(Hash関数)を推定する2つのツールです。

パスワードはハッシュ関数でハッシュ化されて、hash値(パスワードハッシュ)として保管されています。

ハッシュ関数には様々な方式があり、どの種類のハッシュ関数でハッシュ化された値かを推定するのがこの2つのツールです。

ハッシュ関数を推定したのち、その情報をパスワードクラックツールに入力してパスワードクラックを行います。

ハッシュ関数とハッシュ値について

ハッシュ関数は、元の平文(=パスワード)をある一定のアルゴリズムに従って計算します。

平文(パスワード) ⇨ ハッシュ関数 ⇨ ハッシュ値

そのアルゴリズムには様々な種類があります。(例:MD5、SHA1など多数あり)

この関数により算出された結果をハッシュ値(パスワードハッシュ)と呼びます。

余談ですが、
ハッシュ値は逆方向への計算は出来ませんが、古いハッシュ関数の中には衝突困難性の脆弱性を突いて破られているものがあります。( = 簡単に言うと、ターゲットのハッシュ値と同じ計算結果となるような別の平文を人工的に作り出すことが可能なのものがあります。元の平文が別でも、結果のハッシュ値が同じであれば、それはパスワードとして通用します。)
*ここで取り上げるMD5、SHA1とも古いハッシュ関数で破られています。

準備:ハッシュ値の製造

それでは鑑別対象のハッシュ値を手にいれる為、ハッシュ値を製造してみます。

まずは、テキストエディタなどを用いて平文の入ったテキストファイルを作成します。

例では ” Mousepad ” を使って、平文 ” abc123 ” の内容のテキストファイルを、 ” plane.txt ” として保存しました。

plane text

同じことが例えば下記コマンドでも可能です。

ホームディレクトリ内に ” plane.txt ” ファイルが出来ています。

ls

MD5関数によるハッシュ値の作成

では、 ” plane.txt ” の中の平文 ” abc123 ” を、MD5関数でハッシュ化します。

そしてその結果を ” hash.txt ” に保存します。

md5sum

” hash.txt ” の中を調べてみると、 ” 2c6c… ” から始まるハッシュ値の他に、 ” plane.txt ” という余分な文字がありますので、これをテキストエディタで開いて編集して、削除しておきます。

hash

SHA1関数によるハッシュ値の作成

次に ” plane.txt ” の中の平文 ” abc123 ” を、SHA1関数でハッシュ化します。

そしてその結果を ” hash2.txt ” に保存します。

sha1sum

” hash2.txt ” の中身も同じく、 ” 61ee… ” から始まるハッシュ値の他に、 ” plane.txt ” という余分な文字がありますので、これをテキストエディタで開いて編集して、削除しておきます。

sha1 hash

hashid

hashidの起動

Kali ー 05-Password Attacks ー Offline Attacks ー hashid

hashid

ヘルプ画面が表示されます。

hashid -h

解析その1

まずは ” MD5 ” でハッシュ化した、 ” hash.txt ” を解析してみます。もしも ” MD5 ” と推定されれば当たりです。

hashid md5

結果は、MD5を含む沢山のハッシュ関数が並んでおり、1つだけにピタリと絞り込むことは出来なかったようです。

解析その2

次に ” SHA1 ” でハッシュ化した、 ” hash2.txt ” を解析してみます。もしも ” SHA1 ” と推定されれば当たりです。

hashid sha1

トップに ” SHA1 ” と表示されています。

hash-identifier

hash-identifierの起動

Kali ー 05-Password Attacks ー Offline Attacks ー hash-identifier

hash-identifier

ヘルプ画面は出ずにいきなりこの画面でハッシュ値を聞いてきます。(バージョンは1.2)

hash-identifier

解析その1

ここでは ” hash.txt ” 内のハッシュ値を直接コピペして入力します。 ” MD5 ” と推定されれば当たりです。

hash-identifier

MD5と推定されています。

hash-identifier md5

解析その2

次に ” hash2.txt ” 内のハッシュ値を直接コピペして入力します。 ” SHA1 ” と推定されれば当たりです。

hash-identifier sha1

SHA1と推定されています。

まとめ

ハッシュ値からハッシュ関数を推定するツール、 ” hashid ” と ” hash-identifier ” でした。

後者の方が成績が良かったみたいですが、実際には両者を(あるいはその他のツールも)使って解析するのだと思います。

コメント

タイトルとURLをコピーしました