辞書攻撃をする人は何をどう使っているのか

21,681 views

Published on

2013/09/16 すみだセキュリティ勉強界 資料
http://atnd.org/events/42977

辞書攻撃をする人は何をどう使っているのか

  1. 1. 辞書攻撃をする人は何をど う使っているのか 1 123456 12345 password password1 123456789 12345678 1234567890 abc123 computer tigger 1234 qwerty money carmen mickey secret summer internet a1b2c3 123 service canada hello ranger 辞書攻撃 (@ozuma5119) 2013/10/6 すみだITセキュリティ勉強会 @ozuma5119
  2. 2. 自己紹介 • @ozuma5119 • ネット企業でセキュリティサービスを やっているエンジニア • http://d.hatena.ne.jp/ozuma/ • 科学写真家(と名乗っている) 辞書攻撃 (@ozuma5119) 2
  3. 3. はじめに • パスワード、流行ってますよね – よそのサイトのを使い回すなとか – 短すぎるのを使うなとか – 定期変更しようとか、いやそれ意味ないとか – 安易なパスワードをやめようとか – 辞書に載っているのをやめようとか • 辞書って何? 広辞苑? 岩波国語辞典? 辞書攻撃 (@ozuma5119) 3
  4. 4. 辞書とパスワード • 辞書に載っているパスワードは良くな い、の根拠は? – 辞書攻撃されるから使わない方が良い – じゃぁその攻撃に使われている辞書を見た方 が早い • 広辞苑や岩波国語辞典でパスワード攻撃 する人はたぶんいない – そもそも海外からだから。 辞書攻撃 (@ozuma5119) 4
  5. 5. 辞書その1 passwdの 辞書攻撃 (@ozuma5119) 5
  6. 6. 辞書その1 passwdの • 最近のLinuxのpasswdコマンドは、裏で cracklibを使って辞書チェックをしている – /etc/pam.d/passwd を覗いてみましょう – /usr/share/dict/linux.words – もう少し正確に言うとここからcreate-cracklib- dictしてる • 48万単語、5MBほど 辞書攻撃 (@ozuma5119) 6
  7. 7. 辞書その2OpenWallの 辞書攻撃 (@ozuma5119) 7
  8. 8. 辞書その2OpenWallの 辞書攻撃 (@ozuma5119) 8 • OpenWall – 古典的な /etc/passwd クラックツール、John the ripperの開発元 – 有償版と無償版のパスワード辞書 • http://download.openwall.net/pub/wordlists/ – まずは password.gz がオススメ (John the ripper にも同梱されている)
  9. 9. password.gz 辞書攻撃 (@ozuma5119) 9 • よく使われるパ スワードがラン ク順に載ってい る • 3500個ほどと手 頃で使いやすい • 有償版はデカす ぎてむしろ使い にくい(残念) 123456 12345 password password1 123456789 12345678 1234567890 abc123 computer tigger 1234 qwerty money carmen mickey secret summer internet a1b2c3 123 service canada hello ranger shadow baseball donald harley
  10. 10. 辞書その3 BackTrackやKaliに付 属のもの 辞書攻撃 (@ozuma5119) 10 • BackTrack Linux – ペネトレーションテスト(侵入テスト)に用い られるLinuxディストリビューション – でも悪い人たちも使ってるけど。 – 後継が Kali Linux 、今後はこっちが主流 • BackTrackなら /pentest/passwords/wordlists/ • Kali Linuxなら /usr/share/wordlists • どっちもオフライン攻撃用でデカすぎる ので割愛(数百万単語以上もある)
  11. 11. 辞書が手に入ったので 辞書攻撃 (@ozuma5119) 11 • さっそく辞書攻撃してみよう – ただし、絶対に、インターネット上の他人の サーバにはしないでください。 – VirtualBoxなどローカルのVMでやりましょう • 他人のサーバにパスワードアタックをし て不正ログインすることは、マナー違反 というレベルではなく犯罪です。 • 不正アクセス禁止法 – 3年以下の懲役又は100万円以下の罰金
  12. 12. もう一回注意 辞書攻撃 (@ozuma5119) 12 • 他人のサーバにはしないこと。 • では何故ここでツールを使ってみるのか – 攻撃してくる人がどんなことをしてくるの か、セキュリティをやる上で学ぶことは必要 – 敵の動き・作戦を知らずして城を守ることは できない – 攻撃ツールが分かれば、それを守りに生かす ことができる
  13. 13. 辞書攻撃ツール 辞書攻撃 (@ozuma5119) 13 • 業界では以下2種類が人気かつ有名です • THC-Hydra – http://www.thc.org/thc-hydra/ – 単にhydraとも呼ばれる • Medusa – http://foofus.net/goons/jmk/medusa/medusa.html – hydraの対抗。名前からしてパロディ的になっ てますね(どちらもギリシア神話から)
  14. 14. hydraの使い方 辞書攻撃 (@ozuma5119) 14 • adminというログインIDを、password.lstで辞 書攻撃する – lとpオプションでIDとパスワード指定 – lとpオプションは大文字LとPでファイルを指定 • 宛先の指定のしかた – [対象IPアドレス] [プロトコル] – プロトコルは色々対応 (telnet, POP3, ftp, smb, http, vnc, mysql, ssh, ....など など) $ hydra –l admin –P password.lst ¥ 192.168.2.1 ssh2
  15. 15. hydraでWebのBASIC認証をア タック 辞書攻撃 (@ozuma5119) 15 • ここではWebのBASIC認証をやってみます – 他のプロトコルに比べて手軽で利用されてい る場所も多い – httpという性質上、アタックもとても早い • はじめて使うときは安全のため、LANケー ブルを抜いてから試すこと
  16. 16. BASIC認証をアタック 辞書攻撃 (@ozuma5119) 16 • http://localhost/~ozuma/pass/ – id: guest – pass: ?????? • URLの指定のしかた – [IPアドレス] [メソッド] [パス] – 回りくどい書き方なのは、マルチプロトコル対応 だから。(ssh, ftp, etc...) – これは古い書き方で、最近のhydraは普通に http://..../と書けるそうだ。 $ hydra –l guest –P password.lst localhost ¥ http-get '/~ozuma/pass/'
  17. 17. 実演 • BASIC認証をhydraでアタック 辞書攻撃 (@ozuma5119) 17
  18. 18. HTTPは攻撃しやすい • 元々、多数から大量にアクセスがあるプ ロトコルだから。 • sshもブルートフォースは多いけど、ア タックごとのTAT(TurnArroundTime)が比較 的大きいのでやりにくい – でも攻撃は来まくるのでsshも気を抜いてはい けない 辞書攻撃 (@ozuma5119) 18
  19. 19. sshをアタック 辞書攻撃 (@ozuma5119) 19 • localhost に ssh – id: guest – pass: ?????? $ hydra –l guest –P password.lst localhost ¥ ssh2
  20. 20. 辞書攻撃はわかった • 守りに生かそう 辞書攻撃 (@ozuma5119) 20
  21. 21. 攻撃される側が辞書を生かす • たとえば:Webアプリでパスワードを設定 する際、辞書を参照する – 辞書にあるパスワードは設定拒否する – ただし、辞書が「強すぎ」ると何を入れても 登録できない! とユーザ脱落が増える • すでにTwitterでは、「password」というパ スワードは設定できません 辞書攻撃 (@ozuma5119) 21
  22. 22. Twitterは、もうやってる 辞書攻撃 (@ozuma5119) 22
  23. 23. Twitterは、もうやってる2 辞書攻撃 (@ozuma5119) 23
  24. 24. Joeアカウント 辞書攻撃 (@ozuma5119) 24 • ログインIDと同じパスワード – Joeアカウント – ユーザIDと同じパスワードのこと • 攻撃者が真っ先に試すので、そもそも登 録できないようにした方がいい – 脆弱なパスワードを設定させない、のはサー ビス側にもユーザ側にも嬉しい
  25. 25. Joeアカウントをhydraで 辞書攻撃 (@ozuma5119) 25 • hydraで –e ns するのはジョーシキ – マジで。(悪い人たちの間では)。 – -e nはnull password(空のパスワード) – -e sはIDとパスが同一(Joe アカウント) $ hydra –l guest –P password.lst –e ns localhost ssh2
  26. 26. まとめ • 普段言われるセキュリティ対策、自分で 攻撃してみるとよく理解できる – 安易なパスワード付けるなとか – 辞書に載っているのを付けるなとか • セキュリティ勉強会を通して、悪い人が 「攻撃しにくい」方法を学びあえたらい いな 辞書攻撃 (@ozuma5119) 26

×