Scapy: تفاوت میان نسخهها
خط ۷: | خط ۷: | ||
== شروع کار با اسکپی == | == شروع کار با اسکپی == | ||
برای مشاهده لیست دستورات اسکپی در حالت تعاملی دستور زیر را وارد کنید: | |||
<div dir="ltr"> | |||
lsc() | |||
</div> | |||
لیست این دستورات بصورت زیر است: | |||
<div dir="ltr"> | |||
<nowiki> | |||
>>> lsc() | |||
1 | |||
2 | |||
3 | |||
4 | |||
5 | |||
6 | |||
7 | |||
8 | |||
9 | |||
10 | |||
11 | |||
12 | |||
13 | |||
14 | |||
15 | |||
16 | |||
17 | |||
18 | |||
19 | |||
20 | |||
21 | |||
22 | |||
23 | |||
24 | |||
>>> lsc() | |||
arping : Send ARP who-has requests to determine which hosts are up | |||
bind_layers : Bind 2 layers on some specific fields' values | |||
fuzz : Transform a layer into a fuzzy layer by replacing some default values by random objects | |||
ls : List available layers, or infos on a given layer | |||
promiscping : Send ARP who-has requests to determine which hosts are in promiscuous mode | |||
rdpcap : Read a pcap file and return a packet list | |||
send : Send packets at layer 3 | |||
sendp : Send packets at layer 2 | |||
sniff : Sniff packets | |||
split_layers : Split 2 layers previously bound | |||
sr : Send and receive packets at layer 3 | |||
sr1 : Send packets at layer 3 and return only the first answer | |||
srflood : Flood and receive packets at layer 3 | |||
srloop : Send a packet at layer 3 in loop and print the answer each time | |||
srp : Send and receive packets at layer 2 | |||
srp1 : Send and receive packets at layer 2 and return only the first answer | |||
srpflood : Flood and receive packets at layer 2 | |||
srploop : Send a packet at layer 2 in loop and print the answer each time | |||
traceroute : Instant TCP traceroute | |||
tshark : Sniff packets and print them calling pkt.show(), a bit like text wireshark | |||
wireshark : Run wireshark on a list of packets | |||
wrpcap : Write a list of packets to a pcap file | |||
</nowiki> | |||
</div> | |||
برای شروع، جهت دریافت یک نمونه بسته از روی کارت شبکه دستور زیر را وارد کنید: | برای شروع، جهت دریافت یک نمونه بسته از روی کارت شبکه دستور زیر را وارد کنید: |
نسخهٔ ۲۷ نوامبر ۲۰۱۴، ساعت ۰۶:۲۴
اسکپی (Scapy) ابزاری متن باز و تحت زبان برنامه نویسی پایتون است که به کمک آن میتوان فعالیت هایی را در زمینه کار با بسته (Packet) های موجود در شبکه های کامپیوتری نظیر ایجاد بسته ، مشاهده و ثبت بسته های شبکه، تغییر و ارسال بسته ها در شبکه را انجام داد.
ساختار یک بسته
در شکل زیر ساختار لایه بندی یک بسته در شبکه نشان داده شده است.
شروع کار با اسکپی
برای مشاهده لیست دستورات اسکپی در حالت تعاملی دستور زیر را وارد کنید:
lsc()
لیست این دستورات بصورت زیر است:
>>> lsc() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 >>> lsc() arping : Send ARP who-has requests to determine which hosts are up bind_layers : Bind 2 layers on some specific fields' values fuzz : Transform a layer into a fuzzy layer by replacing some default values by random objects ls : List available layers, or infos on a given layer promiscping : Send ARP who-has requests to determine which hosts are in promiscuous mode rdpcap : Read a pcap file and return a packet list send : Send packets at layer 3 sendp : Send packets at layer 2 sniff : Sniff packets split_layers : Split 2 layers previously bound sr : Send and receive packets at layer 3 sr1 : Send packets at layer 3 and return only the first answer srflood : Flood and receive packets at layer 3 srloop : Send a packet at layer 3 in loop and print the answer each time srp : Send and receive packets at layer 2 srp1 : Send and receive packets at layer 2 and return only the first answer srpflood : Flood and receive packets at layer 2 srploop : Send a packet at layer 2 in loop and print the answer each time traceroute : Instant TCP traceroute tshark : Sniff packets and print them calling pkt.show(), a bit like text wireshark wireshark : Run wireshark on a list of packets wrpcap : Write a list of packets to a pcap file
برای شروع، جهت دریافت یک نمونه بسته از روی کارت شبکه دستور زیر را وارد کنید:
pkts = sniff(count=100)
برای مشاهده پیش نمایشی از بسته های دریافت شده، دستور زیر را وارد کنید:
pkts.show()
یا
print pkts
یا
hexdump(pkts)
برای مشاهده آمار بسته های دریافت شده از نظر پروتکلی دستور زیر را وارد کنید:
pkts.summary
یا
pkts
کار با یک بسته
برای مشاهده یک بسته، میتوانید اندیس یا شماره بسته مورد نظر را بصورت زیر وارد کنید:
pkts[10]
یا نمایش بصورت هگز
hexdump(pkts[10])
یا نمایش بصورت اسکی
print pkts[10]
برای مشاهده اطلاعات خلاصه ای درباره یک بسته، دستور زیر را وارد کنید:
pkts[10].summary()
برای مشاهده ساختار کامل یک بسته بصورت سلسله مراتبی دستور زیر را وارد کنید:
pkts[10].show()