message analyzer でパケット キャプチャー

65
Microsoft Message Analyzer で でででで でででででで Murachi Akira aka hebikuzure This work is licensed under a Creative Commons Attribution-NonCommercial- NoDerivatives 4.0 International License.

Upload: -

Post on 16-Feb-2017

3.728 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Message Analyzer でパケット キャプチャー

Microsoft Message Analyzer でパケット キャプチャーMurachi Akira aka hebikuzure

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Page 2: Message Analyzer でパケット キャプチャー

About me 村地 彰 aka hebikuzure

株式会社シーピーエス 代表取締役 株式会社エクシードワン 事業推進部

Microsoft MVP (Most Valuable Professional) 2011 年 4 月 ~ 5 年連続受賞 受賞分野 Visual Studio and Development

Technologies(Front End Web Dev)

2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

2

Page 3: Message Analyzer でパケット キャプチャー

About me http://www.murachi.net/ http://www.hebikuzure.com/ https://hebikuzure.wordpress.com/

2015/11/28© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

3

Page 4: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

4

好きなパケット

2015/11/28

SMB / SMB2 / SMB3

Page 5: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

5

おことわり

2015/11/28

本セッションは「ネットワーク パケットを読む会(仮)」第 32 回、第 33 回、第 34 回で行った「 Message Analyzer 再入門 (1) ~ (3) 」の内容を再構成、追補したものです 本セッションの内容については、発表者が調査および検証した結果であり、発表者の所属する組織およびマイクロソフト社の見解とは異なる場合があります 本スライドは Creative Commons NC/ND ライセンスで公開しています。

Page 6: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

6

Message Analyzer 前史

2015/11/28

Page 7: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

7

Microsoft のパケットキャプチャ ツール #1

2015/11/28

Microsoft Systems Management Server (SMS) Network Monitor が付属 プロミスキャス モード対応 リモート キャプチャー対応

Network Monitor 2.x SMS 付属版の機能限定版を無償提供 Windows Server 2000/2003 には標準添付 プロミスキャスモード / リモートキャプチャー未対応 Windows Vista 以降では利用できない

Page 8: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

8

Microsoft のパケットキャプチャ ツール #2

2015/11/28

Network Monitor 3.x ( 最終版は 3.4) Windows Vista 以降で利用可能 (Windows 10 は

NG ? ) 無償提供 プロミスキャスモード対応 リモート キャプチャー未対応 アプリケーション ( プロセス ) 単位でのパケット解析

Microsoft Message Analyzer Network Monitor の後継 「パケット キャプチャ ツール」ではない ETW ログ解析ツール

Page 9: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

9

Microsoft Message Analyzer の入手と情報

2015/11/28

ダウンロード ページ http://www.microsoft.com/en-us/download/details.aspx?

id=44226 最新版は  ver. 1.3.1 (2015/7/30 リリース ) Message Analyzer Blog

http://blogs.technet.com/b/messageanalyzer/ サポート フォーラム

https://social.msdn.microsoft.com/Forums/windowsdesktop/en-us/home?forum=messageanalyzer

Microsoft Message Analyzer Operating Guide https://technet.microsoft.com/en-us/library/

jj649776.aspx

Page 10: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

10

パケットをキャプチャーする方法 #1

2015/11/28

Network Monitor の場合= ネットワーク モニター エージェント

アプリケーションWindows Firewall

TDITCP/IP NWLink NBF

NDIS

ネットワーク ドライバーNIC (ハードウェア)

ネットワーク モニター エージェント

プロトコル

Page 11: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

11

参考

2015/11/28

TDI : Transport Driver Interface https://msdn.microsoft.com/en-us/library/

windows/hardware/ff565685 NWLink : NetWare Link

https://support.microsoft.com/en-us/kb/316019 NBF : NetBIOS Frames

Page 12: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

12

パケットをキャプチャーする方法 #2

2015/11/28

Wireshark の場合= ドライバー

アプリケーションWindows Firewall

TDITCP/IP NWLink NBF

