python scapy模块_关于scapy模块
scapy是一个可以让用户发送、侦听和解析并伪装网络报文的Python程序。这些功能可以用于制作侦测、扫描和攻击网络的工具。
换言之,Scapy 是一个强大的操纵报文的交互程序。它可以伪造或者解析多种协议的报文,还具有发送、捕获、匹配请求和响应这些报文以及更多的功能。Scapy 可以轻松地做到像扫描(scanning)、路由跟踪(tracerouting)、探测(probing)、单元测试(unit tests)、攻击(attacks)和发现网络(network discorvery)这样的传统任务。它可以代替hping,arpspoof,arp-sk,arping,p0f 甚至是部分的Namp,tcpdump和tshark的功能。
一.
构建一个IP数据包试试
ls方法
用ls()方法可以查看一个IP包都需要什么类型的那些参数,以及默认值
简单的演示
可以看出,scapy模块中包含IP这个类。利用IP类可以构造ip数据包,只要指定包头中的参数值就行。每个参数表现在IP类中是一个属性,他们都有默认值,比如ttl的64。
show方法
可以利用show这个方法来查看你构建的包的情况。
二.
堆加层次(OSI参考模型)
/操作符在两层之间起到一个组合的作用。当使用该操作符时,下层可以根据其上层,使它的一个或多个默认字段被重载。(您仍可以赋予您想要的值)一个字符串也可以被用作原料层(raw layer)。
可以看出,当IP包和TCP包组合之后,IP中的多个属性就被重载了。
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秒就丢弃,实际时间看程序处理能力而定
verbose=0 不显示详细信息
python scapy模块_关于scapy模块相关推荐
- python中常用的序列化模块_使用pickle模块对python对象进行序列化
pickle模块是Python自带的一个标准模块,专用于Python各种对象的序列化和反序列化,可用于Python内置的各种数据对象(Python中一切都是对象),也可用于程序员自定义的类和对象. p ...
- python模块化编程_什么是模块,Python模块化编程(入门必读)
Python 提供了强大的模块支持,主要体现在,不仅 Python 标准库中包含了大量的模块(称为标准模块),还有大量的第三方模块,开发者自己也可以开发自定义模块.通过这些强大的模块可以极大地提高开发 ...
- 光纤传感器实验模块_光纤传感器实习模块_实习3振动丈量试验模块doc
自动化专业好吗凭据图安置连合线.贯注电涡流断面与振动台面之间的安置隔绝为线性区域.试验模块输出端TP3接示波器接入±12V电源. 信号源幅度按钮初始为零缓慢增大幅度独揽台面与传感器端面不要碰撞. 用示 ...
- 无源波分和彩光模块_波分光模块详细介绍
波分光模块的简介 波分光模块是光复用传输链路中的的光电转换器,其采用波分复用技术,将不同波长的光信号复合在一条光纤上进行传输,具备成本低等优点. 波分光模块的特征 1.设计灵活: 2.可靠性高: 3. ...
- pythonlinux加入自己写的模块_利用ngx_python模块嵌入到Python脚本
导读 Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发. ...
- python的cfg是什么模块_使用安装模块设置.py以及设置.cfg
我有以下目录结构:/modules/ /modules/setup.py /modules/setup.cfg /modules/module1/ /modules/module1/__init__. ...
- PHPCMS商城:模块_购物车+订单模块(资源合集)
phpcms v9 购物车+商品模块+订单 最新V9商城插件 [注意:没有文档任何说明:无人回复] [所需积分/C币:28] 2019-05-15 23:43:03 191KB ZIP 31 收藏 收 ...
- 怎么安装aptdaemon模块_安装Pulseaudio模块在Ubuntu中开启蓝牙APTX/LDAC支持
安装pulseaudio-bluetooth模块就能在Ubuntu 18.10/Ubuntu 18.04系统中实现蓝牙APTX/LDAC的支持,因为该模块整合了对于LDAC和APTX的支持,把它编译安 ...
- mysql数据库增加模块_使用bind-mysql模块增加对mysql数据库的支持
对于bind,如果想修改或增加dns记录,是直接修改文本的,这样的话一方面不方面管理,另一方面容易出错,如果我们增加对mysql数据库的支持,再配合php或perl,python等程序直接操作mysq ...
最新文章
- 【杠精】问卷星防切屏解除方法-解除问卷星平台模拟考试防作弊切屏和最大化全屏的方法
- 牛皮啊,全网独家SpringCloud Alibaba手打笔记
- java赋值语句_Scala守卫语句的集中用法
- Qt中moc问题(qt moc 处理 cpp)
- Openssl的证书格式转换
- (( 系统的自协调与抽象而成的自动反馈
- MTK驱动(75)--- MT6739平台的thermal高温充电机制调整
- ubuntu服务器开放端口_Docker服务开放了这个端口,服务器分分钟变肉机
- linux 运行魂斗罗,如何在linux/freebsd下玩模拟器游戏_linux教程
- 毕业设计基本要求计算机,计算机学院关于本科毕业设计(论文)的基本要求.doc
- 跟“杀熟”说再见 在熊拍拍只有双赢
- 【python实战】不让我复制?看我自制个带文字识别的截屏工具
- 基于ssm的个人博客系统的设计与实现(含源文件)
- 【软工Work1】四则加减乘除混合运算(带括号、真分数)
- magic魔术师分身问题
- 白杨SEO:2021到2022年做自媒体在哪个平台上更有前途?公众号、百家号、头条号、抖音、微博、B站、知乎、小红书、视频号
- XmlPullParserException: unexpected character in markup
- 讲解变频电源的工作原理图
- 整数转换成罗马数字,Roman Numeral Converter
- MEGANv2.0.4跑起来——自然源排放制作
热门文章
- linux内存测试工具memtester使用详解
- 得到谷歌认证的《Android UI框架进阶解密》开源了,亮瞎我的钛合金
- sysstat 离线安装
- 2、maven案例idexXML调模板maven运Tomcat报错org.apache.jasper.JasperException: Unable to compile class forJSP
- linux 0.0.1
- 李永乐复习全书概率论与数理统计 第七、八章 参数估计及假设检验
- 基于java+springboot+mybatis+vue+elementui的口红电子购物商城
- 关于影印版与翻译版的对比
- vis 和黄色边框斗智斗勇
- 工业控制协议解析之-CA协议