scapy的使用
用法
ARP函数
ARP().display()来查看ARP函数用法。
用法:
[ ARP ]
hwtype= 0x1 硬件类型
ptype= 0x800 协议类型
hwlen= 6 硬件地址长度
plen= 4 协议地址长度
op= who-has who-has查询
hwsrc= 00:0c:29:6a 源MAC地址
psrc= 192.168.1.53 源IP地址
hwdst=00:00:00:00:00:00 目标MAC地址
pdst=0.0.0.0 向谁发送请求
IP/ICMP的方式
使用IP().display()来查看格式
[ IP ]
version=4 版本:4
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 目的地址
定制ping包
使用ping.display()来查看用法
[ ICMP ]
type= echo-request
code= 0
id= 0x0
seq=0x0
注:IP()生成ping包的源IP和目标IP,ICMP()生成ping包的类型。使用IP()和ICMP()两个函数才能生成ping包,进行探测。
思路:
1、修改IP包头的dst,也就是我们的目的地址
2、拼接上ICMP的数据包类型
3、使用sr1()进行发送数据包并接受数据包
定制TCP包
查看tcp()函数用法
TCP.display()
[ TCP ]
sport= ftp_data TCP源端口
dport= http TCP目的端口
seq= 0
ack= 0
dataofs= None 4位首部长度
reserved= 0 保留6位
flags= S 标志域,紧急标志、有意义的应答标志、推、重置连接标志、同步序列号标志、完成发送数据标志。按照顺序排列是:URG、ACK、PSH、RST、SYN、FIN
windows= 8192
chksum= None
urgptr= 0
options= [] 选项
结合IP与TCP定制SYN包
1 | sr1(IP(dst="192.168.1.1")/TCP(flag="S",dport=80),timeout=1) |



