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,860 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
Pythonでパケット解析
by
euphoricwavism
PDF
PlaySQLAlchemy: SQLAlchemy入門
by
泰 増田
PDF
こわくない Git
by
Kota Saito
PDF
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
by
Masahito Zembutsu
PDF
BGP Unnumbered で遊んでみた
by
akira6592
PDF
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
PPTX
Rootlessコンテナ
by
Akihiro Suda
Pythonでパケット解析
by
euphoricwavism
PlaySQLAlchemy: SQLAlchemy入門
by
泰 増田
こわくない Git
by
Kota Saito
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
コンテナの作り方「Dockerは裏方で何をしているのか?」
by
Masahito Zembutsu
BGP Unnumbered で遊んでみた
by
akira6592
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
Rootlessコンテナ
by
Akihiro Suda
What's hot
PPTX
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
by
Shota Shinogi
PDF
暗号技術の実装と数学
by
MITSUNARI Shigeo
PDF
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
by
Preferred Networks
PDF
CTF for ビギナーズ ネットワーク講習資料
by
SECCON Beginners
PDF
HTTP/2 入門
by
Yahoo!デベロッパーネットワーク
PDF
TLS, HTTP/2演習
by
shigeki_ohtsu
PPTX
DockerコンテナでGitを使う
by
Kazuhiro Suga
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
PDF
Dockerからcontainerdへの移行
by
Kohei Tokunaga
PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
by
NTT DATA Technology & Innovation
PDF
DockerとPodmanの比較
by
Akihiro Suda
PDF
Docker Compose 徹底解説
by
Masahito Zembutsu
PPT
Glibc malloc internal
by
Motohiro KOSAKI
PDF
WebSocket / WebRTCの技術紹介
by
Yasuhiro Mawarimichi
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
by
Toru Makabe
PDF
CDNの仕組み(JANOG36)
by
J-Stream Inc.
PDF
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
PDF
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PPTX
LUT-Network その後の話(2022/05/07)
by
ryuz88
PDF
NTT DATA と PostgreSQL が挑んだ総力戦
by
NTT DATA OSS Professional Services
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
by
Shota Shinogi
暗号技術の実装と数学
by
MITSUNARI Shigeo
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
by
Preferred Networks
CTF for ビギナーズ ネットワーク講習資料
by
SECCON Beginners
HTTP/2 入門
by
Yahoo!デベロッパーネットワーク
TLS, HTTP/2演習
by
shigeki_ohtsu
DockerコンテナでGitを使う
by
Kazuhiro Suga
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
Dockerからcontainerdへの移行
by
Kohei Tokunaga
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
by
NTT DATA Technology & Innovation
DockerとPodmanの比較
by
Akihiro Suda
Docker Compose 徹底解説
by
Masahito Zembutsu
Glibc malloc internal
by
Motohiro KOSAKI
WebSocket / WebRTCの技術紹介
by
Yasuhiro Mawarimichi
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
by
Toru Makabe
CDNの仕組み(JANOG36)
by
J-Stream Inc.
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
LUT-Network その後の話(2022/05/07)
by
ryuz88
NTT DATA と PostgreSQL が挑んだ総力戦
by
NTT DATA OSS Professional Services
Similar to Scapyで作る・解析するパケット
PPTX
Wiresharkの解析プラグインを作る ssmjp 201409
by
稔 小林
ODP
tcpdumpとtcpreplayとtcprewriteと他。
by
(^-^) togakushi
PDF
Ethernetの受信処理
by
Takuya ASADA
PDF
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
by
Panda Yamaki
PDF
about Tcpreplay
by
@ otsuka752
PDF
Wiresharkで検出できないチャットプログラム
by
Shinichi Hirauchi
PDF
Windowsのパケットモニタ作成
by
Shinichi Hirauchi
PDF
libpgenでパケット操作
by
slankdev
PDF
import dpkt したよ #ssmjp 2014/02/28
by
th0x0472
PDF
Scapy presentation Remake(訂正)
by
ashigirl ZareGoto
PDF
Scapy presentation
by
ashigirl ZareGoto
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
Wiresharkの解析プラグインを作る ssmjp 201409
by
稔 小林
tcpdumpとtcpreplayとtcprewriteと他。
by
(^-^) togakushi
Ethernetの受信処理
by
Takuya ASADA
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
by
Panda Yamaki
about Tcpreplay
by
@ otsuka752
Wiresharkで検出できないチャットプログラム
by
Shinichi Hirauchi
Windowsのパケットモニタ作成
by
Shinichi Hirauchi
libpgenでパケット操作
by
slankdev
import dpkt したよ #ssmjp 2014/02/28
by
th0x0472
Scapy presentation Remake(訂正)
by
ashigirl ZareGoto
Scapy presentation
by
ashigirl ZareGoto
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
パケットで遊ぼう! #ssmjp 2015/04
by
Takaaki Hoyo
PDF
低対話型サーバハニーポットの運用結果及び考察
by
Takaaki Hoyo
PDF
Elastic StackでWebサーバのログ解析を始めた件について
by
Takaaki Hoyo
PDF
○○はいいぞ
by
Takaaki Hoyo
hpingで作るパケット
by
Takaaki Hoyo
CpawCTF 勉強会 Network
by
Takaaki Hoyo
パケットで遊ぼう! #ssmjp 2015/04
by
Takaaki Hoyo
低対話型サーバハニーポットの運用結果及び考察
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