ひとこと

― 今日のひとこと ―
気付けば前回更新してから2年以上経ってた
(2023.10.25)

2013年1月31日木曜日

Hackme攻略 Lv3

今回はHackme Lv3の攻略。



以下、Hackmeの攻略に関するネタバレを多大に含みます。自力で攻略したいなら見ちゃだめです。




[Lv3]




1.ヒントを探す

いつものようにページを眺める。今回もまたヒントになりそうなものは・・・あった。
ページのURLにファイルの階層が表示されている。妙に変だなぁ・・・



2.考える

「URL」「階層」「クラッキング」とくれば思いつくのはディレクトリトラバーサルである。
ディレクトリトラバーサルっていうのは、簡単に言えば他人に見られちゃまずいファイルを覗くことだ。
Hackmeはパスワードクラックの腕試しをするサイト。ということは・・・パスワードが書かれたファイルにアクセスしろということか!



3.検証する

パスワードが書かれたファイル。そういえば、SC対策の講義でshadowパスワードの話を聞いたことがあるな。
たしかLinuxでは「/etc/passwd」と「/etc/shadow」にパスワードを記録しているってやつだ。

普通はユーザが上位階層にアクセスできないようなパーミッションが割り当てられていると思うが・・・
試しに「/etc/passwd」にアクセスしてみよう。URLの「page=」以下を「../etc/passwd」に書き換えてみる。
結果は・・・

ファイルの内容が表示された!

次はshadowだ。しかしURLを「../etc/shadow」に書き換えてみたところ、そんなファイルは存在しないというメッセージが。
調べてみたところ、どうやらUNIX系システムの種類によってshadowファイルの位置や名前が違うらしい。

AIX  → /etc/security/passwd
BSD  → /etc/master.passwd
DG/UX → /etc/tcb/aa/user/
HP-UX → /.secure/etc/passwd

といった具合だ(*1)。
Hackmeの場合はBSDのようで、「/etc/master.passwd」にアクセスすることでshadowファイルを閲覧できた。


どうやら見立ては正しかったようだ。
しかし、パスワードは暗号化されている。復号しなくては。


2021年2月27日追記~~~
/etc/shadowでshadowにアクセス可とコメントにて情報提供いただき、
確かに/etc/shadowを閲覧できることを確認しました。
(/etc/master.passwordは消えているようです。)
どこかのタイミングで変更されてたんですね。
情報提供ありがとうございました!
~~~~~~~~~~~~

4.ツールを使う

passwdファイルとshadowファイルからパスワードを復号するのは人間には不可能なので、何らかのツールが必要になる。
一般的にはJohn the Ripperというフリーソフトが有名なようなので、これを使ってみる。


ここからJohn the Ripperをダウンロードし、解凍する。


・先ほどアクセスしたpasswdとmaster.passwdの内容をそれぞれテキストエディタにコピペし、
「passwd」「shadow」として保存する。


・ダウンロードしたフォルダ内にあるunshadow.exeをコマンドプロンプトで実行し、
passwdファイルとshadowファイルを結合して「passfile」として保存する。

  unshadow.exe passwdファイルのパス shadowファイルのパス > passfileファイルのパス
これで、指定したパスにpassfileファイルが生成される。

このファイルからパスワードを解析していくわけだ。


5.Hackyou!

John the Ripperには3つの解析モードがある。
・single  → ユーザ名と同じパスワードだとかの単純なパスワードを解析する
・wordlist → 既存の単語リストを使ってパスワードを解析する
・incremental → 文字のあらゆる組み合わせを試行して解析する。いわゆるブルートフォース

全て試したところ、singleではヒットせずincrementalでは1時間かけても解析が終わらなかったため、
wordlistを使った方法だけメモしておく。

コマンドプロンプトで↓のコマンドを実行する。
  john --wordlist=password.lst passfileファイルのパス

これだけ。↓のコマンドを実行すれば、解析したパスワードとユーザ名の対応がわかる。
  john -show passfileファイルのパス

そしてこのユーザ名とパスワードをHackme Lv3のフォームに入力すると・・・


Lv3クリア!




Hackmeやるよりこうやって説明書いてる方が時間かかるな。。

*1 The Hack FAQ参照




AWSのS3とJavaで共有ギャラリーでも作ろうかと思い始めた。
暇があればやってみよう。


[2016/02/07 追記]
Lv4の攻略について書きました。


4 件のコメント:

  1. mac版でのパスワード復号のやり方を教えてください!!

    返信削除
    返信
    1. 自分はmac osxで試したことはないのですが、まずJtRのインストールについては以下の他サイト様の記事が参考になるかと思います。

      John The RipperをMacにインストールした【OS X】
      https://mimaunes.hatenablog.com/entry/20160111/1452482635

      Mac OSXでJohn the Ripperのインストール方法
      https://qiita.com/tony-stark/items/2a432c75ec36be9ef53e

      で、使うコマンドについては当記事で紹介しているWindows版と変わらないのではないか(当然、osxなら".exe"拡張子は付けません)と思いますが、当記事を書いてから8年も経っているので現在のJtR最新バージョンでどうかはわかりません。。

      もしだめそうだったら「"john the ripper" "osx" "shadow"」のようなキーワードでGoogle検索して海外のサイトをいくつか覗いてみると答えが出るかもしれません。
      (Chromeであればページまるごと自動翻訳機能があり超便利です。セキュリティ系の記事は質・量ともに海外の方が圧倒的に上ですので英語弱者の自分はよく使います)

      また、もしまだKali Linuxを使ったことがなければこれを機にVirtualBoxで仮想マシンをセットアップしておくのもいいかもしれませんね。
      ちなみにKali LinuxにはJtRがプリインストールされており、世界で最もスタンダードな攻撃環境なのでWeb上の情報も多いです。

      削除
  2. shadowの場所は/etc/shadowでしたよ

    返信削除
    返信
    1. 情報提供ありがとうございます。
      確かに/etc/shadowに変わってますね。

      削除