任务内容
1、 学习Scapy的基本功能和优势,做好充足的理论学习准备。
2、 学习使用Scapy的基本命令,主要包括ls()、lsc()、help()等。
3、 学习使用Scapy定义数据包、发送接收数据包,在实验过程中对比几种不同方法之间的异同点。
实验原理
一、 概述
Scapy是一个基于Python编写的交互式数据包处理程序,使用Python解释器作为命令面板。可以用来发送、嗅探、解析和伪造网络数据包,常常被用于网络攻击和测试。Scapy可以实现扫描、路由跟踪、探测、单元测试、攻击和发现网络等传统功能,也可以代替hping、arpspoof、arp-sk、arping、p0f,实现了部分Namp、Tcpdump和tshark的功能。它能够伪造或者解码大量的网络协议数据包,能够发送、捕捉、匹配请求和回复包等等。它可以很容易地处理一些典型操作,比如端口扫描,tracerouting,探测,单元测试,攻击或网络发现(可替代hping,NMAP,arpspoof,ARP-SK,arping,tcpdump,tethereal,P0F等)。最重要的他还有很多更优秀的特性——发送无效数据帧、注入修改的802.11数据帧、在WEP上解码加密通道(VOIP)、ARP缓存攻击(VLAN)等,这也是其他工具无法处理完成的。
Scapy有其他网络工具无法匹敌的优势,在大多数工具无法完成的任务中也有出色表现,比如发送无效帧、添加自定义的802.11帧、多技术结合等。其实,Scapy的理念非常简单,主要负责定义、发送和接收报文。用户利用Scapy定义一系列报文,接着发送这些报文,然后会收到回应,Scapy将收到的回应与请求匹配,返回到存放报文对(请求,回应)的列表和没有匹配报文的列表。
Scapy不仅可以进行交互式数据包处理,还可以作为Python模块在Python程序中使用。需要注意的是,无论是交互式数据处理还是在Python代码中使用,都需要基于root权限。
二、 安装使用
Scapy既然是第三方库,系统上默认是没有安装的。在Ubuntu下,我们可以直接使用命令sudo apt-get install scapy进行安装,安装完成以后,只需要在终端下执行sudo scapy就可以进入Scapy的命令行模式。
Scapy常用功能如下:
1、 conf:查看配置信息
>>> conf
ASN1_default_codec = <ASN1Codec BER[1]>
AS_resolver = <scapy.as_resolvers.AS_resolver_multi instance at 0x13c1dd0>
( 此处省略 N 行 )
verb = 2
version = '2.3.2'
warning_threshold = 5
wepkey = ''
2、 lsc():查看支持的指令集
>>> lsc()
arpcachepoison : Poison target's cache with (your MAC,victim's IP) couple
arp