2018年5月2日水曜日

ksnctf Johnを解いてみた。

Johnってなんだ??とか思いながら。チャレンジ。

user99
の部分は
http//ksnctf.sweetduet.info/q/14/dicti0nary_8Th64ikELWEsZFrf.txt
とするとなぜか文字列がたくさん!!
なんだこれは??
FLAG
で検索するもノーヒット。
これが何の役にたつのか最初はさっぱりわからなかった。

問題文から/etc/passwdかと思った。調べると実際には/etc/shadowの内容と非常に酷似しているようだ。

解答を得る方法として、以下を思いつく。
/etc/shadow内の内容を復号する方法と同じ方法で問題文の情報を復号してみる。

復号方法を調べると、[John the ripper]なるソフトがあることが判明。

これはまさしく問題文のjohnと

手元にvirtualbox上にkali linuxがあるので、John the ripperがあるかみたら、あった!!

ラッキー

つづいて解いてみる。

John the ripperの使い方は
以下のページを参考
パスワードクラックツール JOHN THE RIPPER 使い方まとめ

解析手法としてwordlistなるオプションがある

なるほど、
wordlistに設定するファイル名を
http//ksnctf.sweetduet.info/q/14/dicti0nary_8Th64ikELWEsZFrf.txt
にある情報を指定すればよいのか!!


ただし、最初は以下のエラーが発生。
#unshadow john14 > un_john14
#john --wordlist=***/dict14 un_john14
Using default input encoding: UTF-8
No password hashes loaded (see FAQ)



john14の内容は
問題文の内容をコピペ
vi john
で作成

dict14の内容は
http//ksnctf.sweetduet.info/q/14/dicti0nary_8Th64ikELWEsZFrf.tx
vi dict14
で作成

何が悪いのか。
エラーについてググるもよくわからず。
上記リンクで指定されたファイル(/etc/passwd,/etc/shadow,/usr/share/dict/words)で同じことをやると正常実行できる。

そこでunshadowコマンドの実施をせずに、問題内容をviではりつけたファイルそのものを
unshadowせずに、実行するとみごと各ユーザーに対するPWを得られた。
#john --listword=***/14dict john14
~~~
~~~
floating         (user13)
HELD             (user10)
ADDITIONAL       (user02)
ultimate         (user08)
opinion          (user15)
karaoke          (user17)
zero             (user19)
QUESTION         (user16)
SPIRITS          (user06)
DELIGHT          (user20)
__________       (user04)
GENDER           (user03)
FREQUENT         (user00)
JENNY            (user09)
SUFFERS          (user11)
strange          (user18)
zecht            (user14)
independent      (user07)
applies          (user05)
LATTER           (user01)
LEAVE            (user12)
~~~
~~~

ただし、この後がよくわからなかった。

ただ、もう一度みるとFとかLとかAがある!!

そこでuser00から並べ替えると、F -> L ->A ->Gとなっている。
つまり、FLAGは、user00から昇順で並べ替えた時各PWの1文字目がFLAGとなっていると予想。

みごと正解した。

やっと自力で解けた!!

とってもうれしい。

0 件のコメント:

コメントを投稿