kavin

Scapy:交互式数据包处理工具

kavin 安全防护 2023-01-10 373浏览 0

Scapy是一款强大的交互式数据包处理工具、数据包生成器、网络扫描器、网络发现工具和包嗅探工具。它提供多种类别的交互式生成数据包或数据包集合、对数据包进行操作、发送数据包、包嗅探、应答和反馈匹配等等功能。Python解释器提供交互功能,所以要用到Python编程知识(例如variables、loops、和functions)。支持生成报告,且报告生成简单。

下载链接:http://down.51cto.com/data/148110

>>去网络安全工具百宝箱看看其它安全工具

scapy2.X安装

linux下比较方便,直接执行下面shell命令即可

$cd/tmp 
$wgetscapy.net 
$unzipscapy-latest.zip 
$cdscapy-2.* 
$sudopythonsetup.pyinstall 

安装完后,可以直接从shell里启动:(需要root权限)

root@D-Lab:~/python#scapy 

INFO:Can'timportpythongnuplotwrapper.Won'tbeabletoplot. 

INFO:Can'timportPyX.Won'tbeabletousepsdump()orpdfdump(). 

WARNING:NoroutefoundforIPv6destination::(nodefaultroute?) 

WelcometoScapy(2.1.0) 
>>>也可以从Python中导入: 
inpython: 
>>>fromscapyimportTCP 
Traceback(mostrecentcalllast): 
File"<stdin>",line1,in<module> 
ImportError:cannotimportnameTCP 
>>>fromscapy.allimportTCP 
WARNING:NoroutefoundforIPv6destination::(nodefaultroute?) 
>>>

注意导入形式,TCP是里面的一个对象,使用from scapy import TCP 时python报错,要使用from scapy.all import TCP.

Scapy基本使用

conf 命令查看当前配置,包括本机的网络配置,其值均为变量,可以修改,例如

conf.verb=1

ls命令

这个ls命令不是linux里的ls,是在scapy环境中的命令,其作用也是list show,ls()不带参数,可以显示所有支持的数据包对象,种类太多了截取一点点贴出来,常见的包都有,包括Ether ,ip,tcp,udp,icmp,smb等等。

>>>ls() 
ARP:ARP 
ASN1_Packet:None
BOOTP:BOOTP 
CookedLinux:cookedlinux 
DHCP:DHCPoptions 
DHCP6:DHCPv6GenericMessage) 
DHCP6OptAuth:DHCP6Option-Authentication 
DHCP6OptBCMCSDomains:DHCP6Option-BCMCSDomainNameList 
DHCP6OptBCMCSServers:DHCP6Option-BCMCSAddressesList 
DHCP6OptClientFQDN:DHCP6Option-ClientFQDN

ls(),同时还可以查看具体的包结构,我觉得通过这个软件学习TCP/IP也是很方便的,例如ls(IP)

>>>ls(IP) 
version:BitField=(4) 
ihl:BitField=(None) 
tos:XByteField=(0) 
len:ShortField=(None) 
id:ShortField=(1) 
flags:FlagsField=(0) 
frag:BitField=(0) 
ttl:ByteField=(64) 
proto:ByteEnumField=(0) 
chksum:XShortField=(None) 
src:Emph=(None) 
dst:Emph=('127.0.0.1') 
options:PacketListField=([]) 
>>>

可以看到IP包头的结构,很清晰,“=”后面的是默认属性,在对象被建立时或者建立后我们都可以修改。

>>>myip=IP(dst='www.d-up.org',src='192.168.73.1') 
>>>ls(myip) 
version:BitField=4(4) 
ihl:BitField=None(None) 
tos:XByteField=0(0) 
len:ShortField=None(None) 
id:ShortField=1(1) 
flags:FlagsField=0(0) 
frag:BitField=0(0) 
ttl:ByteField=64(64) 
proto:ByteEnumField=0(0) 
chksum:XShortField=None(None) 
src:Emph='192.168.73.1'(None) 
dst:Emph=Net('www.d-up.org')('127.0.0.1') 
options:PacketListField=[]([]) 
>>>

继续浏览有关 安全 的文章
发表评论