ksnctf Q.14


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 がどういう風に辞書攻撃しているのか知りたい あと、暗号化がどんなに強力だろうと、

もとのパスワードが簡単だとなんの意味もないと身に染みて感じさせられた。

よく言われる話ではあるが。