NDIS

ネットワーク ドライバーNIC (ハードウェア)

WinPCAP(NPF Driver

Service)

ドライバー

Page 13: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

13

参考 NPF Driver Service

2015/11/28

Page 14: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

14

パケットをキャプチャーする方法 #3

2015/11/28

Microsoft Message Analyzer の場合= ETW

ETW??

Page 15: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

15

ETW (Event Tracing for Windows)

2015/11/28

Page 16: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

16

ETW = Event Tracing for Windows

2015/11/28

Windows のコンポーネントに対してトレース ログを出力させる仕組み Window のコンポーネント以外のカーネルモード / ユーザーモード ドライバー、ユーザーモード アプリケーションでも実装可能 Checked Build によるデバッグ プリントより高速でモジュール本来の動作に与える影響が少ない 動的な有効化 / 無効化が可能 出力されるログはバイナリ データ

表示 / 解析にはツールが必要

Page 17: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

17

ETW

2015/11/28

イベント トレースアプリケーションWindows Firewall

TDITCP/IP NWLink NBF

NDIS

ネットワーク ドライバーNIC (ハードウェア)

ETWEvent Tracing for

Windows

イベント トレース

Page 18: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

18

ETW の仕組み

2015/11/28http://blogs.msdn.com/b/jpwdkblog/archive/2011/12/27/event-tracing-for-windows-etw.aspx より

Page 19: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

19

ETW の仕組み

2015/11/28

トレース採取対象のドライバーアプリケーション

トレース有効化 / 無効化

Page 20: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

20

ETW の仕組み

2015/11/28

トレース データの配信

セッションの作成 / 管理

Page 21: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

21

ETW の仕組み

2015/11/28

トレースの配信

Page 22: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

22

ETW の仕組み

2015/11/28

Message Analyzer

Page 23: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

23

参考資料

2015/11/28

ETW へのご招待http://blogs.msdn.com/b/tsmatsuz/archive/2008/01/23/etw.aspx

Event Tracing for Windows (ETW)http://blogs.msdn.com/b/jpwdkblog/archive/2011/12/27/event-tracing-for-windows-etw.aspx

FAQ: Common Questions for ETW and Windows Event Loghttps://social.msdn.microsoft.com/Forums/ja-JP/a1aa1350-41a0-4490-9ae3-9b4520aeb9d4/faq-common-questions-for-etw-and-windows-event-log

Event Tracing for Windows (ETW) Simplifiedhttps://support.microsoft.com/en-us/kb/2593157

Page 24: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

24 2015/11/28

Event Tracinghttps://msdn.microsoft.com/en-us/library/windows/desktop/bb968803.aspx

ETW Tracinghttps://msdn.microsoft.com/en-us/library/ms751538.aspx

Event Tracing Referencehttps://msdn.microsoft.com/en-us/library/windows/desktop/aa363802.aspx

Page 25: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

25 2015/11/28

ここから本題

Page 26: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

26

ETW でネットワーク キャプチャー

2015/11/28

Page 27: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

27

ETW で「ネットワーク キャプチャー」

2015/11/28

プロバイダ「 Microsoft-Windows-NDIS-PacketCapture 」のトレースを採取する Windows 8 以降から利用可能なプロバイダ Network Monitor と同等のパケット キャプチャが可能

Page 28: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

28

NDIS

2015/11/28

Network Driver Interface Specification %SystemRoot%\System32\Drivers\Ndis.sys

http://blogs.msdn.com/b/jpwdkblog/archive/2010/08/31/windows-network-driver.aspx

Page 29: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

29

NDIS-PacketCapture プロバイダの問題

2015/11/28

Windows 7 以前では利用できない プロバイダを有効にするために管理者権限が必要※ Message Analyzer から利用する場合、 Message Analyzer を「管理者として実行」する必要がある

Page 30: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

30

Message Analyzer でパケット キャプチャ

2015/11/28

