Wireshark(10)-TCPストリーム表示-

TCPストリーム表示機能は、TCPの接続で送受信されたデータをまとめて確認できる機能です。

今回は、メールを送信した際のキャプチャファイルを用意しましたので、このパケットに対して、TCPストリーム機能を実行してみます。

Filterに「smtp」と入力して、smtpプロトコルのパケットのみの表示にします。

smtpのパケットを選択した後、右クリックメニューより、「Follow TCP Stream」を選択します。

メニューバーの[Analyze]-[Follow TCP Stream]からも実行できます。

実行すると、Follow TCP Streamのダイアログ画面が表示され、メールを送信した際の一連のパケットの流れが確認できます。

ASCIIやEBCDIC、HexDump、C Arrays、Rawで表示形式を切りかえる事ができます。

Rawを選択した状態で、名前を付けて保存を実行します。

拡張子を「.eml」にして保存して、メーラーで開くと、メールの中身が表示されます。

画像を添付してあれば、画像も表示されます。

セキュリティが弱いとメールの中身も簡単に見る事が可能です。

メールの中身を見られないようにする為には、SSL/TLSのような盗聴、改ざんから通信データを守る設定をしておく必要があります。

参考書籍

パケットキャプチャ無線LAN編 [ 竹下恵 ]

Wireshark(9)-Flow Graph機能-

ネットワーク上のパケットの流れを見るには、Flow Glaph機能が便利です。

Flow Glaph機能を使用すると、グラフ形式で通信の流れを見る事ができます。

メニューより[Statistics]-[Flow Graph]を選択します。

この時に、前回ご紹介したマーク機能で、表示するパケットを選んでおくと良いです。

Flow Graphのダイアログが表示されるので、Choose Packets欄から「Displayed packets」を選択します。

OKボタンを押して、Flow Graph機能を実行します。

すると、ネットワークの流れがグラフ形式で表示されます。

FlowGraphEdit

参考書籍

パケットキャプチャ無線LAN編 [ 竹下恵 ]

Wireshark(8)-パケットのマーク機能-

ネットワークに流れるパケットをキャプチャしていると、たくさんのパケットが流れている為、もう一度対象のパケットを見たい際に探すのが大変です。

このような時にはパケットのマーク機能を使用すると便利です。

マークをつけたいパケットを選択して、メニューバーの[Edit]-[Mark/Unmark Packet]を実行すると、選択したパケットがマークされます。

右クリックメニューからも[Mark/Unmark Packet]を実行できます。また、[Ctrl + M]のショートカットコマンドも用意されております。

マークしたパケットのみ表示したい場合は、Filterに「frame.marked==1」と入力します。

すると、先ほどマークしたパケットのみ表示されます。

マークしたパケットのみファイルとして保存する事も可能です。

メニューバーより[File]-[Export Specified Packets]で保存ダイアログを表示します。

Marked Packetsを有効にして、保存すると先ほどマークしたパケットのみのファイルを作成する事ができます。

参考書籍

パケットキャプチャ無線LAN編 [ 竹下恵 ]

Wireshark(7)-HTTPメッセージパケット-

HTTP(Hypertext Transfer Protocol)は、WEBブラウザ(クライアント側)とWEBサーバ(サーバ側)が通信して、WEBページを閲覧する時などに使用される通信プロトコルです。

HTTPメッセージパケットは、WEBブラウザ(クライアント側)とWEBサーバ(サーバ側)が通信する為のデータのかたまりです。

Wiresharkにて、Filter欄に「http」と入力すると、HTTPのプロトコルパケットを絞り込めます。

info列を見てみると、「GET / HTTP/1.1」と「HTTP/1.1 200 OK」を見つける事ができると思います。

「GET / HTTP/1.1」がHTTPリクエストメッセージとなります。

「HTTP/1.1 200 OK」がHTTPレスポンスメッセージとなります。

HTTPリクエストメッセージは、WEBブラウザからWEBサーバへ向けてWEBページのアドレスを指定して、ドキュメントを要求する為のパケットです。

