SlideShare una empresa de Scribd logo
1 de 20
tcpdump
    と
 tcpreplay
    と
tcprewrite
と他。



    #ssmjp 2013/03/29 @togakushi
パケット好きですか?
●   tcpdump ってコマンドで好きなだけみれま
    す!
●   要 root
    –   NIC が promiscuous mode へ
    –   流れてきたパケットは無差別に拾うモード
    –   通常は自分宛てのパケットしか処理しない
切り分けに超役立つ
●   ちゃんと相手から届いてるかわかる
●   誰から送られてきてるかわかる
●   暗号化されてるかわかる
インテリジェントなスイッチ
●   MAC アドレスの学習
    –   接続されたポートの先に何が繋がってるか知って
        いる
    –   tcpdump を動かすマシンから見ると、自分宛のパ
        ケットしか流れてこない><
●   気になるあの子 ( サーバ ) のパケットも見た
    い!
    (注:他人の通信を覗くのはダメですよ)
こんなこともあろうかと!
●   ミラーポート
    –   超賢いスイッチはパケットをコピーして複数のポ
        ートに流せる
●   タップ
    –   物理的に出力を 2 つに分ける
タップの仕組み
1つの送信 (TD) を 2 つの受信 (RD) に繋ぐだけ!

         1:TD+                             1:TD+




                                                       HOST-B
HOST-A
         2:TD-                             2:TD-
         3:RD+                             3:RD+
         6:RD-                             6:RD-



         3:RD+          6:RD-   3:RD+          6:RD-
                 eth0                   eth1

                    HOST-C(tcpdump)

                                   100BASE までなら簡単に自作できる!
ハニーネットで大活躍ですね!

      1:TD+           1:TD+
  H   2:TD-            2:TD-




                               Sniffer
  U
  B   3:RD+           3:RD+
      6:RD-            6:RD-

            受信専用ケーブル
       ※ 賢くない HUB に繋いで使います
自分宛てのが見れれば十分です
●   全部見ると大変→フィルタを使う
    # tcpdump -i any -nn port 80
    # tcpdump -i any -nn host 192.168.1.1 and port 80
    # tcpdump -i any -nn not port 22 and not port 3389

●   ペイロードまで見たい
    # tcpdump -i any -nn -x
    # tcpdump -i any -nn -X

    小文字: Hex ダンプだけ
    大文字:アスキー付き
キャプチャサイズがデカいと疲れる
●   自動分割(出力先ファイルの切り替え)
    –   サイズ分割
        # tcpdump -i eth0 -C 10 -Z root -w tcpdump.pcap
           -C file_size(MB) -Z root を指定する

        # ls tcpdump*
        tcpdump.pcap tcpdump.pcap.1 tcpdump.pcap.2 ...
    –   時間分割
        # tcpdump -i eth0 -G 60 -Z root -w tcpdump_%Y%m%d-%H%M%S.pcap
           -G rotate_seconds -w strftime の書式文字列を含める

        # ls tcpdump*
        tcpdump_20120909-000740.pcap tcpdump_20120909-000840.pcap
        tcpdump_20120909-000940.pcap ...
取ったあとに分けたい
●   tcpslice
    –   指定時間の範囲で切り出し
        ●    キャプチャされてる時間の確認( 3 種類)
            % tcpslice -r tcpdump.pcap
            tcpdump.pcap   Wed Mar 27 11:44:11 2013   Wed Mar 27 11:44:23 2013

            % tcpslice -t tcpdump.pcap
            tcpdump.pcap   2013y03m27d11h44m11s817661u     2013y03m27d11h44m23s174956u

            % tcpslice -R tcpdump.pcap
            tcpdump.pcap   1364352251.817661     1364352263.174956
        ●    開始時間から相対的に指定も可能
            % tcpslice 1364352251.817661 +10 -w new.pcap tcpdump.pcap
別れたけどよりを戻したい
●   mergecap
    –   くっつけたい pcap を順番に並べて出力ファイル
        名を指定するだけ
        % mergecap -w <outfile> <infile> [<infile> ...]