1. Message Analyzer を起動2. [Start Local Trace] をクリックまたは3. Message Analyzer を起動4. [New Session] をクリック5. [Live Trace] をクリック6. [Trace Scenario] で [Local Network Interface] を選択7. [Start] をクリック

Page 31: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

31

パケット キャプチャの開始 – 方法 1

2015/11/28

Page 32: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

32

パケット キャプチャの開始 – 方法 2

2015/11/28

Page 33: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

33

パケット キャプチャの開始 – 方法 2 (2)

2015/11/28

– 方法 1

Page 34: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

34

パケット キャプチャの開始 – 方法 2 (3)

2015/11/28

– 方法 1

Page 35: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

35

パケット キャプチャの停止

2015/11/28

ツールバーの [Stop] ボタン [Session] メニュー – [Stop]

Page 36: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

36

データの保存

2015/11/28

ツールバーの [Save] ボタン [File] メニュー – [Save]

[Save as] で cap 形式 (Microsoft Network Monitor 形式 ) で保存できる ⇒ Wireshark で開けます

Page 37: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

37

他のコントローラを使う

2015/11/28

Message Analyzer 以外の ETW コントローラ logman コマンド パフォーマンス モニタ (perfmon.exe)

– [ データ コレクター セット ] – [ イベント トレース セッション ]

いずれも「管理者として実行」が必要

Page 38: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

38

WFP のプロバイダーを利用する

2015/11/28

Page 39: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

39

NDIS-PacketCapture プロバイダの問題

2015/11/28

Windows 7 以前では利用できない プロバイダを有効にするために管理者権限が必要※ Message Analyzer から利用する場合、 Message Analyzer を「管理者として実行」する必要がある ループバック インターフェイス (Localhost /

127.0.01) のキャプチャができない

Page 40: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

40

Microsoft-pef-WFP-MessageProvider

2015/11/28

Windows フィルタリング プラットフォーム (WFP) の ETW プロバイダー

WFP : ネットワーク フィルタリング アプリケーションを作成するためのプラットフォームを提供する API およびシステム サービスのセットhttps://msdn.microsoft.com/ja-jp/library/aa366510.aspx

Page 41: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

41

WFP のメリット

2015/11/28

Windows 7 / Windows Server 2012 でも利用できる(NDIS は Windows 8 / Windows Server 2012 R2 以降 )

管理者権限が無くてもキャプチャできる(NDIS でのキャプチャには管理者権限が必要 )

Loopback インターフェイスのキャプチャができる(NDIS では Loopback のキャプチャはできない )

Page 42: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

42

Loopback のみキャプチャする

2015/11/28

Trace Scenario の中に「 Local Loopback Network 」がある プロバイダーは Microsoft-pef-WFP-MessageProvider IPv4 / IPv6 ともに InBound のみキャプチャ IP アドレス 127.0.0.1 / ::1 でフィルタリング

Page 43: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

43

WFP のデメリット

2015/11/28

キャプチャしたデータの形式が一般的なパケット キャプチャ ツールと異なる

( 参考 : NDIS でキャプチャした場合 )

CAP 形式にエクスポートできない Ethernet フレーム情報が無いため

Page 44: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

44

NDIS と WFP の使い分け

2015/11/28

可能であれば NDIS で採取した方がよい Windows 7 の場合、管理者権限がない場合は

WFP

Page 45: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

45

WFP-MessageProvider の参考資料

2015/11/28

Microsoft-PEF-WFP-MessageProvider https://technet.microsoft.com/en-us/library/

jj674804.aspx Selecting Data to Capture

https://msdn.microsoft.com/ja-jp/library/office/dn799002

PEF-WFP Layer Set Filters https://msdn.microsoft.com/ja-jp/library/office/

jj729732

Page 46: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

46

リモート キャプチャ

2015/11/28

Page 47: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

47

リモート コンピューターの追加

2015/11/28

[New Session] – [Edit Target Computers]

[Add] で新しいコンピューターを追加

Page 48: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

48

リモート コンピューターの指定

2015/11/28

コンピュータ名 / ユーザー名 / パスワードを指定 NDIS プロバイダーの利用権限のあるユーザーを指定する