HTTPリクエストメッセージの詳細を見ると、WEBページのアドレスなどを確認する事ができます。

HTTPレスポンスメッセージは、WEBサーバからWEBブラウザへ向けて、Webページのドキュメントを送信する為のパケットです。

HTTPレスポンスメッセージの詳細を見ると、WEBページのHTMLコードなどを確認する事ができます。

参考書籍

パケットキャプチャ無線LAN編 [ 竹下恵 ]

Wireshark(6)-TCP 3ウェイハンドシェイク-

TCP 3ウェイハンドシェイクは、TCPのコネクション(接続)を開始する時に行われます。

3ウェイハンドシェイクは3つのパケットから構成されています。

(a).54771 → 80 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=256 SACK_PERM=1
(b).80 → 54771 [SYN, ACK] Seq=0 Ack=1 Win=8190 Len=0 MSS=1360 WS=64
(c).54771 → 80 [ACK] Seq=1 Ack=1 Win=262144 Len=0

(a)でクライアントがサーバーに対してSYN=1(コネクションの接続要求)のセグメントを送信します。

(b)でサーバはSYN=1のセグメントを受け取り、通信準備をしてACK=1(コネクションの接続応答)とSYN=1(コネクションの接続要求)のセグメントをクライアントに返します。

(c)でクライアントはACK=1とSYN=1のセグメントを受け取り、通信準備をしてACK=1のセグメントをサーバに送信します。

参考書籍

パケットキャプチャ無線LAN編 [ 竹下恵 ]

Wireshark(5)-DNSパケット-

DNS(Domain Name Server)は、ホームページなどのアドレスをIPアドレスに変換する仕組みです。

DNSパケットは、ホームページなどのアドレスをIPアドレスに変換する為のデータのかたまりです。

WireSharkにて、キャプチャしたdnsパケットをみてましょう。

Filter欄にて、「dns」と入力して、パケット情報を絞り込みます。

info列を見てみると、「Standard query 0x1a2b A www.aaaaa.co.jp」と「Standard query response 0x1a2b A www.aaaaa.co.jp A 12.345.678.9」を見つける事ができます。

「Standard query 0x1a2b A www.aaaaa.co.jp」は、DNSクエリ要求パケット(DNSクエリ要求メッセージ)です。

「Standard query response 0x1a2b A www.aaaaa.co.jp A 12.345.678.9」は、DNSクエリ応答パケット(DNSクエリ応答メッセージ)です。

DNSクエリ要求パケットは、DNSサーバに向けて、WEBブラウザーに入力された「www.aaaaa.co.jp」というアドレスに対応したAレコードを検索するように問い合わせをしています。

DNSクエリ応答パケットは、DNSクエリ要求パケットの要求を受けて、DNSサーバーがPCに、「www.aaaaa.co.jp」に対応するAレコードの値として「12.345.678.9」というIPアドレスをか回答しています。

このように、WireSharkでDNSパケットを解析すると、ホームページなどのアドレスからIPアドレスがわかります。

Wireshark(4)-ARPパケット-

ARP(Address Resolution Protocol)は、IPからMACアドレスを調べる仕組みです。

ARPパケットは、IPからMACアドレスを調べるためのデータのかたまりです。

WireSharkにて、キャプチャしたパケットをみてましょう。

Filter欄にて、「arp」と入力すればある程度データを絞り込む事ができます。

info列を見てみると、「Who has 192.168.75.2? Tell 192.168.75.1」と「192.168.75.2 is at a1::b2:c3:e4:d5」を見つける事ができます。

「Who has 192.168.75.2? Tell 192.168.75.1」は、ARP要求パケット(ARP要求ブロードキャスト)です。

「192.168.75.2 is at a1::b2:c3:e4:d5」は、ARP応答パケット(ARP応答ユニキャスト)です。

ARP要求パケットは、LANカードやルーターなどに付与されているMACアドレスを調べる為に、同一セグメント内のLAN全体に送信されているパケットです。

