Scapy样例三则

1. 演示ls()/lsc()用法: 

##Exec1.pyfrom scapy.all import *## 列出scapy支持的命令
def ListScapyCmd():lsc()## 列出指定协议的各个字段, 用于构成packet
def ListProtocolField(protoclName):ls(protoclName)if __name__ == "__main__":print("\nexample of lsc()\n")ListScapyCmd()print("\nexample of ls()\n")ListProtocolField(TCP)

输出:

 

2.Scapy "/" 符号生成数据包, sr/send发送3层包. srp/sendp发送2层包.

## Exec2.pyfrom scapy.all import *ifaceName = 'VMware Network Adapter VMnet8'
dstIP = '192.168.70.134'
dstMac = '00:0C:29:FB:48:0A'
srcIP = '192.168.70.1'
srcMac = '00:50:56:C0:00:08'def ARPPacket():## 构造以太网层etherLayer = Ether(dst=dstMac)## 构造ARP-echo包arpLayer = ARP(hwtype=1,ptype=0x800,hwsrc=srcMac,psrc=srcIP,hwdst=dstMac,pdst=dstIP)arpRequest = etherLayer/arpLayer## use sendp to send level 2 packet## 二层包需要用sendp发送sendp(arpRequest, iface=ifaceName, loop=200)def ICMPPacket():ipLayer = IP(dst=dstIP)## 模仿nmap -PP command, 构造ICMP包icmpTimestampRequest = ICMP(type=13,code=0) ## ICMP, timestamp request## 模仿nmap -PM commandicmpMacRequest = ICMP(type=17,code=0) ## ICMP, Mac address request## 模仿nmap -PE commandicmpEchoRequest = ICMP(type=8,code=0) ## ICMP, echo requestfor i in range(500):    pack = ipLayer/icmpTimestampRequestsend(pack,iface=ifaceName)pack = ipLayer/icmpMacRequestsend(pack,iface=ifaceName)pack = ipLayer/icmpEchoRequest##  use sendp to send level 3 packetsend(pack,iface=ifaceName)def TCPPacket():ipLayer = IP(dst=dstIP, src=srcIP)tcpLayer = TCP(dport=[22,23,80,443,8080])pack = ipLayer/tcpLayersr1(pack,iface=ifaceName,timeout=3)def TCPPacketFlags():## 构造IP层ipLayer = IP(dst=dstIP, src=srcIP)## 构造TCP层, 向192.168.70.134:22,23,80,443,8080 5个端口发送TCP reset包(flags=RST)tcpLayer = TCP(dport=[22,23,80,443,8080],flags="R")## 构造包pack = ipLayer/tcpLayersr1(pack,iface=ifaceName,timeout=3)if __name__ == "__main__":TCPPacket()TCPPacketFlags()ICMPPacket()ARPPacket()

Wireshark输出:

3.Scapy+PyShark实时抓包/TCPReplay. Scapy.sniff函数无法用display filter, 只能用PyShark代替. Scapy读取/重放 PyShark生成的pcap文件

## Exec3.pyfrom scapy.all import *
from pyshark import *## live capture and file captureifaceName = 'VMware Network Adapter VMnet8'
path2tshark = 'C:\\Program Files\\Wireshark\\tshark.exe'
path2pCapFile = 'C:\\Users\\Eugene\\Desktop\\studio\\scapyMod\\1.pcap'## scapy.sniff只能应用wireshark capture-filter,不能应用wireshark display-filter, 抓特定类型的packet需要通过pyshark中转.
## pyshark.LiveCapture一定要指定tshark_path(ex:C:\Program Files\Wireshark\tshark.exe)
## pyshark.LiveCapture.output_file指定pcap保存路径, 供scapy模块rdpcap/wrpcap使用
def PysharkLiveCapture():capObj = LiveCapture(interface=ifaceName,display_filter = "",bpf_filter = "",tshark_path = path2tshark,output_file = path2pCapFile)capObj.sniff(timeout=120)def HandleLiveCapture():capturedPacks = rdpcap(path2pCapFile)for pack in capturedPacks:try:## 用haslayer判断是否为IP包if pack.haslayer(IP) == True:print("pack.SrcIP: "+pack[IP].src+"\tpack.DstIp: "+pack[IP].dst)## 用haslayer判断是否为ICMP包if pack.haslayer(ICMP) == True:## 解析ICMP包中的各个字段print("pack[ICMP].type:"+str(pack[ICMP].type)+" pack[ICMP].code:"+str(pack[ICMP].code))except:print("exception")if __name__ == "__main__":## PysharkLiveCapture()HandleLiveCapture()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/148000.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SNAP与Sen2Cor下载与安装

SNAP软件下载与安装 一、下载地址 首先进入网站 找到DOWNLOAD下载页, 安装完成后,界面如下 还需要再装一个Sen2cor下载好之后,解压到用户文件夹下 然后打开L2A_Process.bat文件 打开CMD,输入 cd C:\Users\lenovo\AppData\L…

ubuntu 安装 flowiseai

flowiseai 可以快速的搭建AI应用 安装docker 安装docker https://docs.docker.com/desktop/install/linux-install/ 安装docker-compose 安装docker-compose https://blog.csdn.net/sunyuhua_keyboard/article/details/133070011?csdn_share_tail%7B%22type%22%3A%22blo…

安装matplotlib_

安装pip 安装matplotlib 安装完毕 导入出现bug......

C++人事管理系统

一、设计目的 企业员工管理系统主要是针对企业员工的基本信息进行增、删、改、查的相关操作,以便用户使用本管理系统时可以快速对企业员工的信息进行管理。 二、设计内容 1.用户首次使用本系统时进行密码设置和初始化操作。 2.实现添加功能,即添加员工…

