はまやんはまやんはまやん

hamayanhamayan's blog

Webセキュリティにおけるパスワードクラック問題への傾向と対策

本まとめはセキュリティコンテスト(CTF)で使えるまとめを目指すのが主です。
悪用しないこと。勝手に普通のサーバで試行すると犯罪っぽいです。

パスワードクラック

CTFの問題ではパスワードクラックを要求する問題もある。パスワードクラックと言っても2種類ある。

ログイン試行を突破する

  • 推測で入れてみる
    • 本当に適当に入れてみる。CTFでは推測でこんなユーザーパスがあるのでは?で入れると通ったりする
    • guest:guest user:password admin:admin
  • 初期ユーザーパスワードで入れてみる
    • phpmyadmin
      • root:が初期値なので、変更しないとこれでログイン可能。ユーザー名がrootでパスワードが空白
  • 辞書攻撃
    • パスワードはみなよくある文字列を使ってしまう傾向があるようだ
    • よく使われるパスワードについて辞書を用意しておき、かたっぱしから試行すると成功する場合がある
    • https://wiki.skullsecurity.org/Passwords
      • ここで紹介されてるrockyou.txtがよく使われる。
      • なお、14,341,564(15 millionある)
      • 手元での解析で主に使用される
    • https://github.com/rootphantomer/Blasting_dictionary/blob/master/%E5%B8%B8%E7%94%A8%E5%AF%86%E7%A0%81.txt
      • Webサイトの辞書攻撃で使われててた
      • burpでやるとき
        1. Intruderに送る
        2. Positionsで入れ替えたい部分を$pass$とする
        3. PayloadsでSimple listにして、Load...でファイル読み込む(tools/webpass.txt)
        4. Start attackする
        5. Lengthが異なるものが大体答え
  • 総当たり

ハッシュ値の原文の特定・署名の秘密鍵の特定

ツール

pythonでゴリゴリ書いてもいいが、どうしても遅いのでクラッカーを積極的に使用しよう。

hashcat

パスワードクラッカー、早い。
全探索でcrackするときは、pythonとか使わずにこっち使おう。

使用例 hashcat.exe 530bd2d24bff2d77276c4117dc1fc719 -a 3 ?d?d?d-?d?d?d-?d?d?d?d
530bd2d24bff2d77276c4117dc1fc719:目標ハッシュ
-a 3:3はモード3でマスクアタックのこと
?d?d?d-?d?d?d-?d?d?d?d:はマスクの中身で、?dで整数値。この例だと111-111-1111みたいなのをマッチングする

ハッシュ関数を変えたいときは-mで変える。
https://hashcat.net/wiki/doku.php?id=hashcat
ここに対応表が書いてあるので、md5(md5(pass))であれば-m 2600のように指定する。

原文がアラビア語の場合のクラック

Bitcrack's Bl0g: Cracking Hashes with Other Language Character Sets

具体的には、
./hashcat.exe 58970d579d25f7288599fcd709b3ded3 --hex-charset -1 d8d9 -2 8182838485868788898aa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf -a 3 ?1?2?1?2?1?2?1?2?1?2?1?2 -o result.txt
のようにやる。
出力はコンソールだとうまく出てこないので、txtに吐く
パターンは?1?2で1文字

↑のやつはアラビア文字に絞っているみたいで、もうちょっと広い範囲で試したいなら下。
hashcat.exe 58970d579d25f7288599fcd709b3ded3 --hex-charset -1 d8d9dadb -2 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf -a 3 ?1?2?1?2?1?2?1?2?1?2?1?2 -o result.txt

Jack The Ripper

パスワードの総合的なクラックツール。

CTF Writeups

工事中

Practicalな話

実装時に気を付けること

ハッシュ化して保存しておく場合は長めのソルトをつけよう。

(CTFじゃ使えないけど)テストツール

Jack The Ripper, Hashcat