SlideShare a Scribd company logo
1 of 20
Download to read offline
import dpktしたよ
2014/02/28 #ssmjp @th0x0472

1
パケットみてますか?
Wireshark
tshark
tcpdump
Network Monitor
etc...
2
今日報告すること

pcapファイルを読んで何かするなら
Python + dpkt もよいですよ。

3
dpktってなに?
公式サイトによると
"Fast, simple packet creation and parsing.
We have no docs, but only sample code for
now. "
4
ソースみてみる
% pwd
~/dpkt-1.8
% find ./ -name '*py' | wc -l
72
% find ./ -name '*py' | xargs grep -v '^$' | wc -l
7318
5
入手&導入
dpktで検索すればイッパツ。
Debian系ならパッケージある。
それで入れるのがお手軽。
最近のMac向けのパッケージはないみたい。
Windowsは試してない。(やる気もない)
6
僕が出来るコト

pcapを読む。
読んでパケットをごにょごにょする。

7
これはムリ
pcap-ng を読み書きできない。
最近のWireshark/tshark使うときはまった。
tshark -F pcap -w <filename>
通信はできない。
8
使用例1
pcapファイル内の全パケットを順に読んで、
code blockに通す
主流ぽい。
スクリプトにするならこうかな。

9
コードの例
import dpkt
p = dpkt.pcap.Reader(open(filename,'rb'))
for t,buf in p:
eth = dpkt.ethernet.Ethernet(buf)
ip = eth.data
...

10
コードの説明
for t,buf in p:
t にタイムスタンプが入る
buf にパケットデータがはいる
(L2だからフレームと言うべき?)
あとは好きに出来る
11
使用例2
pcapファイルを読んで、任意のパケットを
アレコレ好きに出来る
目当てのパケットが決まっていたり、
お試し(試行錯誤)する場合おすすめ
インタプリタで使うのがおすすめ
12
コードの例
>>> import dpkt
>>> p = dpkt.pcap.Reader(open(filename,'rb'))
>>> p.readpkts()

13
コードの説明
p.readpkts()
各パケットのタイムスタンプと
パケットデータのタプルのリスト
[(ts1,pdata1), (ts2,pdata2), ...]

14
コードの説明
p.readpkts()[n][1] で、pcapファイル中 n番目の
パケットデータにアクセスできる
(リストのカウント0始まりだからn番目
じゃなくてn−1番目じゃね?とか細かいこ
とは(ここでは)気にしない)
15
デモをやりました

16
おまけ
Python だけなの?
→ PerlもRubyも、pcapを読み書きするための
ライブラリはありました。
でもそれ以上はしらべてません。

17
おまけ
lbpcap...
→使用例2のインタプリタで1つ取り出し
てごにょごにょがやりたかったんですよぅ

18
おまけ
pcapファイル中のパケットの情報の
集計する、統計とるなら、
tshark + Excel の方が・・・
→ そうですね。

19
おしまい
ご清聴ありがとうございました。 

20

More Related Content

What's hot

Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwarding
Masakazu Asama
 
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法
Takuya ASADA
 

What's hot (20)

最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
普通の人でもわかる Paxos
普通の人でもわかる Paxos普通の人でもわかる Paxos
普通の人でもわかる Paxos
 
大規模DCのネットワークデザイン
大規模DCのネットワークデザイン大規模DCのネットワークデザイン
大規模DCのネットワークデザイン
 
P4によるデータプレーンプログラミングとユースケースのご紹介
P4によるデータプレーンプログラミングとユースケースのご紹介P4によるデータプレーンプログラミングとユースケースのご紹介
P4によるデータプレーンプログラミングとユースケースのご紹介
 
Paxos
PaxosPaxos
Paxos
 
閉域網接続の技術入門
閉域網接続の技術入門閉域網接続の技術入門
閉域網接続の技術入門
 
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話
 