httpserver 下载服务器demo 以及libevent版本的 httpserver

实现效果如下&#xff1a; 图片可以直接显示 cpp h 这些可以直接显示 其他的 则是提示是否要下载 单线程 还有bug 代码如下 先放上来 #include "httpserver.h" #include "stdio.h" #include <stdlib.h> #include <arpa/inet.h> #include…

为什么Spring不建议使用基于字段的依赖注入

在我们通过IDEA编写Spring的代码的时候&#xff0c;假如我们编写了如下代码&#xff1a; IDEA会给我们一个warning警告&#xff1a; 翻阅官方文档&#xff1b;我们会发现&#xff1a; 大意就是强制依赖使用构造器注入&#xff0c;可选依赖使用setter注入那么这是为什么呢&am…

一键智能视频语音转文本——基于PaddlePaddle语音识别与Python轻松提取视频语音并生成文案

前言 如今进行入自媒体行业的人越来越多&#xff0c;短视频也逐渐成为了主流&#xff0c;但好多时候是想如何把视频里面的语音转成文字&#xff0c;比如&#xff0c;录制会议视频后&#xff0c;做会议纪要&#xff1b;比如&#xff0c;网课教程视频&#xff0c;想要做笔记&…

【算法|动态规划No.10】leetcode LCR 089. 打家劫舍 LCR 090. 打家劫舍 II

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

fcpx插件:82种复古电影胶卷框架和效果mFilm Matte

无论您是在制作音乐剪辑、私人假期视频还是大型广告活动&#xff0c;这个专业的插件都将帮助您为您的镜头赋予真正的电影角色。 复古效果在任何视频中都能立即识别出来&#xff0c;增添了感伤的复古氛围&#xff0c;并使镜头更具说服力。使用 mFilm Matte 轻松实现这些特征&…

C++算法 —— 动态规划(10)二维费用背包

文章目录 1、动规思路简介2、一和零3、盈利计划 背包问题需要读者先明白动态规划是什么&#xff0c;理解动规的思路&#xff0c;并不能给刚接触动规的人学习。所以最好是看了之前的动规博客&#xff0c;以及两个背包博客&#xff0c;或者你本人就已经懂得动规了。 1、动规思路简…

九、2023.10.3.Linux(end).9

文章目录 33、简述mmap的原理和使用场景&#xff1f;34、互斥量能不能在进程中使用&#xff1f;35、协程是轻量级线程&#xff0c;轻量级表现在哪里&#xff1f;36、说说常见信号有哪些&#xff0c;表示什么含义&#xff1f;37、说说线程间通信的方式有哪些&#xff1f;38、说说…

Access注入---Cookie注入

Access注入----Cookie注入Access数据库&#xff08;微软&#xff09; 逐渐淘汰 &#xff08;没有库的概念&#xff0c;是表的集合&#xff09;Access没有系统自带库Cookie注入&#xff08;头注入HEAD注入的&#xff09;php中产生Cookie注入的可能性小&#xff0c;但ASP产生Cook…

RabbitMQ的基本介绍

什么是MQ 本质是一个队列&#xff0c;只不过队列中存放的信息是message罢了&#xff0c;还是一种跨进程的通信机制&#xff0c;用于上下游传递信息。在互联网架构中&#xff0c;MQ是一种非常常见的上下游“逻辑解耦物理解耦”的消息通信服务。使用了MQ之后&#xff0c;信息发送…

postgresql16-新特性

postgresql16-新特性 any_value数组抽样数组排序 any_value any_value 返回任意一个值 select e.department_id ,count(*), any_value(e.last_name) from cps.public.employees e group by e.department_id ;数组抽样 -- 从数组中随机抽取一个元素 array_sample(数组&#…

以太网基础学习(四)——IP协议

一 、IP协议概述 IP&#xff08;Internet Protocol&#xff0c;互联网协议&#xff09;是互联网通信的基础协议&#xff0c;它负责将数据包从源地址传输到目的地址。IP协议定义了如何封装数据包&#xff0c;如何寻址数据包以及如何路由数据包&#xff0c;它是随着互联网的出现而…

弧度、圆弧上的点、圆的半径(r)、弧长(s)之间的关系

要计算弧度和圆弧上的点&#xff0c;需要知道以下几个要素&#xff1a; 圆的半径&#xff08;r&#xff09;&#xff1a;即圆的中心到圆周上任意一点的距离。 弧长&#xff08;s&#xff09;&#xff1a;从圆周上的一个点到另一个点所经过的弧长。 弧度&#xff08;θ&#x…

【CAD二次开发】给CAD添加TRUSTEDPATHS避免dll插件信任弹窗

找到配置文件目录,遍历下面的每个配置文件; 找到 Variables 下的TRUSTEDPATHS项目;在后面添加新的目录即可,多个目录使用分号分隔; public static void AddPath(string trusedPath){// 指定注册表键的路径

指针笔试题(带解析版)

题目2&#xff1a; struct MyStruct {int num;char* pcname;short sdate;char cha[2];short sba[4]; }*p; //结构体大小为32字节 //p0x100000 int main() {p 0x100000;printf("%p\n", p 0x1);//p&#xff1a;结构体指针&#xff0c;1下一个结构体指针&#xff0c;…

axb_2019_brop64

axb_2019_brop64 Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000)64位&#xff0c;只开了NX __int64 repeater() {size_t v1; // raxchar s[208]; // [rsp0h] [rbp-D0h] BYREFprintf("…

SLAM从入门到精通(用python实现机器人运动控制)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 在ROS下面&#xff0c;开发的方法很多&#xff0c;可以是c&#xff0c;可以是python。大部分接口操作类的应用&#xff0c;其实都可以用python来开…