1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[writeup] picoCTF "hashcrack"

Posted at

今回の問題

picoCTFより"hashcrack"を解いていきます。

実際に解いていく

1. 問題文を読む

hashcrack_1.png
今回の問題はWebサイトではなく、ターミナルで行うようです。以下、問題の日本語訳(Google翻訳より)です。
「ある企業が秘密メッセージをサーバー上に保存していましたが、管理者がハッシュ値の弱いパスワードを使用していたため、サーバーが侵害されました。サーバー内に保存されている秘密情報にアクセスできますか?
サーバーにアクセスするにはnc verbal-sleep.picoctf.net 57271

ふむふむ。とりあえず今回の問題は、ハッシュ値が関係していそうですね。

2. nc verbal-sleep.picoctf.net 57271を実行する

ターミナルを開いて、問題文にあるコマンドを実行します。

nc verbal-sleep.picoctf.net 57271

すると、以下の問題が表示されました。

問題1
We have identified a hash: 482c811da5d5b4bc6d497ffa98491e38
Enter the password for identified hash: 

つまり、ハッシュ値482c811da5d5b4bc6d497ffa98491e38を解析すれば良いということです!

以下のWebサイトを使って、ハッシュ値を解析します。
CrackStation

hashcrack_2.png

よって、答えは

password123

だとわかりました。

3. 問題は続く

先ほどの答えを入力すると、新しい問題文が表示されました。

問題2
Correct! You've cracked the MD5 hash with no secret found!

Flag is yet to be revealed!! Crack this hash: b7a875fc1ea228b9061041b7cec4bd3c52ab3ce3
Enter the password for the identified hash: 

今度は、ハッシュ値b7a875fc1ea228b9061041b7cec4bd3c52ab3ce3を解析していきます。先ほどと同じWebサイトを使って解析すると...

hashcrack_3.png

よって、答えは

letmein

です!

4. まだまだ問題は続く

先ほどの答えを入力すると、新しい問題文が表示されました。

問題3
Correct! You've cracked the SHA-1 hash with no secret found!

Almost there!! Crack this hash: 916e8c4f79b25028c9e467f1eb8eee6d6bbdff965f9928310ad30a8d88697745
Enter the password for the identified hash:

ハッシュ値916e8c4f79b25028c9e467f1eb8eee6d6bbdff965f9928310ad30a8d88697745を同じ手順で解析すると...

hashcrack_4.png

よって、答えは以下のようになります。

qwerty098

5. FLAG獲得

以上3つの問題を解くと、以下のメッセージが表示されました。

Correct! You've cracked the SHA-256 hash with a secret found. 
The flag is: picoCTF{UseStr0nG_h@shEs_&PaSswDs!_eff9dbe0}

よって、FLAG picoCTF{UseStr0nG_h@shEs_&PaSswDs!_eff9dbe0} 獲得です!お疲れ様でした。

もう少し考えてみる

ハッシュとは何なのでしょうか?ハッシュの概要をまとめてみました。

ハッシュとは

  • あるデータを固定長の短い文字列(ハッシュ値)に変換する技術、またはその変換された値そのもの
  • 入力データが1文字でも、映画1本分のデータでも、同じ種類のハッシュ関数を使えば、必ず同じ長さの文字列が出力される

特徴

データの「デジタル指紋」に例えて考えることができます。

  • 一意性: 元のデータが少しでも違うと、全く異なる指紋(ハッシュ値)が生成される
  • 再現性: 同じデータからは、何度やっても全く同じ指紋が生成される
  • 一方向性: 指紋から元の人物を復元できないように、ハッシュ値から元のデータを割り出すことはできない

なぜ解析できない(非可逆性の)ハッシュが解析できてしまうのか?

  • ハッシュ値を数学的に復元しているわけではない
  • 考えられるほぼ全ての文字列と、それに対応するハッシュ値をあらかじめ計算して、巨大なデータベースに保存している(レインボーテーブル、総当たり攻撃)

つまり、今回の問題で与えられたハッシュ値は、このようなデータベースに登録されているような、よくある単純な単語や文字列のものだった、ということでした。

まとめ

今回は、ハッシュに関する問題を3つ解きました。問題解決の手順としては、Webサイトにコピペするだけでした。、ハッシュについて学べたので大きな成長であります。

補足

・なし

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?