scapy框架安装和入门
2016-11-16 13:34
225 查看
1. 描述
使用scapy进行以太网帧的注入,相对于RAW_SOCKET还是比较简单的。在讲述packet注入之前,先了解一下scapy伪造以太网帧的相关知识。下图为以太网帧格式和scapy对应的封装包格式。2. 示例
2.1 使用scapy构造IP数据包
进入scapy环境,输入以下代码:>>>
>>> pkt = IP()/ICMP()/”hello”
>>>
>>>
>>> pkt.show()
###[ IP ]###
version= 4
ihl= None
tos= 0x0
len= None
id= 1
flags=
frag= 0
ttl= 64
proto= icmp
chksum= None
src= 127.0.0.1
dst= 127.0.0.1
\options\
###[ ICMP ]###
type= echo-request
code= 0
chksum= None
id= 0x0
seq= 0x0
###[ Raw ]###
load= ‘hello’
上面代码的意思是,构造一个pkt的包,在IP层中封装了ICMP包,负载的数据位“hello”。通过
pkt.show()函数显示包的详细信息。
2.2 发送packet
sendp——在第二层次上发送数据包。需要给定正确的网卡接口。send——在第三层次上发送数据包。根据本地的路由表来进行路由发送。
循环发送相同的包。
间隔几秒发送一次包。
2.2.1 第三层次上发送包(layer 3)
首先,我们在第三层次上发送packet来做测试。在这之前先另起一个终端,输入以下命令,对流量做一下监听。tcpdump -i eth0 -XX -vvv icmp
然后运行
send(pkt)命令发送数据包,观察结果:
监听结果:
从结果上看,我们发送了一个ICMP请求包,收到了百度的一个ICMP答复包,还可以看到我们发送的数据。
####2.2.2 第三层次发送包(layer 3)
使用重构数据包,然后用sendp()函数发送。
sendp(Ether()/IP(dst= "www.baidu.com")/ICMP()/"XXX",iface="eth0")
Ether()构造以太网帧,和第三层次不同的是,在第二层次上发送要指定网卡接口, 这里我使用eth0。执行代码,成功发送一个数据包。如果想要循环发送,可以使用loop选项。
sendp(Ether()/IP(dst= "www.baidu.com")/ICMP()/"XXX",iface="eth0",loop=1)
代码执行后,会快速的循环发送这个数据包,使用ctrl+C结束。
如果想在两次发送数据包之间有一定的时间间隔,使用inter选项。
sendp(Ether()/IP(dst= "www.baidu.com")/ICMP()/"XXX",iface="eth0",loop=1,inter=1)
表示每隔1秒发送一个数据包。
2.3 在层次2和层次3上发送和接收包
层次3——sr()。返回答复和没有答复的包。
——sr1()。返回仅仅答复或者发送的包。
层次2
——srp()
——srp1()
执行
sr(IP(dst="www.baidu.com")/ICMP()/"XXX"),观察执行结果:
成功发送了一个数据包,接收到了2个数据包,其中一个为答复包。这是我要集中注意的地方。将收到的数据赋值给自定义的变量,并查看。
使用sr1()函数,效果:
相关文章推荐
- Clouda框架:入门全过程之安装使用
- 【Laravel框架入门No.1】PHP环境下安装Composer
- 【军哥谈CI框架】之入门教程之第一讲:codeigniter的介绍和安装配置
- Sanic框架安装与简单入门示例
- Golang入门教程(三)beego 框架安装
- 以太坊(Ethereum)开发框架 Truffle 入门(一):安装
- 1.深度学习框架——TensorFlow的安装与入门
- Symfony框架系列----1.入门安装
- 爬虫入门【10】Pyspider框架简介及安装说明
- python爬虫框架Scrapy入门:安装
- 框架入门 中级篇 (中)composer安装和使用 引入medoo数据库操作类
- Zend Framework1 框架入门(针对Windows,包含安装配置与数据库增删改查)
- vue 框架的安装和入门介绍
- 1.深度学习框架——TensorFlow的安装与入门
- Python Web开发 之Django框架入门学习笔记(一)——安装和初步使用
- 实时开发框架Meteor基础入门系列<一>--安装与HelloWorld
- pyspider 爬虫 快速入门 |框架安装配置
- vue从入门到女装??:从零开始搭建后台管理系统(一)安装框架
- 从scrapy框架搭建入门python包的安装
- LINUX新手入门及安装配置faq200(下)