Hatena::ブログ(Diary)

知らないけどきっとそう。 RSSフィード

2013-02-04 お前このサブネットでも同じ事言えんの? このエントリーを含むブックマーク

         ,、,, ,、,, ,, ,,
       _,,;' '" '' ゛''" ゛' ';;,,
      (rヽ,;''"""''゛゛゛'';, ノr)
      ,;'゛ i _  、_ iヽ゛';,
      ,;'" ''| ヽ・〉 〈・ノ |゙゛ `';,
      ,;'' "|   ▼   |゙゛ `';,
      ,;''  ヽ_人_ /  ,;'_
     /シ、  ヽ⌒⌒ /   リ \
    |   "r,, `"'''゙´  ,,ミ゛   |
    |      リ、    ,リ    |
    |   i   ゛r、ノ,,r" i   _|
    |   `ー――----┴ ⌒´ )
    (ヽ  ______ ,, _´)
     (_⌒ ______ ,, ィ
      丁           |
       |           |
  • 一般的な Windows 環境でも、簡単に実験ができることがわかりましたので、試してみます

環境

実験

  • まずは Nighthawk を起動して "Enable advanced mode" を選択します

f:id:asannou:20130203224132p:image:w460

  • "Interface selection" を IPv4: 192.168.12.2/24 に設定し "Scan network" を実行すると、アドレスの一覧が現れます
  • "Target 1" に iPad のアドレス 192.168.12.3 を、"Target 2" にデフォルトゲートウェイ 192.168.12.1 を指定しましょう

f:id:asannou:20130203224133p:image:w460

  • "Start ARP spoofing" で、ARPスプーフィングが実行されている状態になります

f:id:asannou:20130203224134p:image:w460

パケットスニッフィング

f:id:asannou:20130203224135p:image:w512

  • 暗号化されていないため、通信の内容を確認することができました

f:id:asannou:20130203224136p:image:w460

セッションハイジャック
  • 次に Firesheep を入れた Firefox 3.6 を起動します
  • Ctrl+Shift+S でサイドバーを出した後、左下のアイコンから "Preferences" を開いてください

f:id:asannou:20130203224137p:image

register({
  name: 'Yahoo JAPAN',
  url: 'http://yahoo.co.jp',
  sessionCookieNames: [ 'T', 'Y' ],

  matchPacket: function (packet) {
    if (packet.host.match(/\.yahoo\.co\.jp$/)) {
      return true;
    }
  },

  identifyUser: function () {
    var resp = this.httpGet('http://www.yahoo.co.jp');
    this.userName = resp.body.querySelector('#pbhello span').innerHTML;
  }
});

f:id:asannou:20130203232356p:image:w512

f:id:asannou:20130203232357p:image:w460

  • HTTPSに対応していないため、メールも見ることができますね

f:id:asannou:20130203232358p:image:w460

  • (アカン)
  • iPad 側でログアウトをしてみたのですが、Firesheep 側ではログイン状態が継続してしまう点が意外でした

対策

C:\>arp -s 192.168.12.1 xx-xx-xx-xx-xx-xx

C:\>arp -a

Interface: 192.168.12.2 --- 0x2
  Internet Address      Physical Address      Type
  192.168.12.1          xx-xx-xx-xx-xx-xx     static

C:\>netsh -c "interface ipv4"
netsh interface ipv4>set neighbors "ローカル エリア接続" 192.168.12.1 xx-xx-xx-xx-xx-xx

netsh interface ipv4>show neighbors "ローカル エリア接続"

インターフェイス 11: ローカル エリア接続


インターネット アドレス                        物理アドレス       種類
--------------------------------------------  -----------------  -----------
192.168.12.1                                  xx-xx-xx-xx-xx-xx  恒久

      • iOS はわかりません…

まとめ

  • ただし、ARPスプーフィングは防げても、他の手法もありますし、通信経路上でリピータハブを挿入されたら防ぐ手立てはありません
  • 根本的な解決は、サービス提供側が、適切にHTTPSを提供することにあるでしょう
  • こうやって実験してみると、普段いまいち利益がわからないHTTPSも、はっきりと必要性を感じますね