Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Takaaki Hoyo
PDF, PPTX
36,852 views
Scapyで作る・解析するパケット
第32回「ネットワーク パケットを読む会(仮)」で発表した資料です。 #pakeana https://atnd.org/events/70080
Engineering
◦
Read more
38
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 37
2
/ 37
3
/ 37
4
/ 37
5
/ 37
Most read
6
/ 37
7
/ 37
8
/ 37
9
/ 37
10
/ 37
11
/ 37
12
/ 37
13
/ 37
14
/ 37
15
/ 37
16
/ 37
17
/ 37
18
/ 37
Most read
19
/ 37
20
/ 37
Most read
21
/ 37
22
/ 37
23
/ 37
24
/ 37
25
/ 37
26
/ 37
27
/ 37
28
/ 37
29
/ 37
30
/ 37
31
/ 37
32
/ 37
33
/ 37
34
/ 37
35
/ 37
36
/ 37
37
/ 37
More Related Content
PDF
Linux女子部 systemd徹底入門
by
Etsuji Nakai
PDF
BGP Unnumbered で遊んでみた
by
akira6592
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
PDF
Pythonでパケット解析
by
euphoricwavism
PPTX
Wiresharkの解析プラグインを作る ssmjp 201409
by
稔 小林
PDF
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
by
Takateru Yamagishi
PPTX
コンテナネットワーキング(CNI)最前線
by
Motonori Shindo
PDF
ネットワークOS野郎 ~ インフラ野郎Night 20160414
by
Kentaro Ebisawa
Linux女子部 systemd徹底入門
by
Etsuji Nakai
BGP Unnumbered で遊んでみた
by
akira6592
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
Pythonでパケット解析
by
euphoricwavism
Wiresharkの解析プラグインを作る ssmjp 201409
by
稔 小林
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
by
Takateru Yamagishi
コンテナネットワーキング(CNI)最前線
by
Motonori Shindo
ネットワークOS野郎 ~ インフラ野郎Night 20160414
by
Kentaro Ebisawa
What's hot
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PDF
Docker Compose 徹底解説
by
Masahito Zembutsu
PDF
暗号技術の実装と数学
by
MITSUNARI Shigeo
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PDF
Dockerからcontainerdへの移行
by
Kohei Tokunaga
PDF
1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...
by
NTT DATA Technology & Innovation
PDF
CTF for ビギナーズ ネットワーク講習資料
by
SECCON Beginners
PDF
PWNの超入門 大和セキュリティ神戸 2018-03-25
by
Isaac Mathis
PDF
初心者向けCTFのWeb分野の強化法
by
kazkiti
PPTX
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
PDF
DockerとPodmanの比較
by
Akihiro Suda
PPTX
Dockerからcontainerdへの移行
by
Akihiro Suda
PPTX
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
by
NTT DATA Technology & Innovation
PDF
TLS, HTTP/2演習
by
shigeki_ohtsu
PDF
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
by
NTT DATA Technology & Innovation
PPTX
DockerコンテナでGitを使う
by
Kazuhiro Suga
PDF
EthernetやCPUなどの話
by
Takanori Sejima
PDF
大規模DCのネットワークデザイン
by
Masayuki Kobayashi
PPTX
BuildKitによる高速でセキュアなイメージビルド
by
Akihiro Suda
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
Docker Compose 徹底解説
by
Masahito Zembutsu
暗号技術の実装と数学
by
MITSUNARI Shigeo
マイクロにしすぎた結果がこれだよ!
by
mosa siru
Dockerからcontainerdへの移行
by
Kohei Tokunaga
1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...
by
NTT DATA Technology & Innovation
CTF for ビギナーズ ネットワーク講習資料
by
SECCON Beginners
PWNの超入門 大和セキュリティ神戸 2018-03-25
by
Isaac Mathis
初心者向けCTFのWeb分野の強化法
by
kazkiti
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
DockerとPodmanの比較
by
Akihiro Suda
Dockerからcontainerdへの移行
by
Akihiro Suda
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
by
NTT DATA Technology & Innovation
TLS, HTTP/2演習
by
shigeki_ohtsu
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
by
NTT DATA Technology & Innovation
DockerコンテナでGitを使う
by
Kazuhiro Suga
EthernetやCPUなどの話
by
Takanori Sejima
大規模DCのネットワークデザイン
by
Masayuki Kobayashi
BuildKitによる高速でセキュアなイメージビルド
by
Akihiro Suda
Similar to Scapyで作る・解析するパケット
PDF
Ethernetの受信処理
by
Takuya ASADA
PDF
about Tcpreplay
by
@ otsuka752
PDF
Wiresharkで検出できないチャットプログラム
by
Shinichi Hirauchi
PDF
Windowsのパケットモニタ作成
by
Shinichi Hirauchi
PDF
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
by
Panda Yamaki
ODP
tcpdumpとtcpreplayとtcprewriteと他。
by
(^-^) togakushi
PDF
import dpkt したよ #ssmjp 2014/02/28
by
th0x0472
PDF
libpgenでパケット操作
by
slankdev
PDF
Scapy presentation Remake(訂正)
by
ashigirl ZareGoto
PDF
Scapy presentation
by
ashigirl ZareGoto
PPT
20060520.tcp
by
Ken SASAKI
PDF
OSC 2016 Hokkaido セミナー資料
by
slankdev
PDF
Hokkaido.cap#3 ケーススタディ(基礎編)
by
Panda Yamaki
PDF
Trema day 1
by
ykuga
PDF
Security.gs fes 2010 in tokyo
by
Ren Sakamoto
PPT
IPv6アドレスでお絵かき
by
Yasuyuki Nakamura
PDF
OSC2016 Tokyo/Spring セミナー資料
by
slankdev
PDF
TwitVisor
by
shimada_201220655
PDF
Riak Source Code Reading #2: Erlang Client
by
nobu_k
PDF
OSC2016 Tokyo/Spring LT
by
slankdev
Ethernetの受信処理
by
Takuya ASADA
about Tcpreplay
by
@ otsuka752
Wiresharkで検出できないチャットプログラム
by
Shinichi Hirauchi
Windowsのパケットモニタ作成
by
Shinichi Hirauchi
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
by
Panda Yamaki
tcpdumpとtcpreplayとtcprewriteと他。
by
(^-^) togakushi
import dpkt したよ #ssmjp 2014/02/28
by
th0x0472
libpgenでパケット操作
by
slankdev
Scapy presentation Remake(訂正)
by
ashigirl ZareGoto
Scapy presentation
by
ashigirl ZareGoto
20060520.tcp
by
Ken SASAKI
OSC 2016 Hokkaido セミナー資料
by
slankdev
Hokkaido.cap#3 ケーススタディ(基礎編)
by
Panda Yamaki
Trema day 1
by
ykuga
Security.gs fes 2010 in tokyo
by
Ren Sakamoto
IPv6アドレスでお絵かき
by
Yasuyuki Nakamura
OSC2016 Tokyo/Spring セミナー資料
by
slankdev
TwitVisor
by
shimada_201220655
Riak Source Code Reading #2: Erlang Client
by
nobu_k
OSC2016 Tokyo/Spring LT
by
slankdev
More from Takaaki Hoyo
PDF
hpingで作るパケット
by
Takaaki Hoyo
PDF
CpawCTF 勉強会 Network
by
Takaaki Hoyo
PDF
低対話型サーバハニーポットの運用結果及び考察
by
Takaaki Hoyo
PDF
パケットで遊ぼう! #ssmjp 2015/04
by
Takaaki Hoyo
PDF
Elastic StackでWebサーバのログ解析を始めた件について
by
Takaaki Hoyo
PDF
○○はいいぞ
by
Takaaki Hoyo
hpingで作るパケット
by
Takaaki Hoyo
CpawCTF 勉強会 Network
by
Takaaki Hoyo
低対話型サーバハニーポットの運用結果及び考察
by
Takaaki Hoyo
パケットで遊ぼう! #ssmjp 2015/04
by
Takaaki Hoyo
Elastic StackでWebサーバのログ解析を始めた件について
by
Takaaki Hoyo
○○はいいぞ
by
Takaaki Hoyo
Scapyで作る・解析するパケット
1.
@takahoyo
2.
§ Pythonで書かれた対話型のパケット操作プログラム -‐‑‒ Pythonのライブラリとしてimportして使うことも -‐‑‒
ドキュメント(英語)が充実している § http://www.secdev.org/projects/scapy/ § http://www.secdev.org/projects/scapy/doc/index.html § 何ができる? -‐‑‒ パケットの⽣生成 -‐‑‒ パケットの送受信 -‐‑‒ pcapファイルの読み込み、書き込み -‐‑‒ など § 読み⽅方は、「すけいぴー」「すきゃっぴー」? -‐‑‒ http://yomikata.org/word/scapy 2015/9/30 2
3.
§ Python 2系がインストールされてる環境で試した -‐‑‒
3系は⾮非公式で対応してるらしい § Linux -‐‑‒ Kali Linuxならデフォルトでインストール -‐‑‒ Ubuntu : sudo apt-get install python-scapy § Mac -‐‑‒ brew : brew install libdnet scapy § 他のインストール⽅方法について -‐‑‒ 公式のドキュメントを参照(情報が少し古い -‐‑‒ http://www.secdev.org/projects/scapy/doc/installation.html 2015/9/30 3
4.
2015/9/30 4
5.
§パケットを作る §パケットを送る §パケットを解析する 2015/9/30 5
6.
2015/9/30
7.
§ まずはこういうパケットを作ってみよう 2015/9/30 Ethernet IP
TCP
8.
§ プロトコルがクラスとして定義されている -‐‑‒ Ex.
Ethernet → Etherクラス § “/”を使うことで、複数のレイヤのパケットを作る -‐‑‒ こういうパケットを作る場合 -‐‑‒ Ether()/IP()/TCP() 2015/9/30 8 Ethernet IP TCP
9.
§ 次は各プロトコルフィールドに値を指定 -‐‑‒ Ethernet §
Src MAC Addr: 00:00:00:00:00:00 § Dst MAC Addr: 11:11:11:11:11:11 -‐‑‒ IP § Src IP Addr: 192.168.1.1 § Dst IP Addr: 192.168.1.2 -‐‑‒ TCP § Src port: 1234 § Dst port: 4321 § Flag: SYN 2015/9/30 9
10.
§ 引数を指定して、フィールドを特定の値で初期化 § フィールドに対応してる変数を調べる -‐‑‒
ls(クラス名) -‐‑‒ Ex. Etherクラス → ls(Ether) 2015/9/30 10
11.
§ 前述のパケットを作ると次のようになる -‐‑‒ Ether(src="11:11:11:11:11:11", dst="00:00:00:00:00:00”)/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=1234,
dport=4321, flags="S") 2015/9/30 11
12.
§ 変数packetにパケットを保存 § 変数packetの中⾝身を表⽰示 §
変数packetの中⾝身をWiresharkで表⽰示 -‐‑‒ wireshark(packet) § 変数packetの中⾝身をexample.pcapに書き込み -‐‑‒ wrpcap(‘example.pcap’,packet) 2015/9/30 12
13.
§ Wiresharkで表⽰示 2015/9/30 13
14.
§ ここまで、”Ether/IP/TCP”のパケットを作った § 他のプロトコルにも対応している -‐‑‒
ls()でどのようなプロトコルが対応しているか表⽰示できる -‐‑‒ L1~L4のプロトコルであればほぼ対応 -‐‑‒ L5~L7は、あまり対応してない雰囲気… 2015/9/30 14
15.
2015/9/30 15
16.
2015/9/30 16 § まずパケットを作る -‐‑‒
“ICMP Echo Request”パケットを作る § そのパケットを送る -‐‑‒ send()で送信することができる -‐‑‒ send()の場合、L2のプロトコルは⾃自動で調整
17.
§ Wiresharkで⾒見見てみる 2015/9/30 17
18.
§ 送るだけでなく、返ってきたパケットも⾒見見る -‐‑‒ sr()を使う -‐‑‒
sr1()を使うと最初に返ってきた⼀一つのパケットだけ⾒見見る 2015/9/30 18
19.
§ 返ってきたパケットを変数に保存する -‐‑‒ sr()やsr1()の戻り値は、返ってきたパケットの情報 2015/9/30
19
20.
§ 他にもいろいろな送信⽅方法 2015/9/30 20 function
(引数は初期値, N:None) 説明 send(pkt, count=1,inter=1,iface=N) L3レベルでのパケット送信 sendp(pkt, count=1, inter=1, iface=N) L2レベルでのパケット送信 sendfast(pkt, pps=N, mbps=N, iface=N) tcpreplayを使って送るらしい sr(pkt, filter=N, iface=N) : L3 srp(pkt, filter=N,iface=N) : L2 パケット送信 返答をすべて受信 sr1(pkt, filter=N, iface=N) : L3 srp1(pkt, filter=N, iface=N) : L2 パケット送信 返答を1つだけ受信 srflood(pkt, filter=N, iface=N) : L3 srpflood(pkt, filter=N, iface=N): L2 パケットを⼤大量量に送信(Flood) 返答をすべて受信(危なそう)
21.
§ パケット送信の応⽤用例例 § Pythonでデータを処理理して送信する -‐‑‒
JPEGファイルをpythonで読み込む -‐‑‒ 読み込んだファイルを分割する -‐‑‒ ICMPのデータ部に分割したデータを⼊入れたパケットを作る -‐‑‒ そのパケットを送信する -‐‑‒ https://www.cloudshark.org/captures/48a2a5e3d98e -‐‑‒ このように変なパケットも作ることが出来る § 応⽤用すればもっと変なパケットを作ることも… 2015/9/30 21
22.
2015/9/30 22
23.
2015/9/30 23
24.
§ pcapファイルを読み込む -‐‑‒ rdpcap()を使う -‐‑‒
変数packetsに、pcapファイル内のパケットが読み込まれる -‐‑‒ packets[n]でn-1番⽬目にあるパケットにアクセスできる 2015/9/30
25.
§ WiresharkとScapyでパケットを⾒見見⽐比べてみる 2015/9/30 25
26.
§ 各フィールドへのアクセス -‐‑‒ 変数packetsにパケットが読み込まれている場合 -‐‑‒
packets[n][‘layername’].fieldname -‐‑‒ 例例1: 1番⽬目のパケットの送信元IPアドレスを表⽰示 -‐‑‒ 例例2: 1番⽬目のパケットのICMPデータを表⽰示 2015/9/30 26
27.
§ 処理理を⼯工夫することで様々な処理理が可能 -‐‑‒ for⽂文を使った複数のパケットの処理理 2015/9/30
27
28.
§ これを出来ると何が嬉しい? -‐‑‒ Wiresharkで⼿手が届かない処理理が出来る §
例例. -‐‑‒ https://www.cloudshark.org/captures/20532c9a3305 -‐‑‒ ptunnelのパケット § 参考 : http://mrt-k.hateblo.jp/entry/2014/02/02/205332 -‐‑‒ TCPなら、Wiresharkで”Follow TCP Stream”を使える -‐‑‒ ICMPの場合、それに該当する機能がWiresharkにない -‐‑‒ ScapyならICMPのデータ部分を繋げることが出来る -‐‑‒ さらにそのデータを処理理出来る 2015/9/30 28
29.
§ まずWiresharkで⾒見見てみる 2015/9/30 29 28byteのヘッダ 29byte⽬目以降降は HTTPのデータ
30.
§ まずWiresharkで⾒見見てみる 2015/9/30 30 JPEGのヘッダ
31.
§ まずWiresharkで⾒見見てみる(結果) -‐‑‒ ICMPのデータ部分にptunnel使ったデータ -‐‑‒
データの最初の28byteはヘッダ、それ以外はHTTP通信 -‐‑‒ “GET /flag.jpg”からflag.jpgを取得してるパケットと推測 -‐‑‒ 複数のパケットを⾒見見ると、JPEGのデータが確認できる § Scapy使って何をやるか -‐‑‒ ICMPのデータを抽出 -‐‑‒ 28byteのヘッダを取り除いて、それ以外のデータをつなげる -‐‑‒ そのデータからJPEGデータを抽出する -‐‑‒ pythonなので、これをすべて⼀一緒にできる 2015/9/30 31
32.
2015/9/30 32
33.
§ ちなみに… § packets[n].timeでタイムスタンプにアクセスできる 2015/9/30
33
34.
2015/9/30 34
35.
§ 対話型であること -‐‑‒ ⼿手軽に使える、試せる §
Pythonであること -‐‑‒ 他の便便利利なライブラリと⼀一緒に使える -‐‑‒ Python最⾼高 § 他のソフトウェアとの連携 -‐‑‒ Wireshark -‐‑‒ nmap -‐‑‒ p0f § 他のツールよりも柔軟に処理理が出来る 2015/9/30 35
36.
§ インストールがやや⾯面倒くさい § Python使えないとつらい §
開発が⽌止まってる? § L5~L7レイヤに対応してくれたらなあ… § Pythonなのでやや遅い -‐‑‒ その辺りはCで実装されたツールが良良いかも § PcapNgに対応してない -‐‑‒ editcapで変換すれば良良いが… 2015/9/30 36
37.
§ Scapyの公式ドキュメント -‐‑‒ http://www.secdev.org/projects/scapy/doc/index.html §
Scapy Cheat Sheet -‐‑‒ http://packetlife.net/media/library/36/scapy.pdf § scapy でソケット通信 -‐‑‒ http://nigaky.hatenablog.com/entry/20110716/1310813250 § Scapyでのパケットの扱い⽅方 -‐‑‒ http://mrt- k.github.io/scapy,nw/2015/02/16/Scapy%E3%81%A7%E3%81 %AE%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E3 %81%AE%E6%89%B1%E3%81%84%E6%96%B9/ § Scapy presentation -‐‑‒ http://www.slideshare.net/reonnishimura5/scapy-presentation 2015/9/30 37
Download