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 |