Movatterモバイル変換


[0]ホーム

URL:


PDF, PPTX1,991 views

Scapy presentation

Embed presentation

Download as PDF, PPTX
How to Use ScapyAshiGirl96( ๑・ิ‫ิ・ټ‬๑) from ZareGoto
Self - IntroductionHandleName:AshiGirl96SEX:男。OS: Mac, BT5Work:高専一年生。Team: ZareGotoTwitter: @ashigirl96Language: Python/AsmInterest:Security/NetworkHomePage:reonreon3reon.hatenablog.com
What is Scapy??Scapyはツール。(Pythonで作れたCUI自分の思いのままにパケットが作れちゃう!通信の仕組みがわかるかも??.pcapが見れちゃう!←ネットワークが見れちゃう  快適な暮らしをあなたの生活に!
プロトコルの基本知ってますよね?
http://blog-imgs-45-origin.fc2.com/c/h/i/chitekizaisan/20111003-2.jpg
通信プロトコルとは?  ネットワークを介してコンピュータ同士が通信を行う上で、相互に決められた約束事の  集合。通信手順、通信規約などと呼ばれることもある。  英語しか使えない人と日本語しか使えない人では会話ができないように、対応している  プロトコルが異なると通信することができない。人間同士が意思疎通を行う場合に、  どの言語を使うか(日本語か英語か)、どんな媒体を使って伝達するか(電話か手紙か)、  というように2つの階層に分けて考えることができるが、コンピュータ通信においても、  プロトコルの役割を複数の階層に分けて考える。  階層化することによって、上位のプロトコル(を実装したソフトウェア)は自分のすぐ下の  プロトコルの使い方(インターフェース)さえ知っていれば、それより下で何が起きているかを  まったく気にすることなく通信を行うことができる。電話機の操作法さえ知っていれば、  電話会社の交換局で何が起きているか知らなくても電話が使えるのと同じである。  現在インターネットで標準となっているIPは第3層(ネットワーク層)の、TCPやUDPは第4層  (トランスポート層)のプロトコルであり、HTTPやFTP、SMTP、POPなどは第5層(セッション層)  以上のプロトコルである。                    http://e-words.jp/w/E38397E383ADE38388E382B3E383AB.html 参照
Scapyの話に戻ります。
How to INSTALL!!!さすがに Python はインストールしてるって前提で行きます $   cd /tmp $   wget scapy.net $   unzip scapy-latest.zip $   cd scapy-2.*                                             For UNIX like $   sudo python setup.py install                                                              For Windows http://www.secdev.org/projects/scapy/doc/installation.htmlWindows知らない(;*´Д`)。
STARTING USAGE!!!!                                “On Python”$ sudo scapyWelcome to Scapy (2.0.1-dev)>>>Pythonをベースとしてるインタプリタ➡ファイルの場合                               python ***.pyfrom scapy.all import *
AT FIRST STEPS!!!!   Let’s building some packets!!                     $ sudo scapy                     1 >>> ping  = IP(dst='192.168.1.13')/ICMP()    1.pingとは         2 >>> ping.show()                                                                      2.IPプロトコル:   ネットワークが           3 ###[ IP ]###                     4   version= 4                                    データグラムや  疎通しているか            5   ihl= None                                       パケットを  確認するための            6   tos= 0x0                     7   len= None                                     中断するのに     コマンド            8   id= 1                                         使われる主要 (この場合パケット)          9   flags=                                      な通信プロトコル                    10   frag= 0                    11   ttl= 64                                     3.ICMPプロトコル:ping は,ICMPのechoコ   12   proto= icmp             4.作ったパケットの        IPのデータグラム処理に マンドを利用して、          13   chksum= 0x0                                                      中身を              おける誤りの                    14   src= 172.16.247.139  指定した相手先           15   dst= ***.***.**.***      見るための関数             通知や通信に    (IPアドレス)に       16   options= ''              Packet.show()        関する情報の『全く一緒の文字列           17 ###[ ICMP ]###              そしてその下が              通知などの                    18   type= echo-request 返して!』という感じ         19   code= 0                                                  パケットの構造に               プロトコル  で疎通をはかる。          20   chksum= 0x0                 なっている                    21   id= 0x0                    22   seq= 0x0
Other           5.このように 『/』でプロトコルを区切ることで、2つのレイヤを構成することが出来る           6.IPの引数で src=”送信元” dst=”送信先”               TCPは主にport番号や FLAGを指定することが出来る。>>> ex=Ether()/IP(dst=”reon3.rosx.net”)/TCP()/"GET /profile3.html HTTP/1.0 nn">>> hexdump(ex)00 02 15 37 A2 44 00 AE F3 52 AA D1 08 00 45 00 ...7.D...R....E.00 43 00 01 00 00 40 06 78 3C C0 A8 05 15 42 23 .C....@.x<....B#FA 97 00 14 00 50 00 00 00 00 00 00 00 00 50 02 .....P........P.20 00 BB 39 00 00 47 45 54 20 2F 69 6E 64 65 78  ..9..GET /index2E 68 74 6D 6C 20 48 54 54 50 2F 31 2E 30 20 0A .html HTTP/1.0 .0A  7. hexdump(引数)で パケットexを16進数で見る事が出来る。  8.『/』で文字列も一緒に書くと、一緒に入ることが出来る。
After that      9.パケットを機械語にすることができる >>>b = str(a) >>> b 'x00PVxe3xd5<x00x0c)C>xfdx08x00Ex00x00Fx00x01x00x00@ x06x80x89xacx10xf7x8bx1b`;,x00x14x00P x00x00x00x00x00x00x00x00Px02 x00Kxf1x00x00GET /profile3.html HTTP/ 1.0 nn'      10.詳細に知ることも出来る。 >>> c = Ether(b)>>> c<Ether dst=00:50:56:e3:d5:3c src=00:0c:29:43:3e:fd type=0x800 |<IPversion=4L ihl=5L tos=0x0 len=70 id=1 flags= frag=0L ttl=64 proto=tcpchksum=0x8089 src=172.16.247.139 dst=27.96.59.44 options='' |<TCPsport=ftp_data dport=www seq=0 ack=0 dataofs=5L reserved=0L flags=Swindow=8192 chksum=0x4bf1 urgptr=0 options=[] |<Raw load='GET / profile3.html HTTP/1.0 nn' |>>>>
READING .PCAP FILE!!!!1 from scapy.all import *23 a = rdpcap("/root/Desktop/q9.pcap")4 a[45].pdfdump(layer_shift=1)5 a[45].psdump("/root/Desktop/q9.eps",layer_shift=1)           このように.pcapのファイルが開けました。           そして右の図のように.pcapの中身を           具体的(GUI)に見るようにすることも           できます。他にも,           a.show2()           などの関数で、パケットの中身をCUIで           わかりやすく見ることが可能です。           他にも           a.summary()           a.sprintf           a.command()           などなどたくさんあります。
LET’S SEND PACKETS!!!!   11.パケットを送る関数は send() と sendp() です    send() : レイヤ3に向かってパケットを送ります。    sendp() : レイヤ2に向かってパケットを送ります。    send()                                sendp()>>> send(IP(dst="1.2.3.4")/ICMP())   >>> sendp( Ether() / IP ( dst= "1.2.3.4" , ttl = (1,4)), iface ="eth1").                                    ....Sent 1 packets.                      Sent 4 packets.
パケットを送ったらその答えが返ってくる関数sr(),srp()sr() : レイヤ3に向かってパケットを送り、レスポンスが変数に入るsrp() : レイヤ2に向かってパケットを送り、レスポンスが変数に入る        sr() >>> ping = IP(dst="192.168.1.6")/ICMP()/"PLEASE RESPONSE" >>> a = sr1(ping)                                                                          同じ文字列が Begin emission:                                                         返ってきてるので、 .*Finished to send 1 packets.                                            成功したことが                                                                         わかる(*‘ω‘ *) Received 2 packets, got 1 answers, remaining 0 packets >>> hexdump(a) 0000 45 00 00 2B 0A 58 00 00 80 01 CB 2F C0 A8 01 06 E..+.X...../.... 0010 AC 10 F7 8B 00 00 CD E4 00 00 00 00 50 4C 45 41 ............PLEA 0020 53 45 20 52 45 53 50 4F 4E 53 45 00 00 00         SE RESPONSE... >>>
他に何が出来るか?
TCP tracerouteres,unans= traceroute([‘目的地’],ttl=,dport=どのポートか)のように指定すると出来ます。成功した後にres.graph() と指定すると、図のように具体的に見れる。
Use Wireshark下の図のように パケットを作り、 wireshark(パケット)でwiresharkが開いて、パケットを見ることが出来ます。
例えば、PortScanって知ってますか?
SYNスキャンとは?  サーバにログを残さずにポートスキャン出来る『ステルススキャンの一種』です。  普通にポートスキャンをすると、ログが残ってしまうため、それを回避するため、  通信の手順の最後にキャンセルを意味するパケットを送ることにより手順を  中断させ、ログを残さないようにする。一般的(3ウェアハンドシェイク)                                      SYN スキャン                                                                      RST                                                                                                                 http://e-words.jp/w/E38397E383ADE38388E382B3E383AB.html ,   http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Tcp_normal.svg 参照
For Example:  >>> sr(IP(dst="192.168.1.1")/  TCP(sport=RandShort(),dport=[22,80,443],flags="S"))Explanation:  ターゲットを”192.168.1.1”として、  送信元のポートはランダムなものにして、  送信先のポートは 22(SSH)、80(HTTP)か443(HTTPS)  にして、FLAGは”S”(SYNフラグ)を送る。  どのような反応になるか見ましょう。
sprintf()関数を使って、レスポンスのフラグがどのようになっているか見ると、 www(HTTP)と HTTPSはポートが閉まっていること(RA)がわかります。 SSHはどうやら、開いているようなので後で閉じようと思います←>>> ans,unans=_>>> ans.summary(lambda(s,r): r.sprintf("%TCP.sport% -> %TCP.dport% : %TCP.flags%"))ssh -> 12936 : SAwww -> 12044 : RAhttps -> 13527 : RA>>>root@bt:~$ nmap -p 22 80 443 192.168.1.1Starting Nmap 6.25 ( http://nmap.org ) at 2013-02-26 10:33 ESTInvalid target host specification: 80Invalid target host specification: 443Nmap scan report for 192.168.1.1Host is up (0.00044s latency).PORT STATE SERVICE22/tcp open sshNmap done: 1 IP address (1 host up) scanned in 0.06 seconds 念のために、本当に合ってるか nmapで調べた所、 22/tcp open ssh とsshだけポートが開いてることが確認出来ました。
最後に…。
僕が好きな分野。
ある、穏やかな暮らしをしている OS(Ubuntu)がいました。
Scapy(を使ってる主)が悪さを企んでいます…。 このパケットを送ったら(多分)大変なことに!!    ←こいつ、ネットワークを見るための者。
PoChitt ona!! ←こいつ大変そう。
in 1 min...
1分で47.2MBなので、23分で1038.4MB(約1.038GB)となり、354時間後で1002528MG(約1.003TB)となる特に重くしたパケットで無くてもこれぐらいになる…。
良い子は真似しない  DENE!!
Summary!!!!パケットとネットワークについて知らないと ほとんど何も出来ない。パケットが死ぬほど簡単に出来る。パケットをGUIとしてみれるので見やすい!port,flag,送信元先,が超簡単に設定出来る。Scapyの可能性が無限大に…。
みんなもパケット系男子に なろう!!
ご清聴ありがとうございました。

Recommended

PDF
Scapy presentation Remake(訂正)
ODP
tcpdumpとtcpreplayとtcprewriteと他。
PDF
Scapyで作る・解析するパケット
PDF
CTF for ビギナーズ ネットワーク講習資料
PDF
about Tcpreplay
PDF
Pythonでパケット解析
PDF
import dpkt したよ #ssmjp 2014/02/28
PDF
hpingで作るパケット
PDF
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
PPTX
コンテナのネットワークインターフェース その実装手法とその応用について
PPTX
Wiresharkの解析プラグインを作る ssmjp 201409
PDF
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
PDF
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
PDF
OpenFlowで覚えるネットワーク
PDF
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
PDF
Hokkaido.cap#3 ケーススタディ(基礎編)
PDF
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
PDF
謎の言語Forthが謎なので実装した
 
PDF
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
 
PDF
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
PDF
CpawCTF 勉強会 Network
PDF
DPDKを用いたネットワークスタック,高性能通信基盤開発
PDF
続・SECDマシン
 
PPTX
nftables: the Next Generation Firewall in Linux
PDF
Rpn and forth 超入門
PDF
Hokkaido.cap#10 実践パケット解析まとめ
PDF
Lagopus どれだけ速いのか
PDF
Richard high performance fuzzing ja
PPT
20060520.tcp
PDF
法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用

More Related Content

PDF
Scapy presentation Remake(訂正)
ODP
tcpdumpとtcpreplayとtcprewriteと他。
PDF
Scapyで作る・解析するパケット
PDF
CTF for ビギナーズ ネットワーク講習資料
PDF
about Tcpreplay
PDF
Pythonでパケット解析
PDF
import dpkt したよ #ssmjp 2014/02/28
PDF
hpingで作るパケット
Scapy presentation Remake(訂正)
tcpdumpとtcpreplayとtcprewriteと他。
Scapyで作る・解析するパケット
CTF for ビギナーズ ネットワーク講習資料
about Tcpreplay
Pythonでパケット解析
import dpkt したよ #ssmjp 2014/02/28
hpingで作るパケット

What's hot

PDF
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
PPTX
コンテナのネットワークインターフェース その実装手法とその応用について
PPTX
Wiresharkの解析プラグインを作る ssmjp 201409
PDF
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
PDF
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
PDF
OpenFlowで覚えるネットワーク
PDF
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
PDF
Hokkaido.cap#3 ケーススタディ(基礎編)
PDF
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
PDF
謎の言語Forthが謎なので実装した
 
PDF
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
 
PDF
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
PDF
CpawCTF 勉強会 Network
PDF
DPDKを用いたネットワークスタック,高性能通信基盤開発
PDF
続・SECDマシン
 
PPTX
nftables: the Next Generation Firewall in Linux
PDF
Rpn and forth 超入門
PDF
Hokkaido.cap#10 実践パケット解析まとめ
PDF
Lagopus どれだけ速いのか
PDF
Richard high performance fuzzing ja
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
コンテナのネットワークインターフェース その実装手法とその応用について
Wiresharkの解析プラグインを作る ssmjp 201409
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
OpenFlowで覚えるネットワーク
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#3 ケーススタディ(基礎編)
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
謎の言語Forthが謎なので実装した
 
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
 
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
CpawCTF 勉強会 Network
DPDKを用いたネットワークスタック,高性能通信基盤開発
続・SECDマシン
 
nftables: the Next Generation Firewall in Linux
Rpn and forth 超入門
Hokkaido.cap#10 実践パケット解析まとめ
Lagopus どれだけ速いのか
Richard high performance fuzzing ja

Similar to Scapy presentation

PPT
20060520.tcp
PDF
法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用
PDF
Windowsのパケットモニタ作成
PDF
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
PDF
第7回勉強会 ネットワークの基礎
PDF
10080分でPythonからIP Messeneger
PDF
10分で作るクラスライブラリ
PPTX
Mmo game networking_1
PDF
Wiresharkで検出できないチャットプログラム
PPTX
COD2013「ネットワーク パケット解析・基本の基本」
PDF
TwitVisor
PDF
Trema day 1
 
PDF
法政大学情報科学部 2012年度コンピュータネットワーク-第8回授業-Web公開用
PDF
#pakeana 14
PDF
how to GET GET
PDF
Security.gs fes 2010 in tokyo
PPT
IPv6アドレスでお絵かき
PDF
Echo server implementation for Python
PPTX
iPhone 5 の Wi-Fi ちゃんと動いてましたか? #yidev
PDF
Webサーバのかくれんぼ
20060520.tcp
法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用
Windowsのパケットモニタ作成
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
第7回勉強会 ネットワークの基礎
10080分でPythonからIP Messeneger
10分で作るクラスライブラリ
Mmo game networking_1
Wiresharkで検出できないチャットプログラム
COD2013「ネットワーク パケット解析・基本の基本」
TwitVisor
Trema day 1
 
法政大学情報科学部 2012年度コンピュータネットワーク-第8回授業-Web公開用
#pakeana 14
how to GET GET
Security.gs fes 2010 in tokyo
IPv6アドレスでお絵かき
Echo server implementation for Python
iPhone 5 の Wi-Fi ちゃんと動いてましたか? #yidev
Webサーバのかくれんぼ

Scapy presentation


[8]ページ先頭

©2009-2025 Movatter.jp