PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : سوال در مورد لایه های شبکه



r3d.w0rm
April 27th, 2010, 22:49
سلام
من دارم کار با scapy یاد میگیرم .
scapy یک ابزاری که تحت python کار میکنه میشه گفت یه ماژول پایتونه که باش میشه پاکت ساخت و فرستاد توی شبکه .
من توی مثالهای خودش به این مورد رسیدم :

>>> str(IP())
'E\x00\x00\x14\x00\x01\x00\x00@\x00|\xe7\x7f\x00\x 00\x01\x7f\x00\x00\x01'
>>> IP(_)
<IP version=4L ihl=5L tos=0x0 len=20 id=1 flags= frag=0L ttl=64 proto=IP
chksum=0x7ce7 src=127.0.0.1 dst=127.0.0.1 |>
>>> a=Ether()/IP(dst="www.slashdot.org")/TCP()/"GET /index.html HTTP/1.0 \n\n"
>>> hexdump(a)
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 /index
2E 68 74 6D 6C 20 48 54 54 50 2F 31 2E 30 20 0A .html HTTP/1.0 .
0A .
>>> b=str(a)
>>> b
'\x00\x02\x157\xa2D\x00\xae\xf3R\xaa\xd1\x08\x00E\ x00\x00C\x00\x01\x00\x00@\x06x<\xc0
\xa8\x05\x15B#\xfa\x97\x00\x14\x00P\x00\x00\x00\x0 0\x00\x00\x00\x00P\x02 \x00
\xbb9\x00\x00GET /index.html HTTP/1.0 \n\n'
>>> c=Ether(b)
>>> c
<Ether dst=00:02:15:37:a2:44 src=00:ae:f3:52:aa:d1 type=0x800 |<IP version=4L
ihl=5L tos=0x0 len=67 id=1 flags= frag=0L ttl=64 proto=TCP chksum=0x783c
src=192.168.5.21 dst=66.35.250.151 options='' |<TCP sport=20 dport=80 seq=0L
ack=0L dataofs=5L reserved=0L flags=S window=8192 chksum=0xbb39 urgptr=0
options=[] |<Raw load='GET /index.html HTTP/1.0 \n\n' |>>>>

همونطور که میبینید یه پاک میسازه و به پورت 80 میفرسته (پورت پیشفرض این برنامه 80 )
من با nc یه پورت بایند کردم و بعد مراحل بالا رو طی کردم و پورت خودمو جایگزین کردم
ولی هیچ نتیجه هی تو nc نگرفتم :(
توی سایتش اینرو هم پیدا کردم :


sr : Send and receive packets at layer 3
sr1 : Send packets at layer 3 and return only the first answer
srp : Send and receive packets at layer 2
srp1 : Send and receive packets at layer 2 and return only the first answer
send : Send packets at layer 3
sendp : Send packets at layer 2


بعد برای ارسال پاکت از تمام این توبع استفده کردم ولی بازم نتیجه نگرفتم .
نکته اینه که تو خود scapy میگه پاکت با موفقیت ارسال شد .
حالا میخواستم ببینم فرق اینکه پاکتو رو لایه 2 یا 3 میفرسته چیه ؟
و اینکه رو چه لایه ای باید ارسال بشه تا من تو netcat جوابشو ببینم یا بتونم یه درخواست GET به یه پورت 80 بدمو result بگیرم
اینم لینک که آموزش scapy توشه و مطالبو ازش گرفتم :
http://www.secdev.org/projects/scapy/doc/usage.html
ممنون .