Slide 1

Slide 1 text

運用管理上のパケットキャプチャの手順 について今更ながら考える 大野 哲生(@g_plains)

Slide 2

Slide 2 text

目次  はじめに  ケース1:Windows10 2004以降 の場合  ケース2:Windows 7/8.1 の場合 ※Windows Server 2008-2016の場合、も  ケース3:一般的なLinuxの場合  ふりかえり

Slide 3

Slide 3 text

はじめに  昔々某案件やったときにWireShark使ってすごい感激したん ですよ  でも実案件だと「えーWireSharkってダークなんでしょ、 うちでは構成管理上ダメです」とか言われたりして  そんなわけでそれ以外の方法を無理やり考えてみます

Slide 4

Slide 4 text

ケース1:Windows10 2004の場合  大抵のご家庭に入っているWindows10  大抵のご家庭に入っているWindows10 2004  Windows10 2004にはいろいろなツールが入っているので これを使わない手はない ◦ curl ◦ ssh ◦ pktmon ◦ WSL(1/2)

Slide 5

Slide 5 text

pktmonってナニ  Windows10 2004から同梱されるようになったツール  ぶっちゃけ以下の機能が使えます ◦ パケットキャプチャ(ETL) ◦ キャプチャデータの変換(ETL→PCAPNG) ◦ キャプチャデータの出力(ETL→TXT)

Slide 6

Slide 6 text

実際にpktmonを使う-1  管理者権限でコマンドプロンプトを開いて  キャプチャ開始  トラヒックログが(大量に)表示されるので、 ^Cで中断 pktmon start --etw -p 0 -l real-time

Slide 7

Slide 7 text

実際にpktmonを使う-2  管理者権限でコマンドプロンプトを開いて  キャプチャ開始  適当なタイミングで終了  ETLからPCAPNGに変換  ETLからTXTに変換(ダンプ?) pktmon start --etw -f .¥test.etl pktmon stop pktmon pcapng test.etl -o test.pcapng pktmon format test.etl -o test.txt

Slide 8

Slide 8 text

実際にpktmonを使う-3  出力したpcapng は、WireSharkでも読めます  WSL上にubuntuが入ってたら、こんな感じで ※Windows側のc:¥tmp に配置すると WSLでは /mnt/c/tmp にあるように見える # まあwiresharkをインストールするわけですが sudo apt install tshark # IPアドレスがxx.xx.xx.xx のパケットを抽出 tshark -r /mnt/c/tmp/test.pcap 'ip.addr==xx.xx.xx.xx'

Slide 9

Slide 9 text

ケース2:Windows7/8.1の場合  大抵のご家庭に残っているWindows7 /Windows8.1  Windows7 にもいろいろなツールが入っているので これを使わない手はない ◦ netsh  ただし、ちょっとだけ癖がある…

Slide 10

Slide 10 text

実際にnetshを使う-1  管理者権限でコマンドプロンプトを開いて  キャプチャ開始  適当なタイミングで終了 netsh trace start capture=yes tracefile=foo.etl netsh trace stop

Slide 11

Slide 11 text

実際にnetshを使う-2  ホントは先述のpktmonで解析できるはずなのですが… うまくいかないので、以下を参考に https://www.vwnet.jp/Windows/WS16/2017013001/PacketCapture.htm  Microsoft Network Monitor 3.4 を取ってくる https://www.microsoft.com/en-us/download/details.aspx?id=4865  「Parser Profiles」→「NetworkMonitor Parsers」 →「Windows」に変更 で読みやすくなる

Slide 12

Slide 12 text

実際にnetshを使う-3  ETL2PCAPNG 自体は、色々コードが出回っています  GitHub 上に、MS謹製の変換ツールも出ている https://github.com/microsoft/etl2pcapng  コード署名の関係で、一回ウィルス対策ソフトに 撃墜されたにがーい思い出が… netsh trace start capture=yes report=disabled netsh trace stop etl2pcapng.exe in.etl out.pcapng

Slide 13

Slide 13 text

ケース3:一般的なLinuxの場合  Linuxの場合は…構成管理にうるさくなければ簡単  Linux にもいろいろなツールが存在するので これを使わない手はない ◦ tcpdump ◦ wireshark  パッケージ管理は、よしなに…

Slide 14

Slide 14 text

実際にtcpdumpを使う  CentOS7のばやい  実際に使う yum install tcpdump # tcpdump /libpcap が入る tcpdump -A # 入出力したパケットが全部表示される tcpdump -w output.pcap # output.pcap に出力 ^Cで中断 tcpdump –r input.pcap # input.pcap の内容を表示

Slide 15

Slide 15 text

実際にWireSharkを使う  tcpdumpの結果をより絞り込みたいときはtsharkを使う  CentOS7のばやい  実際に使う yum install wireshark # wireshak /libpcap 他が入る # tcpdumpで採取したinput.pcap の内容を表示 tshark –r input.pcap “ip.src==192.168.1.23” -n

Slide 16

Slide 16 text

ふりかえり  Linuxの場合一回libpcap+tcpdumpさえ入れておけば 後はいつでもキャプチャ可能な気がします  Windows Serverは…うーん、ETLからPCAPNGに変換でき るかどうかがキモ。 Windows Server2012/2016でいい感じにETLから変換でき る手順があれば教えてほしい…  まあWireShark入ってたら、有難がりながらWireShark使お う。それが一番楽