ペイロードで絞りたい?
●   そんなときは「 ngrep 」
    –   条件にマッチしたパケットだけ表示する grep のネ
        ットワーク版
    –   オプションも grep とだいたい共通
        ●   -i :大文字小文字の無視
        ●   -w :単語にマッチ
        ●   -v :マッチしないものを表示
        ●   -X : 16 進数のストリングで指定
# ngrep [option] < match expression > < bpf filter >
# ngrep -q -d eth0 '' port 80
ngrep
●   -K < 回数 >
    –   マッチしたパケットに RST を投げる ( 通信の切
        断)
    –   簡単な L7FW に
    –   リモートのサーバで「 ngrep -K 1 」ってやると死
        ぬ
grep があるなら sed だって
●   netsed
    –   ネットワークストリームエディタ
    –   条件にマッチしたペイロードの文字列を書き換え
        # netsed [<proto>] <lport> <rhost> <rport> <rule1> [<rule2> ...]
        # netsed 8080 192.168.1.1 80 's/google/yahoo'

        →localhost:8080 に繋ぐと 192.168.1.1:80 に転送
         双方向のパケットでルールに基いて書き換え
GUI で見たいよね
●   wireshark の出番
でもやっぱり CLI だよね
●   tshark の出番
    –    wireshark に付属
    –    wireshark の CLI 版

        % tshark -r x.pcap
        1   0.000000 192.168.100.101 -> 192.168.100.102 TCP 74 49924 > http [SYN] Seq=0 Win=...
        2   0.000567 192.168.100.101 -> 192.168.100.102 TCP 66 49924 > http [ACK] Seq=1 Ack=...
        3   0.000697 192.168.100.101 -> 192.168.100.102 HTTP 223 GET / HTTP/1.1
        4   0.007204 192.168.100.101 -> 192.168.100.102 TCP 66 49924 > http [ACK] Seq=158 Ack=...
        5   0.007224 192.168.100.101 -> 192.168.100.102 TCP 66 49924 > http [ACK] Seq=158 Ack=...
        6   0.007320 192.168.100.101 -> 192.168.100.102 TCP 66 49924 > http [ACK] Seq=158 Ack=...
        7   0.007517 192.168.100.101 -> 192.168.100.102 TCP 66 49924 > http [ACK] Seq=158 Ack=...
        8   0.007580 192.168.100.101 -> 192.168.100.102 TCP 66 49924 > http [FIN, ACK] Seq=158 ...
        9   0.007625 192.168.100.101 -> 192.168.100.102 TCP 66 49924 > http [ACK] Seq=159 Ack=...
パケット好きですか(再)
●   あの素晴らしいパケットをもう一度
tcpreplay
●   tcpdump で取得したパケット (pcap) の内容を
    ネットワークに流す
    –   FW や IDS のテストで使用
    –   全部まとめて流したり、 1 パケットずつ(選択し
        て)流したり、帯域を絞って流したり、繰り返し
        流したり
tcprewrite
●   pcap の内容を書き換える
●   tcpreplay の補助ツール
    –   IP アドレスの書き換え(送信/受信)
    –   MAC アドレスの書き換え ( 〃 )
    –   VLAN タグの書き換え(削除/追加)
参考文献
●   http://wiki.wireshark.org/CaptureSetup/Ethernet
●   man tcpdump
●   man tcpreplay / tcprewrite

Más contenido relacionado

La actualidad más candente

目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
 
Pcapngを読んでみる
Pcapngを読んでみるPcapngを読んでみる
Pcapngを読んでみるYagi Shinnosuke
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501稔 小林
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話Takanori Sejima
 
5分で分かるgitのrefspec
5分で分かるgitのrefspec5分で分かるgitのrefspec
5分で分かるgitのrefspecikdysfm
 
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践Yoshifumi Kawai
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!Genya Murakami
 
Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る wata2ki
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料SECCON Beginners
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化Takuya ASADA
 
