message analyzer でパケット キャプチャー
TRANSCRIPT
Microsoft Message Analyzer でパケット キャプチャーMurachi Akira aka hebikuzure
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
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
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
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
4
好きなパケット
2015/11/28
SMB / SMB2 / SMB3
© 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 ライセンスで公開しています。
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
6
Message Analyzer 前史
2015/11/28
© 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 以降では利用できない
© 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 ログ解析ツール
© 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
© 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 (ハードウェア)
ネットワーク モニター エージェント
プロトコル
© 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
© 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)
ドライバー
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
13
参考 NPF Driver Service
2015/11/28
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
14
パケットをキャプチャーする方法 #3
2015/11/28
Microsoft Message Analyzer の場合= ETW
ETW??
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
15
ETW (Event Tracing for Windows)
2015/11/28
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
16
ETW = Event Tracing for Windows
2015/11/28
Windows のコンポーネントに対してトレース ログを出力させる仕組み Window のコンポーネント以外のカーネルモード / ユーザーモード ドライバー、ユーザーモード アプリケーションでも実装可能 Checked Build によるデバッグ プリントより高速でモジュール本来の動作に与える影響が少ない 動的な有効化 / 無効化が可能 出力されるログはバイナリ データ
表示 / 解析にはツールが必要
© 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
イベント トレース
© 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 より
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
19
ETW の仕組み
2015/11/28
トレース採取対象のドライバーアプリケーション
トレース有効化 / 無効化
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
20
ETW の仕組み
2015/11/28
トレース データの配信
セッションの作成 / 管理
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
21
ETW の仕組み
2015/11/28
トレースの配信
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
22
ETW の仕組み
2015/11/28
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
© 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
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
25 2015/11/28
ここから本題
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
26
ETW でネットワーク キャプチャー
2015/11/28
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
27
ETW で「ネットワーク キャプチャー」
2015/11/28
プロバイダ「 Microsoft-Windows-NDIS-PacketCapture 」のトレースを採取する Windows 8 以降から利用可能なプロバイダ Network Monitor と同等のパケット キャプチャが可能
© 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
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
29
NDIS-PacketCapture プロバイダの問題
2015/11/28
Windows 7 以前では利用できない プロバイダを有効にするために管理者権限が必要※ Message Analyzer から利用する場合、 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] をクリック
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
31
パケット キャプチャの開始 – 方法 1
2015/11/28
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
32
パケット キャプチャの開始 – 方法 2
2015/11/28
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
33
パケット キャプチャの開始 – 方法 2 (2)
2015/11/28
– 方法 1
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
34
パケット キャプチャの開始 – 方法 2 (3)
2015/11/28
– 方法 1
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
35
パケット キャプチャの停止
2015/11/28
ツールバーの [Stop] ボタン [Session] メニュー – [Stop]
© 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 で開けます
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
37
他のコントローラを使う
2015/11/28
Message Analyzer 以外の ETW コントローラ logman コマンド パフォーマンス モニタ (perfmon.exe)
– [ データ コレクター セット ] – [ イベント トレース セッション ]
いずれも「管理者として実行」が必要
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
38
WFP のプロバイダーを利用する
2015/11/28
© 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) のキャプチャができない
© 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
© 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 のキャプチャはできない )
© 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 でフィルタリング
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
43
WFP のデメリット
2015/11/28
キャプチャしたデータの形式が一般的なパケット キャプチャ ツールと異なる
( 参考 : NDIS でキャプチャした場合 )
CAP 形式にエクスポートできない Ethernet フレーム情報が無いため
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
44
NDIS と WFP の使い分け
2015/11/28
可能であれば NDIS で採取した方がよい Windows 7 の場合、管理者権限がない場合は
WFP
© 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
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
46
リモート キャプチャ
2015/11/28
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
47
リモート コンピューターの追加
2015/11/28
[New Session] – [Edit Target Computers]
[Add] で新しいコンピューターを追加
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
48
リモート コンピューターの指定
2015/11/28
コンピュータ名 / ユーザー名 / パスワードを指定 NDIS プロバイダーの利用権限のあるユーザーを指定する
Localhost は [Delete] で削除
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
49
リモート キャプチャの実行
2015/11/28
© 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
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
51
View Filter の設定
2015/11/28
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
52
View Filter
2015/11/28
Wireshark でいうところの “ Display Filter”
これですね
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
53
View Filter
2015/11/28
ここにあります
© 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
© 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
© 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 と同じ )
. はすべての下位の要素を利用可能 : は直下の階層の要素を利用可能 (:: で階層名を省略可 )
© 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)
© 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”
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
59
Library
2015/11/28
良く利用されるフィルターのパターンは Library にプリセット済み
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
60
Library の管理
2015/11/28
Library のフィルターは [New Filter], [Manage Filter] で追加・削除など可能
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
61
History
2015/11/28
[History] で設定したフィルターの履歴を表示・再入力
© 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
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
63
宣伝
2015/11/28
ネットワーク パケット解析の勉強会「ネットワーク パケットを読む会(仮)」を開催しています 毎月後半(最終週の場合が多い)・平日夜に開催 次回は 1 月開催の予定です “pakeana” または「ネットワークパケットを読む会」で検索
http://pa.hebikuzure.com/#pakeana
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
64
Any Question?
2015/11/28
© 2015 Murachi Akira - CC BY-NC-ND - .NET Labo Nov. 2015
65 2015/11/28
Thank You