Localhost は [Delete] で削除

Page 49: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

49

リモート キャプチャの実行

2015/11/28

Page 50: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

50

参考情報

2015/11/28

Capturing Data Remotelyhttps://technet.microsoft.com/en-us/library/dn386835

Page 51: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

51

View Filter の設定

2015/11/28

Page 52: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

52

View Filter

2015/11/28

Wireshark でいうところの “ Display Filter”

これですね

Page 53: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

53

View Filter

2015/11/28

ここにあります

Page 54: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

54

アドレスのフィルタリング

2015/11/28

Address でネットワーク アドレスを示す MAC ex. 6c-62-6d-94-c2-35 IPv4 ex. 192.168.1.1 / 10.1.0.0/16 IPv6 ex. 2001:4898:0:FFF:200:5EFE:4135:4A7

フィルター例 *Address==02-01-0A-01-01-64 IPv4.Address in 10.1.0.0/16 IPv4.Address == 192.168.1.1 *Address == 192.168.1.1 or *Address ==

                2001:4898:0:FFF:200:5EFE:4135:4A7

Page 55: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

55

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

2015/11/28

TCP, UDP, HTTP, SSL, TSL, DNS などのプロトコル名でフィルタリング ex.

HTTP SSL or TLS HTTP and !UDP

Page 56: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

56

プロトコルごとの詳細フィルタリング

2015/11/28

HTTP.StatusCode >= 400 HTTP.Uri contains "msn" HTTP\TCP.Port == IANA.Port.HTTP TCP.SourcePort in [6608, 6609, 6610] TCP::Flags:SYN == true

(TCP.Segment.Flags.SYN == true と同じ )( かつ、 TCP.SYN == true と同じ )

. はすべての下位の要素を利用可能 : は直下の階層の要素を利用可能 (:: で階層名を省略可 )

Page 57: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

57

文字・数字でのフィルタリング

2015/11/28

contains フィルターを利用する *Summary contains “error” contains “Microsoft” contains “Microsoft” caseSensitive contains “Microsoft” encoding ASCII contains $[4d534e] (MSN)

Page 58: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

58

正規表現

2015/11/28

regex “(?!000)([0-6]\\d{2}|7([0-6]\\d|7[012]))([ -]?)(?!00)\\d\\d\\3(?!0000)\\d{4}” — (US の ) 電話番号

Regex @“^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$”— 電子メール アドレス

Regex @“^\d{3}-\d{2}-\d{4}$”— (US の ) 社会保険番号

Regex @“\bthis\W+(?:\w+\W+){1,6}?that\b”— “that” の近くにある “ this”

Page 59: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

59

Library

2015/11/28

良く利用されるフィルターのパターンは Library にプリセット済み

Page 60: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

60

Library の管理

2015/11/28

Library のフィルターは [New Filter], [Manage Filter] で追加・削除など可能

Page 61: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

61

History

2015/11/28

[History] で設定したフィルターの履歴を表示・再入力

Page 62: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

62

View Filter の参考資料

2015/11/28

Filtering Live Trace Session Results https://technet.microsoft.com/en-us/library/

jj738055.aspx Getting Started with Creating and Applying

Filters https://technet.microsoft.com/en-us/library/

jj851104.aspx Understanding the Filtering Language Basics

https://technet.microsoft.com/en-us/library/jj851106.aspx

Using the Filtering Language https://technet.microsoft.com/en-us/library/

jj851105.aspx

Page 63: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

63

宣伝

2015/11/28

ネットワーク パケット解析の勉強会「ネットワーク パケットを読む会(仮)」を開催しています 毎月後半(最終週の場合が多い)・平日夜に開催 次回は 1 月開催の予定です “pakeana” または「ネットワークパケットを読む会」で検索

http://pa.hebikuzure.com/#pakeana

Page 64: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

64

Any Question?

2015/11/28

Page 65: Message Analyzer でパケット キャプチャー

© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015

65 2015/11/28

Thank You