[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?Makoto SAKAI
 
DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発slankdev
 
Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介morihisa
 
WebSocketプロトコル
WebSocketプロトコルWebSocketプロトコル
WebSocketプロトコルDaniel Perez
 
DockerからKubernetesへのシフト
DockerからKubernetesへのシフトDockerからKubernetesへのシフト
DockerからKubernetesへのシフトmasaki nakayama
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使うKazuhiro Suga
 

La actualidad más candente (20)

目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
Pcapngを読んでみる
Pcapngを読んでみるPcapngを読んでみる
Pcapngを読んでみる
 
AS45679 on FreeBSD
AS45679 on FreeBSDAS45679 on FreeBSD
AS45679 on FreeBSD
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話
 
5分で分かるgitのrefspec
5分で分かるgitのrefspec5分で分かるgitのrefspec
5分で分かるgitのrefspec
 
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
 
Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る 
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
 
[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?
 
DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発
 
Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介
 
WebSocketプロトコル
WebSocketプロトコルWebSocketプロトコル
WebSocketプロトコル
 
DockerからKubernetesへのシフト
DockerからKubernetesへのシフトDockerからKubernetesへのシフト
DockerからKubernetesへのシフト
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 

Destacado

about tcpreplay-edit
about tcpreplay-editabout tcpreplay-edit
about tcpreplay-edit@ otsuka752
 
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのかH2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのかIchito Nagata
 
最新アドテク×Java script実践活用術
最新アドテク×Java script実践活用術最新アドテク×Java script実践活用術
最新アドテク×Java script実践活用術Nagao Shun
 
Supercharge your Investments with Tax-Loss Harvesting
Supercharge your Investments with Tax-Loss HarvestingSupercharge your Investments with Tax-Loss Harvesting
Supercharge your Investments with Tax-Loss HarvestingWealthfront
 
#ABC17 : Alphabet of Innovations, Academic Concepts and Emerging Movements
#ABC17 : Alphabet of Innovations, Academic Concepts and Emerging Movements#ABC17 : Alphabet of Innovations, Academic Concepts and Emerging Movements
#ABC17 : Alphabet of Innovations, Academic Concepts and Emerging MovementsDuane Holland
 
De felipe iii a carlos ii
De felipe iii a carlos iiDe felipe iii a carlos ii
De felipe iii a carlos iirousbell
 
Popular Struggles & Movements
Popular Struggles & MovementsPopular Struggles & Movements
Popular Struggles & MovementsMukund Ingle
 
ダブル配列の豆知識
ダブル配列の豆知識ダブル配列の豆知識
ダブル配列の豆知識s5yata
 
Offshore Maintenance Success: Adding $434M to the Bottom Line
Offshore Maintenance Success:  Adding $434M to the Bottom LineOffshore Maintenance Success:  Adding $434M to the Bottom Line
Offshore Maintenance Success: Adding $434M to the Bottom LineRobert Mason
 
Insignias digitales. trabajo final.Lucy Fernández
Insignias digitales. trabajo final.Lucy FernándezInsignias digitales. trabajo final.Lucy Fernández
Insignias digitales. trabajo final.Lucy FernándezLucy Fernandez
 
Finansijski izvjestaj o radu za 2016. godinu - Župa u srcu
Finansijski izvjestaj o radu za 2016. godinu - Župa u srcuFinansijski izvjestaj o radu za 2016. godinu - Župa u srcu
Finansijski izvjestaj o radu za 2016. godinu - Župa u srcuZupa U srcu
 
Lipril (Lisinopril Dihydrate Tablets)
Lipril (Lisinopril Dihydrate Tablets)Lipril (Lisinopril Dihydrate Tablets)
Lipril (Lisinopril Dihydrate Tablets)Clearsky Pharmacy
 
Prepare se para sua startup de sucesso!
Prepare se para sua startup de sucesso!Prepare se para sua startup de sucesso!
Prepare se para sua startup de sucesso!Igor Fonseca
 
Event Report - Worforce Software Vision 2017 - Time to start the boosters
Event Report - Worforce Software Vision 2017 - Time to start the boostersEvent Report - Worforce Software Vision 2017 - Time to start the boosters
Event Report - Worforce Software Vision 2017 - Time to start the boostersHolger Mueller
 

Destacado (20)

about tcpreplay-edit
about tcpreplay-editabout tcpreplay-edit
about tcpreplay-edit
 
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのかH2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのか
 
最新アドテク×Java script実践活用術
最新アドテク×Java script実践活用術最新アドテク×Java script実践活用術
最新アドテク×Java script実践活用術
 
SSH力をつけよう
SSH力をつけようSSH力をつけよう
SSH力をつけよう
 
Supercharge your Investments with Tax-Loss Harvesting
Supercharge your Investments with Tax-Loss HarvestingSupercharge your Investments with Tax-Loss Harvesting
Supercharge your Investments with Tax-Loss Harvesting
 
#ABC17 : Alphabet of Innovations, Academic Concepts and Emerging Movements
#ABC17 : Alphabet of Innovations, Academic Concepts and Emerging Movements#ABC17 : Alphabet of Innovations, Academic Concepts and Emerging Movements
#ABC17 : Alphabet of Innovations, Academic Concepts and Emerging Movements
 
SMARTI
SMARTISMARTI
SMARTI
 
De felipe iii a carlos ii
De felipe iii a carlos iiDe felipe iii a carlos ii
De felipe iii a carlos ii
 
Bienvenidos actualizando información sobre BETT & ISE 2017
Bienvenidos   actualizando información sobre BETT & ISE 2017Bienvenidos   actualizando información sobre BETT & ISE 2017
Bienvenidos actualizando información sobre BETT & ISE 2017
 
Popular Struggles & Movements
Popular Struggles & MovementsPopular Struggles & Movements
Popular Struggles & Movements
 
New Heavens & New Earth
New Heavens & New EarthNew Heavens & New Earth
New Heavens & New Earth
 
ダブル配列の豆知識
ダブル配列の豆知識ダブル配列の豆知識
ダブル配列の豆知識
 
Offshore Maintenance Success: Adding $434M to the Bottom Line
Offshore Maintenance Success:  Adding $434M to the Bottom LineOffshore Maintenance Success:  Adding $434M to the Bottom Line
Offshore Maintenance Success: Adding $434M to the Bottom Line
 
Insignias digitales. trabajo final.Lucy Fernández
Insignias digitales. trabajo final.Lucy FernándezInsignias digitales. trabajo final.Lucy Fernández
Insignias digitales. trabajo final.Lucy Fernández
 
Finansijski izvjestaj o radu za 2016. godinu - Župa u srcu
Finansijski izvjestaj o radu za 2016. godinu - Župa u srcuFinansijski izvjestaj o radu za 2016. godinu - Župa u srcu
Finansijski izvjestaj o radu za 2016. godinu - Župa u srcu
 
Lipril (Lisinopril Dihydrate Tablets)
Lipril (Lisinopril Dihydrate Tablets)Lipril (Lisinopril Dihydrate Tablets)
Lipril (Lisinopril Dihydrate Tablets)
 
Prepare se para sua startup de sucesso!
Prepare se para sua startup de sucesso!Prepare se para sua startup de sucesso!
Prepare se para sua startup de sucesso!
 
UI composition
UI compositionUI composition
UI composition
 
Event Report - Worforce Software Vision 2017 - Time to start the boosters
Event Report - Worforce Software Vision 2017 - Time to start the boostersEvent Report - Worforce Software Vision 2017 - Time to start the boosters
Event Report - Worforce Software Vision 2017 - Time to start the boosters
 
Fuentes de alimentacion
Fuentes de alimentacionFuentes de alimentacion
Fuentes de alimentacion
 

Similar a tcpdumpとtcpreplayとtcprewriteと他。

HaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングHaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングKiwamu Okabe
 
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)Naoto MATSUMOTO
 
TCP connectionの保存と復元
TCP connectionの保存と復元TCP connectionの保存と復元
TCP connectionの保存と復元mittyorz
 
SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計
SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計
SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計Yuuki Takano
 
出張 CTF for ビギナーズ 2015 幕張 in セキュリティ・キャンプ 成果報告
出張 CTF for ビギナーズ 2015 幕張 in セキュリティ・キャンプ 成果報告出張 CTF for ビギナーズ 2015 幕張 in セキュリティ・キャンプ 成果報告
出張 CTF for ビギナーズ 2015 幕張 in セキュリティ・キャンプ 成果報告Ikumi Shimizu
 
Trema day 1
Trema day 1Trema day 1
Trema day 1ykuga
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_netTomoya Hibi
 
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...Masanobu Saitoh
 
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎Insight Technology, Inc.
 
Xen4.0 and vt-d Network Performance Benchmark
Xen4.0 and vt-d Network Performance BenchmarkXen4.0 and vt-d Network Performance Benchmark
Xen4.0 and vt-d Network Performance BenchmarkMitsutoshi Kiuchi
 
SECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについてSECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについてt-sin
 
パケットフィルタリングの考え方
パケットフィルタリングの考え方パケットフィルタリングの考え方
パケットフィルタリングの考え方Koiwa Hidekazu
 
Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編Masaru Oki
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始めtetsusat
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境yut148atgmaildotcom
 

Similar a tcpdumpとtcpreplayとtcprewriteと他。 (20)

HaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングHaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミング
 
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
 
TCP connectionの保存と復元
TCP connectionの保存と復元TCP connectionの保存と復元
TCP connectionの保存と復元
 
SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計
SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計
SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計
 
Hack for Docker's Network
Hack for Docker's NetworkHack for Docker's Network
Hack for Docker's Network
 
出張 CTF for ビギナーズ 2015 幕張 in セキュリティ・キャンプ 成果報告
出張 CTF for ビギナーズ 2015 幕張 in セキュリティ・キャンプ 成果報告出張 CTF for ビギナーズ 2015 幕張 in セキュリティ・キャンプ 成果報告
出張 CTF for ビギナーズ 2015 幕張 in セキュリティ・キャンプ 成果報告
 
Trema day 1
Trema day 1Trema day 1
Trema day 1
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_net
 
Scapy presentation
Scapy presentationScapy presentation
Scapy presentation
 
Ras piでrt linux
Ras piでrt linuxRas piでrt linux
Ras piでrt linux
 
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
 
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
 
Xen4.0 and vt-d Network Performance Benchmark
Xen4.0 and vt-d Network Performance BenchmarkXen4.0 and vt-d Network Performance Benchmark
Xen4.0 and vt-d Network Performance Benchmark
 
SECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについてSECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについて
 
ひよこch 配信中
ひよこch 配信中ひよこch 配信中
ひよこch 配信中
 
パケットフィルタリングの考え方
パケットフィルタリングの考え方パケットフィルタリングの考え方
パケットフィルタリングの考え方
 
Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
 

Más de (^-^) togakushi

ささみ麻雀部の紹介
ささみ麻雀部の紹介ささみ麻雀部の紹介
ささみ麻雀部の紹介(^-^) togakushi
 
ファイナル・ファンタジー2のデータを解析してみる
ファイナル・ファンタジー2のデータを解析してみるファイナル・ファンタジー2のデータを解析してみる
ファイナル・ファンタジー2のデータを解析してみる(^-^) togakushi
 
手順書の話 Ver.0.3.0
手順書の話 Ver.0.3.0手順書の話 Ver.0.3.0
手順書の話 Ver.0.3.0(^-^) togakushi
 
仕事の捉え方の話 #ssmjp
仕事の捉え方の話 #ssmjp仕事の捉え方の話 #ssmjp
仕事の捉え方の話 #ssmjp(^-^) togakushi
 
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
OpenSSH User EnumerationTime-Based Attack と Python-paramikoOpenSSH User EnumerationTime-Based Attack と Python-paramiko
OpenSSH User EnumerationTime-Based Attack と Python-paramiko(^-^) togakushi
 
現場で役に立たないsudoの使い方
現場で役に立たないsudoの使い方現場で役に立たないsudoの使い方
現場で役に立たないsudoの使い方(^-^) togakushi
 

Más de (^-^) togakushi (14)

ささみ麻雀部の紹介
ささみ麻雀部の紹介ささみ麻雀部の紹介
ささみ麻雀部の紹介
 
ファイナル・ファンタジー2のデータを解析してみる
ファイナル・ファンタジー2のデータを解析してみるファイナル・ファンタジー2のデータを解析してみる
ファイナル・ファンタジー2のデータを解析してみる
 
手順書の話 Ver.0.3.0
手順書の話 Ver.0.3.0手順書の話 Ver.0.3.0
手順書の話 Ver.0.3.0
 
仕事の捉え方の話 #ssmjp
仕事の捉え方の話 #ssmjp仕事の捉え方の話 #ssmjp
仕事の捉え方の話 #ssmjp
 
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
OpenSSH User EnumerationTime-Based Attack と Python-paramikoOpenSSH User EnumerationTime-Based Attack と Python-paramiko
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
 
Janog33.5
Janog33.5Janog33.5
Janog33.5
 
現場で役に立たないsudoの使い方
現場で役に立たないsudoの使い方現場で役に立たないsudoの使い方
現場で役に立たないsudoの使い方
 
sshdのお話
sshdのお話sshdのお話
sshdのお話
 
KVM+cgroup
KVM+cgroupKVM+cgroup
KVM+cgroup
 
SSH力をつかおう
SSH力をつかおうSSH力をつかおう
SSH力をつかおう
 
jenkinsで遊ぶ
jenkinsで遊ぶjenkinsで遊ぶ
jenkinsで遊ぶ
 
Pakena #9
Pakena #9Pakena #9
Pakena #9
 
Sfstudy #2
Sfstudy #2Sfstudy #2
Sfstudy #2
 
ひとりsphinx
ひとりsphinxひとりsphinx
ひとりsphinx
 

tcpdumpとtcpreplayとtcprewriteと他。

  • 1. tcpdump と tcpreplay と tcprewrite と他。 #ssmjp 2013/03/29 @togakushi
  • 2. パケット好きですか? ● tcpdump ってコマンドで好きなだけみれま す! ● 要 root – NIC が promiscuous mode へ – 流れてきたパケットは無差別に拾うモード – 通常は自分宛てのパケットしか処理しない
  • 3. 切り分けに超役立つ ● ちゃんと相手から届いてるかわかる ● 誰から送られてきてるかわかる ● 暗号化されてるかわかる
  • 4. インテリジェントなスイッチ ● MAC アドレスの学習 – 接続されたポートの先に何が繋がってるか知って いる – tcpdump を動かすマシンから見ると、自分宛のパ ケットしか流れてこない>< ● 気になるあの子 ( サーバ ) のパケットも見た い! (注:他人の通信を覗くのはダメですよ)
  • 5. こんなこともあろうかと! ● ミラーポート – 超賢いスイッチはパケットをコピーして複数のポ ートに流せる ● タップ – 物理的に出力を 2 つに分ける
  • 6. タップの仕組み 1つの送信 (TD) を 2 つの受信 (RD) に繋ぐだけ! 1:TD+ 1:TD+ HOST-B HOST-A 2:TD- 2:TD- 3:RD+ 3:RD+ 6:RD- 6:RD- 3:RD+ 6:RD- 3:RD+ 6:RD- eth0 eth1 HOST-C(tcpdump) 100BASE までなら簡単に自作できる!
  • 7. ハニーネットで大活躍ですね! 1:TD+ 1:TD+ H 2:TD- 2:TD- Sniffer U B 3:RD+ 3:RD+ 6:RD- 6:RD- 受信専用ケーブル ※ 賢くない HUB に繋いで使います
  • 8. 自分宛てのが見れれば十分です ● 全部見ると大変→フィルタを使う # tcpdump -i any -nn port 80 # tcpdump -i any -nn host 192.168.1.1 and port 80 # tcpdump -i any -nn not port 22 and not port 3389 ● ペイロードまで見たい # tcpdump -i any -nn -x # tcpdump -i any -nn -X 小文字: Hex ダンプだけ 大文字:アスキー付き
  • 9. キャプチャサイズがデカいと疲れる ● 自動分割(出力先ファイルの切り替え) – サイズ分割 # tcpdump -i eth0 -C 10 -Z root -w tcpdump.pcap -C file_size(MB) -Z root を指定する # ls tcpdump* tcpdump.pcap tcpdump.pcap.1 tcpdump.pcap.2 ... – 時間分割 # tcpdump -i eth0 -G 60 -Z root -w tcpdump_%Y%m%d-%H%M%S.pcap -G rotate_seconds -w strftime の書式文字列を含める # ls tcpdump* tcpdump_20120909-000740.pcap tcpdump_20120909-000840.pcap tcpdump_20120909-000940.pcap ...
  • 10. 取ったあとに分けたい ● tcpslice – 指定時間の範囲で切り出し ● キャプチャされてる時間の確認( 3 種類) % tcpslice -r tcpdump.pcap tcpdump.pcap Wed Mar 27 11:44:11 2013 Wed Mar 27 11:44:23 2013 % tcpslice -t tcpdump.pcap tcpdump.pcap 2013y03m27d11h44m11s817661u 2013y03m27d11h44m23s174956u % tcpslice -R tcpdump.pcap tcpdump.pcap 1364352251.817661 1364352263.174956 ● 開始時間から相対的に指定も可能 % tcpslice 1364352251.817661 +10 -w new.pcap tcpdump.pcap
  • 11. 別れたけどよりを戻したい ● mergecap – くっつけたい pcap を順番に並べて出力ファイル 名を指定するだけ % mergecap -w <outfile> <infile> [<infile> ...]
  • 12. ペイロードで絞りたい? ● そんなときは「 ngrep 」 – 条件にマッチしたパケットだけ表示する grep のネ ットワーク版 – オプションも grep とだいたい共通 ● -i :大文字小文字の無視 ● -w :単語にマッチ ● -v :マッチしないものを表示 ● -X : 16 進数のストリングで指定 # ngrep [option] < match expression > < bpf filter > # ngrep -q -d eth0 '' port 80
  • 13. ngrep ● -K < 回数 > – マッチしたパケットに RST を投げる ( 通信の切 断) – 簡単な L7FW に – リモートのサーバで「 ngrep -K 1 」ってやると死 ぬ
  • 14. grep があるなら sed だって ● netsed – ネットワークストリームエディタ – 条件にマッチしたペイロードの文字列を書き換え # netsed [<proto>] <lport> <rhost> <rport> <rule1> [<rule2> ...] # netsed 8080 192.168.1.1 80 's/google/yahoo' →localhost:8080 に繋ぐと 192.168.1.1:80 に転送  双方向のパケットでルールに基いて書き換え
  • 15. GUI で見たいよね ● wireshark の出番
  • 16. でもやっぱり CLI だよね ● tshark の出番 – wireshark に付属 – wireshark の CLI 版 % tshark -r x.pcap 1 0.000000 192.168.100.101 -> 192.168.100.102 TCP 74 49924 > http [SYN] Seq=0 Win=... 2 0.000567 192.168.100.101 -> 192.168.100.102 TCP 66 49924 > http [ACK] Seq=1 Ack=... 3 0.000697 192.168.100.101 -> 192.168.100.102 HTTP 223 GET / HTTP/1.1 4 0.007204 192.168.100.101 -> 192.168.100.102 TCP 66 49924 > http [ACK] Seq=158 Ack=... 5 0.007224 192.168.100.101 -> 192.168.100.102 TCP 66 49924 > http [ACK] Seq=158 Ack=... 6 0.007320 192.168.100.101 -> 192.168.100.102 TCP 66 49924 > http [ACK] Seq=158 Ack=... 7 0.007517 192.168.100.101 -> 192.168.100.102 TCP 66 49924 > http [ACK] Seq=158 Ack=... 8 0.007580 192.168.100.101 -> 192.168.100.102 TCP 66 49924 > http [FIN, ACK] Seq=158 ... 9 0.007625 192.168.100.101 -> 192.168.100.102 TCP 66 49924 > http [ACK] Seq=159 Ack=...
  • 17. パケット好きですか(再) ● あの素晴らしいパケットをもう一度
  • 18. tcpreplay ● tcpdump で取得したパケット (pcap) の内容を ネットワークに流す – FW や IDS のテストで使用 – 全部まとめて流したり、 1 パケットずつ(選択し て)流したり、帯域を絞って流したり、繰り返し 流したり
  • 19. tcprewrite ● pcap の内容を書き換える ● tcpreplay の補助ツール – IP アドレスの書き換え(送信/受信) – MAC アドレスの書き換え ( 〃 ) – VLAN タグの書き換え(削除/追加)
  • 20. 参考文献 ● http://wiki.wireshark.org/CaptureSetup/Ethernet ● man tcpdump ● man tcpreplay / tcprewrite