目录
scapy是一个可以让用户发送,监听和解析并伪装网络报文的python程序,这些功能可以用于制作侦测,扫描和攻击网络的工具
1,scapy定制ARP协议
scapy进入,exit()退出
ARP().display()
###[ ARP ]###
hwtype= 0x1 硬件类型
ptype= IPv4 协议类型
hwlen= 6 硬件地址长度(MAC)
plen= 4 协议地址长度(IP)
op= who-has who-has查询
hwsrc= 00:0c:29:e4:75:bf 源MAC地址
psrc= 192.168.242.128 源IP地址
hwdst= 00:00:00:00:00:00 目标硬件地址
pdst= 0.0.0.0 向谁发送查询请求
例:定义向192.168.242.1发送arp请求的数据包
sr1函数作用:sr1函数包含了发送数据包和接收数据包的功能
sr1(ARP(pdst="192.168.242.1"))
Begin emission:
Finished sending 1 packets.
*
Received 1 packets, got 1 answers, remaining 0 packets
<ARP hwtype=0x1 ptype=IPv4 hwlen=6 plen=4 op=is-at hwsrc=00:50:56:c0:00:08 psrc=192.168.242.1 hwdst=00:0c:29:e4:75:bf pdst=192.168.242.128 |<Padding load='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' |>>
2,scapy定制PING包
IP().display()
###[ IP ]###
version= 4 版本:IPV4
ihl= None 首部长度
tos= 0x0 服务
len= None 总长度
id= 1 标识
flags=
frag= 0 标志
ttl= 64 生存时间
proto= hopopt 传输控制协议 IPV6逐跳选项
chksum= None 首部校验和
src= 127.0.0.1 源地址
dst= 127.0.0.1 目的地址
ICMP().display()
###[ ICMP ]###
type= echo-request 类型,标识ICMP报文的类型
code= 0 编码
chksum= None 校验和
id= 0x0 标识
seq= 0x0
注:IP()生成ping包的源IP和目标IP,ICMP()生成ping包的类型。使用IP()和ICMP()两个函数,可以生成ping包,进行探测。
sr1(IP(dst="192.168.242.1")/ICMP(),timeout=1)
3,scapy定制TCP协议SYN请求
TCP().display()
###[ TCP ]###
sport= ftp_data TCP源端口
dport= http TCP目的端口
seq= 0 32位序号
ack= 0 32位确认序号
dataofs= None 4位首部长度
reserved= 0 保留0位
flags= S URG,ACK,PSH,RST,SYN,FIN
window= 8192 窗口大小
chksum= None 16位校验和
urgptr= 0 优先指针
options= [] 选项
sr1(IP(dst="192.168.242.2")/TCP(flags="S",dport=80),timeout=5)
flags="S"表示SYN数据包
dport=80表示目标端口80
能收到回应,表示端口开放。这种基于TCP的半连接扫描,更隐秘。