ARP応答パケットは、ARP要求パケットが要求したIPに適合するPCやルーターがMACアドレスを回答する為のパケットです。

このように、WireSharkでARPパケットを解析すると、IPに紐づいたMACアドレスがわかります。

Wireshark(3)-有線LANと無線LAN-

WireShark有線LAN上無線LAN上で動作の違いがあるか比較してみました。

OSはLinuxです。市販の無線LANルーターを使用しています。

WireShark PC 有線LAN 他PC 無線LAN 他PC
有線LNA o x x
無線LAN o x o


WireSharkがインストールされているPCが有線LANの場合、WireSharkがインストールされているPC上のパケットは取得して解析されていますが、無線LANルーターに接続されている他のPCのパケットは、解析されていませんでした。

WireSharkがインストールされているPCが無線LANの場合、WireSharkがインストールされているPC上のパケットは取得して解析されていますが、無線LANルーターに有線LANを使用して接続している他のPCのパケットは、解析されませんでした。

しかし、無線LANに接続している他のPCのパケットは、解析されました。

ただ、有線LANに関しての設定も何か必要なのかもしれません。

無線LANのパケットを解析するのにも、設定は必要であったので。

設定は以下の内容になります。

(1).無線子機をモニターモードに変更

(2).WireShark上で、IEEE802.11項目の中のDecryption Keyの設定

(3).WireShark上で、Capture packets in monitor modeの有効化

無線LANルーターに無線LANで接続しているPCのパケットを解析する際は、無線LANルーターとそのPCが接続する際のパケットが必要です。

Wireshark(2)-Wiresharkインストール-

Wiresharkインストールしようと思います。

Windowsの場合

まずは、下記サイトよりWiresharkをダウンロードします。
https://www.wireshark.org/download.html

「Wireshark-win64-2.0.0.exe」をダウンロードしました。

「Wireshark-win64-2.0.0.exe」実行するとインスールが
開始されます。

基本的には、「Next」と「I Agree」を選択していけば、
インストールが完了します。「WinPcap」も一緒に
インストールされます。

途中、コンポーネントを選択するダイアログが
表示されます。「Tools」の中の、「Androiddump」が
無効化されているので、必要な方は有効にして下さい。

OSがWindowsの場合のインストール方法は以上になります。

Linux(Ubuntu)の場合

Wiresharkのダウンロードとインストールをします。
sudo apt-get install wireshark
後は、自動で処理をしてくれます。

OSがLinux(Ubuntu)の場合のインストール方法は以上になります。

Wireshark(1)-Wiresharkとは?-

Wiresharkは、LANアナライザの一つです。

LANアナライザは、ネットワークを流れるレイヤ1の
搬送信号を取得します。これをパケットキャプチャと呼びます。
この搬送信号を「0」や「1」のデータ信号に変換して、
パケットのデータ単位にします。このように取得した
パケットのデータを画面上に表示する事ができるツールが
LANアナライザです。
*「レイヤー1」とは、OSI参照モデルの階層の「物理層」

WiresharkはオープンソースのLANアナライザです。
無償で利用する事ができます。Wiresharkは
以下のような事を実施する事が可能です。
(a).ネットワークに流れているパケットの取得
(b).パケットの内容の表示
(c).パケットの解析

Wiresharkを使用するにあったて、必要なものは
以下のようになります。*有線LAN環境
(a).パソコン(OSはWindows、LinuxどちらでもOK)
(b).Wireshark(LANアナライザ)
(c).ルーター

Wiresharkが動作しているPC以外の
無線環境のパケットを取得して、解析するには、
以下のようなものも必要なります。
Windowsの場合は、AirPcapという市販品が必要そうです。

【正規品】AirPcap Tx  2.4GHz対応USB無線LANプロトコルアナライザ

Linuxの場合は、モニターモードでパケットが取得可能な
無線子機が必要です。無線LAN解析と何か似ているような。

実際に試してみる際は、自分の管理している
ネットワークで試してください。
法律に違反する場合があります。