UJP - 技術情報2 バックアップ : Windows10/pktmon のバックアップの現在との差分(No.1)

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

1: 2020-05-24 (日) 20:58:36 nobuaki ソース バックアップ No.1 を復元して編集 現: 2020-05-25 (月) 00:56:40 nobuaki ソース 編集
Line 3: Line 3:
**はじめに [#x4327d85] **はじめに [#x4327d85]
- Windows 10の2020 Mayアップデートで,pktmonというLANアナライザが導入されたというので,使ってみた.+ Windows 210 October 2018 Updateというリリースで,ひっそりとWindows 10にパケットキャプチャソフトを導入している. 
 + 
 + 従来は,Microsoft Network MonitorやWiresharkをインストールする必要があったけれど,これが内蔵されているというのは,少々問題があるかもしれない. 
 + 
 + 今回用いるマシンは,Windows 10の2020 Mayアップデートを適用したもので,pktmonというLANアナライザおよびパケットドロップをレポートするプログラムになる. 
 + 
 + このpktmonについては,現時点(2020/05/24)では,Microsoftの公式サイト上でドキュメントはない.
**無邪気に実行してみる [#f3f5c053] **無邪気に実行してみる [#f3f5c053]
Line 11: Line 17:
 Microsoft Windows [Version 10.0.18363.836]  Microsoft Windows [Version 10.0.18363.836]
 (c) 2019 Microsoft Corporation. All rights reserved.  (c) 2019 Microsoft Corporation. All rights reserved.
 + 
 C:\Users\ujpadmin>pktmon🆑  C:\Users\ujpadmin>pktmon🆑
 pktmon { filter | comp | reset | start | stop } [OPTIONS | help]  pktmon { filter | comp | reset | start | stop } [OPTIONS | help]
     内部パケット伝達レポートとパケット ドロップ レポートを監視します。      内部パケット伝達レポートとパケット ドロップ レポートを監視します。
 + 
 コマンド  コマンド
     filter    パケット フィルターを管理します。      filter    パケット フィルターを管理します。
     comp      登録されたコンポーネントを管理します。      comp      登録されたコンポーネントを管理します。
 + 
     reset      カウンターをゼロにリセットします。      reset      カウンターをゼロにリセットします。
     start      パケットの監視を開始します。      start      パケットの監視を開始します。
Line 25: Line 31:
     format    ログ ファイルをテキストに変換します。      format    ログ ファイルをテキストに変換します。
     unload    PktMon ドライバーをアンロードします。      unload    PktMon ドライバーをアンロードします。
 + 
 help  help
     コマンドのヘルプ テキストを表示します。      コマンドのヘルプ テキストを表示します。
- +  
 + 
 C:\Users\ujpadmin  C:\Users\ujpadmin
Line 35: Line 41:
 まずは,現在設定を確認してみる.  まずは,現在設定を確認してみる.
 + 
 C:\Users\ujpadmin> pktmon filter list🆑  C:\Users\ujpadmin> pktmon filter list🆑
 PktMon ドライバー サービスを開始できませんでした: アクセスが拒否されました。🈁  PktMon ドライバー サービスを開始できませんでした: アクセスが拒否されました。🈁
 + 
 C:\Users\ujpadmin>  C:\Users\ujpadmin>
 +
 + 一般ユーザ権限では,実行できないので,管理者権限でコマンドプロンプトを実行する.
 +
 +**現在設定を確認する[#uff5e546]
 +
 + コマンドプロンプトを管理者権限で起動する.
 +
 + フィルタ設定の使い方のヘルプを確認.
 +
 + C:\Windows\system32>pktmon filter help🆑
 + pktmon filter { list | add | remove } [OPTIONS | help]
 + 
 + コマンド
 +     list      アクティブなパケット フィルターを表示します。
 +     add      報告対象のパケットを制御するフィルターを追加します。
 +     remove    すべてのフィルターを削除します。
 + 
 + help
 +     コマンドのヘルプ テキストを表示します。
 + 
 + 
 + C:\Windows\system32>
 +
 + listを使って,現在のパケットフィルタ状態を確認する.
 +
 + Microsoft Windows [Version 10.0.18363.836]
 + (c) 2019 Microsoft Corporation. All rights reserved.
 + 
 + C:\Windows\system32>pktmon filter list🆑
 + パケット フィルターはありません。
 + 
 + C:\Windows\system32>
 +
 + パケットキャプチャ設定は設定されてない.
 +
 +**パケットフィルタ設定を追加する addオプション [#wc22fbd2]
 +
 + Webアクセスで用いる,HTTP(80番)とHTTPS(443番)ポートをパケットキャプチャする設定を追加する.
 +
 + まずは,使い方を確認.
 +
 + C:\Windows\system32>pktmon filter add help🆑
 + pktmon filter add <名前> [-m mac [mac2]] [-v vlan] [-d { IPv4 | IPv6 | number }]
 +                         [-t { TCP [flags...] | UDP | ICMP | ICMPv6 | number }]
 +                         [-i ip [ip2]] [-p port [port2]] [-e [port]]
 +     報告対象のパケットを制御するフィルターを追加します。パケットを
 +     報告対象にするには、パケットが少なくとも 1 つのフィルターの、指定されたすべての条件に一致する必要があります。
 +     一度に最大 8 つのフィルターをアクティブにすることができます。
 + 
 + name
 +     フィルターの名前または説明 (オプション)。
 + 
 + イーサネット フレーム
 +     -m, --mac[-address]
 +         ソースまたは宛先の MAC アドレスを一致条件とします。2 つの MAC が指定された場合、
 +         ソースか宛先かに関係なく、フィルターはその両方を含む
 +         パケットを検出します。
 + 
 +     -v, --vlan
 +         802.1Q ヘッダー内の VLAN ID (VID) を一致条件とします。
 + 
 +     -d, --data-link[-protocol], --ethertype
 +         データ リンク (レイヤー 2) プロトコルを一致条件とします。IPv4、IPv6、ARP、または
 +         プロトコル番号とすることができます。
 + 
 + IP ヘッダー
 +     -t, --transport[-protocol], --ip-protocol
 +         トランスポート (レイヤー 4) プロトコルを一致条件とします。TCP、UDP、ICMP、ICMPv6、または
 +         プロトコル番号とすることができます。
 +         TCP パケットをさらにフィルター処理するために、一致条件とする TCP フラグの一覧を指定できます
 +         (オプション)。サポートされているフラグは FIN、SYN、RST、PSH、ACK、URG、ECE、CWR です。
 + 
 +     -i, --ip[-address]
 +         ソースまたは宛先の IP アドレスを一致条件とします。2 つの IP が指定された場合、
 +         ソースか宛先かに関係なく、フィルターはその両方を含む
 +         パケットを検出します。
 + 
 + TCP/UDP ヘッダー
 +     -p, --port
 +         ソースまたは宛先のポート番号を一致条件とします。2 つのポートが指定された場合、
 +         ソースか宛先かに関係なく、フィルターはその両方を含む
 +         パケットを検出します。
 + 
 + カプセル化
 +     -e, --encap
 +         カプセル化したヘッダーをフィルター条件とします。
 +         サポートされるカプセル化の種類: VXLAN、GRE、NVGRE、IP-in-IP。
 +         カスタム VXLAN ポートはオプションです。既定値は 4789 です。
 + 
 + 
 + C:\Windows\system32>
 +
 +
 + 80番ポートを追加する.
 +
 + C:\Windows\system32>pktmon filter add -p 80🆑
 + フィルターが追加されました。
 + 
 + C:\Windows\system32>
 +
 + 追加された設定を確認する.
 +
 + C:\Windows\system32>pktmon filter list🆑
 +  # 名前      ポート
 +  - --      ---
 +  1 <empty>  80🈁
 + 
 + C:\Windows\system32>
 +
 +
 + 443番ポートを追加して確認する.
 +
 + C:\Windows\system32>pktmon filter add -p  443🆑
 + フィルターが追加されました。
 + 
 + C:\Windows\system32>pktmon filter list🈁
 +  # 名前      ポート
 +  - --      ---
 +  1 <empty>  80
 +  2 <empty> 443🈁
 + 
 + C:\Windows\system32>
 +
 + やっぱり443ポートは止めるので消す.
 +
 + 消す時はremoveコマンドの模様.
 +
 + C:\Windows\system32>pktmon filter remove help🆑
 + pktmon filter remove
 +     すべてのパケット フィルターを削除します。
 + 
 + 
 + C:\Windows\system32>
 +
 + 全部消す方法しかないらしい.
 +
 + 削除して,消えたか確認する.
 +
 + C:\Windows\system32>pktmon filter remove🆑
 + すべてのフィルターが削除されました。🈁
 + 
 + C:\Windows\system32>pktmon filter list🆑
 + パケット フィルターはありません。🈁
 + 
 + C:\Windows\system32>
 +
 + そして再度,80番ポートだけ追加して,追加を確認する.
 +
 + C:\Windows\system32>pktmon filter add -p 80🆑
 + フィルターが追加されました。🈁
 + 
 + C:\Windows\system32>pktmon filter list🆑
 +  # 名前      ポート
 +  - --      ---
 +  1 <empty>  80🈁
 + 
 + C:\Windows\system32>
 +
 + 今回は,この80番ポートのみ,キャプチャ対象として実行する.
 + 
 +**pktmon startでキャプチャを実行する [#cc815884]
 +
 + pktmonはstartオプションを指定する事で実行できるが,パラメータを確認する.
 +
 + C:\Windows\system32>pktmon start help🆑
 + pktmon start [-c { all | nics | [ids...] }] [-d] [--etw [-p size] [-k keywords]]
 +             [-f] [-s] [-r] [-m]
 +     パケットの監視を開始します。
 + 
 + -c, --components
 +     監視対象のコンポーネントを選択します。すべてのコンポーネント、NIC のみ、または
 +     コンポーネント ID の一覧を指定できます。既定値は all です。
 + 
 + -d, --drop-only
 +     ドロップされたパケットのみを報告します。既定では、正常に処理されたパケット伝達
 +     も報告します。
 + 
 + ETW ロギング
 +     --etw
 +         パケット キャプチャのロギング セッションを開始します。
 + 
 +     -p, --packet-size
 +         各パケットからログに記録するバイト数。常にパケット全体を
 +         ログに記録するには、0 に設定します。既定値は 128 バイトです。
 + 
 +     -k, --keywords
 +         どのイベントがログに記録されるかを制御する 16 進数の
 +         ビットマスク (以下のフラグを合わせたもの)。既定では、すべてのイベントがログに記録されます。
 + 
 +         フラグ:
 +         0x001 - 全般構成イベント。
 +         0x002 - カウンターを含むコンポーネント関連情報。
 +         0x004 - 事前に解析されたパケット。
 +         0x008 - パケット メタデータ (NBL OOB)。
 +         0x010 - 未処理のパケット ペイロード。
 + 
 +   -f, --file-name
 +         .etl ログ ファイル。既定値は PktMon.etl です。
 + 
 +   -s, --file-size
 +         ログ ファイルの最大サイズ (MB 単位)。既定値は 512 MB です。
 + 
 +   ロギング モード
 + 
 +       -r, --circular
 +           最大ファイル サイズに達すると、新しいイベントによって
 +           最も古いイベントが上書きされます。
 + 
 +       -m, --multi-file
 +           最大ファイル サイズに達すると、新しいログ ファイルが作成されます。
 +           ログ ファイルには、PktMon1.etl、PktMon2.etl のように順番に番号が付けられます。
 + 
 + 
 + C:\Windows\system32>
 +
 + ETWとは,Event Tracing for Windowsの事.通信ログはこのETWに流れてくるそうで,これをログイングするために--etwオプションを設定する.またパケットサイズは全てを保存するので0を設定.
 +
 + そのほかのオプションはデフォルトとする.
 +
 +
 + 次のようにコマンドプロンプトで実行する.
 +
 +
 + C:\Windows\system32>pktmon start --etw -p 0🆑
 + 
 + ログ ファイル名:    C:\Windows\system32\PktMon.etl🈁
 + ログ モード:      循環
 + 最大ファイル サイズ: 512 MB
 + 
 + アクティブな測定を開始しました。
 + 
 + C:\Windows\system32>
 +
 + ブラウザを使って,適度にWebブラウジングする.
 +
 + 次に,パケットキャプチャを停止する.
 +
 + C:\Windows\system32>pktmon stop🆑
 + ログ ファイル: C:\Windows\system32\PktMon.etl (イベントは失われていません)
 + 
 + Intel(R) Dual Band Wireless-AC 7265
 +  ID 名前                  カウンター 方向 パケット    バイト | 方向  パケット        バイト
 +  -- --                      -----    --  ----          --- | --    ----        ---
 +  34 Native WiFi Filter Dr... Upper    Rx    828    1,148,635 | Tx    189    25,038
 +  33 VirtualBox NDIS Light... Upper    Rx    828    1,148,635 | Tx    189    25,038
 +  32 QoS Packet Scheduler    Upper    Rx      0            0 | Tx    189    25,038
 +                                                             |
 +  95 TCPIP (NDIS)            Lower    Rx    828    1,148,635 | Tx    189    25,038
 +  77 LLTDIO                  Lower    Rx    828    1,148,635 | Tx      0          0
 +  73 NDISUIO                  Lower    Rx    828    1,148,635 | Tx      0          0
 + 
 + 
 + C:\Windows\system32>
 +
 + これでキャプチャ完了.
 +
 +**ログファイルを可読化する pkmon format[#g35025b2]
 +
 + キャプチャした際のログファイルを確認する.
 +
 + C:\Windows\system32>dir C:\Windows\system32\PktMon.etl🆑
 +  ドライブ C のボリューム ラベルがありません。
 +  ボリューム シリアル番号は F464-9747 です
 + 
 +  C:\Windows\system32 のディレクトリ
 + 
 + 2020/05/24  20:10        83,886,080 PktMon.etl🈁
 +               1 個のファイル          83,886,080 バイト
 +               0 個のディレクトリ  373,325,750,272 バイトの空き領域
 + 
 + C:\Windows\system32>
 +
 + 83MBのファイルができていた.(キャプチャした内容に依存する)
 +
 + ETW形式でバイナリなので人間が読めるように変換をし,返還後のファイルサイズを確認.
 +
 + C:\Windows\system32>pktmon format PktMon.etl -o pktmon.txt🆑
 + 処理しています...
 + 
 + 書式設定されたイベント: 15406
 + 書式設定されたファイル:    pktmon.txt
 + 
 + C:\Windows\system32>dir pktmon.txt🆑
 +  ドライブ C のボリューム ラベルがありません。
 +  ボリューム シリアル番号は F464-9747 です
 + 
 +  C:\Windows\system32 のディレクトリ
 + 
 + 2020/05/24  20:13        7,778,150 pktmon.txt
 +               1 個のファイル          7,778,150 バイト
 +               0 個のディレクトリ  373,320,957,952 バイトの空き領域
 + 
 + C:\Windows\system32>
 + テキストになった方がサイズは減った.
 +
 +**変換したログをメモ帳で開く [#j92d6ab9]
 +
 + 記録されたファイルは,可読性のあるテキストという事で,開いてみる.
 +
 +#ref(site://modules/xelfinder/index.php?page=view&file=7108&pktmon01.png,center,mw:600,mh:600)
 +
 + IPアドレス,MACアドレスなどが記録されていることはわかる.また,日本語に変換されていて,区切り文字が「、」だったりするし,このままの生ログだと実質人間は読めない...
 +
 + このログファイルは,Microsoft Network Monitorを利用することで,読みやすくできる模様.


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 4296, today: 7, yesterday: 2

広告スペース
Google