データセンターネットワークでのPrometheus活用事例
データセンターネットワークでのPrometheus活用事例データセンターネットワークでのPrometheus活用事例
データセンターネットワークでのPrometheus活用事例
 
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
構成情報データベースをGitで管理したいネットワーク運用者の憂鬱
構成情報データベースをGitで管理したいネットワーク運用者の憂鬱構成情報データベースをGitで管理したいネットワーク運用者の憂鬱
構成情報データベースをGitで管理したいネットワーク運用者の憂鬱
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
みんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしようみんなのPython勉強会#77 パッケージングしよう
みんなのPython勉強会#77 パッケージングしよう
 
Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwarding
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法
 

Similar to import dpkt したよ #ssmjp 2014/02/28

Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
Panda Yamaki
 
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Panda Yamaki
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
2bo 2bo
 
tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。
(^-^) togakushi
 
第4回Linux-HA勉強会資料 Pacemakerの紹介
第4回Linux-HA勉強会資料 Pacemakerの紹介第4回Linux-HA勉強会資料 Pacemakerの紹介
第4回Linux-HA勉強会資料 Pacemakerの紹介
ksk_ha
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
Takuto Matsuu
 
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
エイシュン コンドウ
 

Similar to import dpkt したよ #ssmjp 2014/02/28 (20)

pkgsrc とは何か? - よもやま話
pkgsrc とは何か? - よもやま話pkgsrc とは何か? - よもやま話
pkgsrc とは何か? - よもやま話
 
Pcapngを読んでみる
Pcapngを読んでみるPcapngを読んでみる
Pcapngを読んでみる
 
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
 
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料
 
Osc2013 tokyospring
Osc2013 tokyospringOsc2013 tokyospring
Osc2013 tokyospring
 
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
Riscv+fpga200606
Riscv+fpga200606Riscv+fpga200606
Riscv+fpga200606
 
20090124shibuya Trac
20090124shibuya Trac20090124shibuya Trac
20090124shibuya Trac
 
20060520.tcp
20060520.tcp20060520.tcp
20060520.tcp
 
Fpgax20170924
Fpgax20170924Fpgax20170924
Fpgax20170924
 
Ruby でパケットパーサを作ろう
Ruby でパケットパーサを作ろうRuby でパケットパーサを作ろう
Ruby でパケットパーサを作ろう
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつり
 
tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。
 
深層学習フレームワークChainerの紹介とFPGAへの期待
深層学習フレームワークChainerの紹介とFPGAへの期待深層学習フレームワークChainerの紹介とFPGAへの期待
深層学習フレームワークChainerの紹介とFPGAへの期待
 
第4回Linux-HA勉強会資料 Pacemakerの紹介
第4回Linux-HA勉強会資料 Pacemakerの紹介第4回Linux-HA勉強会資料 Pacemakerの紹介
第4回Linux-HA勉強会資料 Pacemakerの紹介
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
 
Rdkitの紹介
Rdkitの紹介Rdkitの紹介
Rdkitの紹介
 
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419Tremaで構築!中小企業の社内LAN #Tremaday 120419
Tremaで構築!中小企業の社内LAN #Tremaday 120419
 
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
 

More from th0x0472 (6)

とある監視ではまった話 #ssmjp 2014/12
とある監視ではまった話 #ssmjp 2014/12とある監視ではまった話 #ssmjp 2014/12
とある監視ではまった話 #ssmjp 2014/12
 
#ssmjp 2014/09 bashのちょっとした便利機能の紹介
#ssmjp 2014/09 bashのちょっとした便利機能の紹介#ssmjp 2014/09 bashのちょっとした便利機能の紹介
#ssmjp 2014/09 bashのちょっとした便利機能の紹介
 
MAN OF BASH #ssmjp 2013.09.25
MAN OF BASH #ssmjp 2013.09.25MAN OF BASH #ssmjp 2013.09.25
MAN OF BASH #ssmjp 2013.09.25
 
2012/09/27 #ssmjp おうちOpenStack
2012/09/27 #ssmjp おうちOpenStack2012/09/27 #ssmjp おうちOpenStack
2012/09/27 #ssmjp おうちOpenStack
 
201207 ssmjp
201207 ssmjp201207 ssmjp
201207 ssmjp
 
2012/06/28 #ssmjp
2012/06/28 #ssmjp2012/06/28 #ssmjp
2012/06/28 #ssmjp
 

Recently uploaded

Recently uploaded (11)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

import dpkt したよ #ssmjp 2014/02/28