無線LANのキャプチャーデータを wireshark で見る場合

wireshark はパケット解析ならかなりの高性能です
ちなみに、最近 android アプリでもないかと調べています
無線LANハッカーの場合、wireshark はつかわず
別のツールを使うようです
理由は
wireshark は
キャプチャしたパケット解析にはすごい便利なのですが
無線LANの WEP解析の場合
パケットの中身ではなくて、パケットの数が重要とのことです
しかも解析したら、もうパケットは用済みで破棄します
もうひとつ、いきなりwireshark を使って行わない理由があり
いくら WEPでも
Airodumg-ng でデータを取得して
wireshark でみても暗号化されたままなので、そのままでは
内容をみることはできません
もともと、wiresharkは暗号クラックツールではないので
ただし、暗号キーが知られていると
話は別で、普通に通信内容が見られます
このことから、やはりWEPは危険なので使わないようにしましょう

ウィザード形式でフィルター作成

wireshark でのフィルター条件を作成するのが
面倒と言う場合、 ウィザードを使って
条件式を作成できます
Filter 入力枠の右に Expression というボタンがあるので
これをクリックします
Screenshot-2012-04-17 21:51:16
あとは、マウスでポチポチとやりながら設定することができます

プロトコルのフィルタリング

引き続き、今度は wireshark でプロトコルでフィルタリングしてみます
画面の一番上のほうにある Filter にプロトコルを入力します
(tcp とか ndp とかです)
Screenshot-2012-04-17 21:11:46
ここに tcp と入力して Enterキーを押すと
tcp だけに絞り込みできます
Screenshot-2012-04-17 21:20:51
ただしすべてのプロトコルには対応してはいないようで
mdns と igmp はダメでした
また、ここに一致、不一致などの指定をすることも可能です
MACアドレスで指定したいなら
ethr.addr ==
の後に MACアドレスを
IPアドレスで指定したいなら
ep.addr ==
でIPを指定すればOK
wireshark フィルタリング演算子
と合わせてみるとおもしろいと思います

wireshark フィルタリング演算子

wireshark のフィルタリング演算子のメモです
== または eq
一致
!= または ne
不一致
> または gt
より大きい
< または lt よち小さい >= または ge
以上
<= または le 以下 && または and 論理値 || または or 論理和 これらがわかると、Filter string が書きやすくなります ちなみに、filter string は Screenshot-2012-04-17 20:19:41

eth.addr == 00:0b:a2:f6:85:f3
のところです
意味は
eth.addr が 00:0b:a2:f6:85:f3 と一致するです
書籍に wireshark フィルタ一例が載っていました
eth.src == 00:0b:a2:f6:85:f3
MACアドレス 00:0b:a2:f6:85:f3 からの送信
src は送信
ip.dst == 255.255.255.255
ブロードキャストパケット
dst でおそらくブロードキャスト
ip.addr == 192.168.77.0/24
IPアドレス 192.168.77.0~255
addr でアドレス
!(tcp.port ==80)
TCPポート80以外
!がついているので、~でないという意味
tcp。port == 80 で TCP80ポート
つまりHTTP
tcp.port == 80 || udp.port == 80
TCP 80 ポート
もしくは
UDP 80 ポート
|| なので、どちらかがOKでよい
tcp.flag.syn
SYNフラグのついたTCPポート
flag.synでSYNフラグ
!dns
DNS以外のプロトコル
!なので、~でない、つまりDNSでないという意味になります

ディスプレイフィルター

Screenshot-2012-04-17 07:29:43
hacker Japan 2012 05が微妙にわかりずらいかも
と思ったので、試しに画像入れてみました
この右から4番めのアイコンをクリックすることで
ディスプレイフィルターを使えます
Ethernet address 00:08:15:00:08:15
を選んで
Filter string に出ている MACアドレスの値を変更して
適用を押せば、絞り込みできます
例えば
eth.addr == 00:0b:a2:f6:85:f3
とすると、
00:0b:a2:f6:85:f3
のMACアドレスのものだけを表示するようになります
Screenshot-2012-04-17 20:19:41
みてのとおり、該当するものなら、背景色が緑ですが
適当にいれても、背景色が赤くなり、適用できませんので注意です
こうやってフィルタリングすれば、効率的な情報収集が可能になります

特定のノード間の通信だけフィルタリング

WireShark を使うときにフィルタリングすることで
より情報を見やすくできます
今回も右クリックメニューです
右クリックして
Conversation Filter で
Ethernet
IP
TCP
UDP
PN-CBA
の中から、利用可能なものが選べます
ちなみに、もっと詳しく割り振りをするなら
Statictics > Conversation List
から選ぶと
Ethernet
FDDI
Fiber Channel
IPx
IPv4
IPv6
JXTA
NCP
RSVP
SCTP
TCP
Token Ring
UDP
USB
WLAN
から選べます

3way ハンドシェイク

firefox のデフォルトのホームは
start,.ubuntu.com
ここには Google の検索窓のほか
ヘルプ(htlp.ubuntu.com)
ショップ(shop.ubuntu.com)
コミュニティ(www.ubuntu.com)
があります
これを wireshark でキャプチャすると
start.ubuntu.com
ww.google.com
help.ubuntu.com
shop.ubuntu.com
www.ubuntu.com
というたくさんのレスポンスがでるということです
で、今回の題名にある 3wayハンドシェイクですが
1、SYNフラグの立ったTCPパケット(SYNパケット)を送信
2、SYN ACKパケットが返る
3、また ACKパケットを返して接続完了
というものです
TCP関連の話では必ず出るので、覚えておきましょう

時間問い合わせプロトコル

NTPサーバーは
Network Time Protocol serverのことをいいます
PCの時間を正確にするために
最近ではほとんどのOSで標準でNTPクライアントを動作させます
このため、ネット接続してあるマシンが時間がずれないのは
これが理由です
ちなみに、Windows と Ubuntu Mac では
デフォルトのタイムサーバーが違うため
wireshark で通信内容を取得すれば、OSを判別することもできます

Android で YOLP

Yahoo Map を Android で使えるようにできる特集があったので
メモしてみました
YOLPで挑戦~Android向け簡易道のり測定アプリを30分で作る!
JavaScriptからGeolocation APIとして利用するには
YOLP Hacks: APIの使い方 ~現在位置の常時表示/地図をなぞって距離を計測
が参考になります
最近では
Open Street Mapが人気なので、こちらも調べてみます

IPv6 と DNSプロトコル

インターネットで通信を行うには
相手のIPアドレスが必須
URLからIPアドレスを引くためのシステムがDNS
これこそが現代のインターネットの根幹ともいえるものです
ちなみに、世界のルートDNSサーバーは
13台だけで
これが DDos攻撃でダウンすると、世界規模でのブラックアウト
つまりネット遮断が引き起こされます
DNSは、クライアントがルートサーバーから純に問い合わせていきます
基本的な動作は
URLをDNSサーバーにきく > IPアドレスを教えてもらう
です
サンプルをみてみると
DNSパケットの
Info のところで
query AAAA ntp.ubuntu.com
となっていますが
この
AAAA レコードは IPv6 で使われます
でもブロードバンドルーターがIPv6 対応していないと
無意味ですが…
最近のOSはubuntu でも Windows7 でもデフォルト設定で
IPv6を使っていますが
これはもうすぐ IPv4が枯渇するのが理由と思われます
でも、まだ正式には対応されていないため
もしトラフィックを抑えたいなら IPv6 は切っておく方がよさそうです