ksnctf Q.14 John
これをヒント目的で見に来た人
John the ripper を調べなさい。
問題
問題ページには、なにやらログイン情報みたいなものがある。
ユーザー ID は user00 から user20 と、user99 だ。
ぱっとみログイン情報っぽいが、なんの情報かわからない。
よくよく見てみると、user99 のハッシュ文字列みたいなものが、よめるようになっている。
user99:$6$SHA512IsStrong$DictionaryIsHere.http//ksnctf.sweetduet.info/q/14/dicti0nary_8Th64ikELWEsZFrf.txt:15491:0:99999:7:::
「Dictionary is here.」
とりあえず、この url を見てみる。 ( http にコロンが必要 )
すると、こんな感じで単語がひたすら並んでいる。
finding
EACH
respond
THING
PROBATIONARY
ABUSE
secretly
encyclopedia
...
… 辞書攻撃かな。
なんだか大文字と小文字が混ざっている。
まさかと思い、大文字の F, L, A, G, と _ を先頭にした文字列があるかどうか調べた。
すると、全部ある。アンダーバーもしっかりある。
恐らくこれは user00~user20 までのパスワードを順に並べたときの頭の文字が FLAG になるんじゃないか。
もうほぼ解いたつもりの僕は、配布されている辞書を、単に SHA512 で暗号化して、問題ページのパスワードと比較するプログラムを書いた。
ちなみに、このログイン情報は Unix の/etc/shadow というパスワード情報が格納されているファイルだ。
userID:hashed_password:…
という具合に、コロンで情報が区切られている。
hashed_password は、パスワードと salt と呼ばれる味付け塩(データをランダムにするためのもの)をつけて sha512 でクリプトする。
さぁついにパスワードを辞書攻撃だ!(辞書攻撃と言えるのかすら怪しいシンプルなもの)
しかし、予想は裏切られ
DELIGHT しかマッチしなかった。
どうも行き詰まったのでライトアップを見ることに。
すると、すぐに john the ripper というワードが。
これでぐぐると、どうやら辞書攻撃するツールらしい。
絶対これだ。
すぐさま使ってみるとあっさり完了した。
あとは解析したパスワードを適切に並び替えると… ???
感想
John the ripper がどういう風に辞書攻撃しているのか知りたい あと、暗号化がどんなに強力だろうと、
もとのパスワードが簡単だとなんの意味もないと身に染みて感じさせられた。
よく言われる話ではあるが。