본문 바로가기

Python

scapy - 패킷 제작

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import sys
from scapy.all import *
 
if(len(sys.argv) < 3):
    print "Usage : %s [URL] [PORT]"
    exit()
 
#packet=IP(dst=sys.argv[1])/ICMP()
packet=IP(dst=sys.argv[1])/TCP(dport=int(sys.argv[2]))/Raw("HEAD / HTTP/1.1\n\n")
 
print "[+] Send Packet INFO"
packet.show()
 
result = sr1(packet)
 
if result:
    print "[+] Recv Packet INFO"
    result.show()
cs

[+] Send Packet INFO

###[ IP ]###

  version   = 4

  ihl       = None

  tos       = 0x0

  len       = None

  id        = 1

  flags     = 

  frag      = 0

  ttl       = 64

  proto     = tcp

  chksum    = None

  src       = 192.168.0.31

  dst       = Net('www.kim82536.pe.kr')

  \options   \

###[ TCP ]###

     sport     = ftp_data

     dport     = http

     seq       = 0

     ack       = 0

     dataofs   = None

     reserved  = 0

     flags     = S

     window    = 8192

     chksum    = None

     urgptr    = 0

     options   = {}

###[ Raw ]###

        load      = 'HEAD / HTTP/1.1\n\n'

Begin emission:

......Finished to send 1 packets.

...........*

Received 18 packets, got 1 answers, remaining 0 packets

[+] Recv Packet INFO

###[ IP ]###

  version   = 4L

  ihl       = 5L

  tos       = 0x0

  len       = 44

  id        = 10175

  flags     = DF

  frag      = 0L

  ttl       = 127

  proto     = tcp

  chksum    = 0x7a3a

  src       = 221.151.187.115

  dst       = 192.168.0.31

  \options   \

###[ TCP ]###

     sport     = http

     dport     = ftp_data

     seq       = 530610023

     ack       = 1

     dataofs   = 6L

     reserved  = 0L

     flags     = SA

     window    = 8192

     chksum    = 0x86d7

     urgptr    = 0

     options   = [('MSS', 1460)]

###[ Padding ]###

        load      = '\x00\x00'



패킷의 헤더와 Raw 영역까지 자세하게 보여준다.

또한, 패킷을 직접 패킹해서 보낼 수 있어 네트워크 퍼징에 좀더 수월할 것 같다.

IPS, IDS 제작에 큰 도움이 될 것 같다.



'Python' 카테고리의 다른 글

scapy 이용 arp 패킷 보내기.  (0) 2015.05.01
네이버 실시간 검색어 파싱  (0) 2015.04.28
파이썬 게임 서버개발 - 1  (0) 2015.04.27
쓰레드를 이용한 소켓  (0) 2015.04.27
파이썬 포트 스캐너  (0) 2015.04.26