当前位置: 首页 > 工具软件 > Scapy > 使用案例 >

scapy基本使用

司英彦
2023-12-01

scapy基本使用

官方手册

官方介绍文档

python官网

scapy模块

from scapy.all import * //来自scapy.all文件,导入所有函数

python交互模式中:ls(=Ether、IP、ICMP、TCP、UDP、ARP 等等,查看可以配置的参数

1.构建包:不同层之间用/分隔(常用)

Ether = Ether(src=“源mac”,dst=“目的mac”) //以太网层 = 二层

IP = IP(src=“源ip”,dst=“目的ip或者URL”) //IP层 = 三层

XY = ICMP()、TCP()、UDP() [都可以用dport=目的端口,sport=源端口]//协议封装在IP层

ARP = ARP(hwsrc=‘二层源mac’,psrc=‘三层源IP’,hwdst=‘二层目的mac’,pdst=‘三层目的IP’) SJ = padding(load=‘x’*8) //数据位,填充 x乘8个

RandMAC() 任意MAC地址

RandIP() 任意IP地址

构建二层包:(以Ether层开头)

如:pkt=Ether/IP/ARP

构建三层包:(以IP层开头)

如:pkt=IP/XY/SJ

2.只发送

二层:sendp() //给定网卡接口

三层:send() //自动根据路由表进行路由发送

如发二层包:

​ sendp(pkt,iface=“eth0”,loop=1,inter=1 )

参数:

pkt 构建包的变量

iface=“eth0” 选择网卡为eth0

loop=1 循环发送

inter=1 每隔1秒发送

timeout=1 超时1秒就丢弃,实际时间看程序处理能力而定

3.发送并返回

二层:

​ srp() //发送包, 返回答复和没有答复的包的数量

​ srp1() //发送包, 返回只答复或者发送的包的详细信息| .参数,显示这个参数的返回数据

三层:

​ sr( ) //发送包, 返回答复和没有答复的包的数量

​ sr1( ) //发送包, 返回只答复或者发送的包的详细信息|.参数,显示这个参数的返回数据

如二层发收包:

​ srp1(pkt,timeout=1,verbose=0 )

参数:

​ pkt 构建包的变量

​ timeout=1 超时1秒就丢弃s,实际时间看程序处理能力而定

​ verbose=0 不显示详细信息

教程中的包构造方法:

srp(Ether(src=localmac,dst=‘FF:FF:FF:FF:FF:FF’)/ARP(op=1,hwsrc=localmac,hwdst=‘00:00:00:00:00:00’ , psrc=localip,pdst=ip_address),iface=ifname,verbose=False )

Scapy 常用函数说明

Ether() , IP() , TCP()

分别用于构造以太帧,IP数据报,TCP报文

raw()可以使报文以byte的形式打出来

 类似资料: