scapy构造数据包
2024-10-19 17:36:21
一、进入scapy交互界面
在终端下输入:scapy ,进入交互界面:
二、查看scapy已经实现的网络协议
ls() 列出scapy中已实现的网络协议
ls(协议类型) 查看某个协议头部字段格式
lsc() 列出scapy中可以使用的命令或函数,比如嗅探时,我们经常会用到sniff()函数
IP().show() 显示包的IP信息
IP().display() 显示包的模板 dpkg = sniff(filter="tcp",count=4)
dpkg[2].show() 显示包抓取到的tkpk的第3个数据包的的详细内容
dpkg[2].summary() 查看捕获到数据包的信息摘要 wrpcap("dpkgsniff.pcap",dpkg) 将嗅探到的packet内容写到pcap文件
dpkg_read = rdpcap("dpkgsniff.pcap") 读取pcap文件
三、构造数据包
#构造一个ip数据包
dpkg = IP()
#修改数据包的值
dpkg.ttl = 24
#构造一个ICMP数据包
dpkg = ICMP()
#构造一个TCP数据包
dpkg = TCP()
通过“/”来表示网络中各个层的组合
dpkg=Ether()/IP(dst="www.baidu.com")/TCP()/"GET /index.html HTTP/1.0 \n\n"
dpkg.show()
hexdump(dpkg)
sprintf()输出某一层某个参数的取值,如果不存在就输出”??”,具体的format格式是:%[[fmt][r],][layer[:nb].]field%
%[[fmt][r],][layer[:nb].]field%
layer: 协议层的名字,如Ether、IP、Dot11、TCP等。
filed: 需要显示的参数。
nb: 当有两个协议层有相同的参数名时,nb用于到达你想要的协议层。
r: 一个标志。当使用r标志时,意味着显示的是参数的原始值。
例如,TCP标志中使用人类可阅读的字符串’SA’表示SYN和ACK标志,而其原始值是18.
例子:pkt.sprintf("Etherent source: %Ether.src% IP src: %IP.src%")
或者:pkt.sprintf(
'%Raw.load%'
) #其中Raw为具体的协议层
显示具体的网络层的信息:
dpkg["IP"].show() 或者dpkg[IP].show() 也可以
dpkg["TCP"].show()
dpkg["Raw"].show()
#或者等价于
dpkg.getlayer(ip).show()
dpkg.getlayer(TCP).show()
dpkg.getlayer(Raw).show()
获取某个协议的具体字段值:
dpkg["Raw"].load
dpkg.getlayer(TCP).window
最新文章
- 小明的密码-初级DP解法
- 关于js判断鼠标移入元素的方向--解释
- JavaScript判断浏览器类型及版本
- Web字体库下载及转换工具
- Tortoise-SVN 出现“unable to connect to a repository at url no element found”解决办法
- 数组有没有 length()这个方法? String 有没有 length()这 个方法?
- html5实现拖拽文件上传
- Kafka集群的搭建
- Python爬虫入门教程 34-100 掘金网全站用户爬虫 scrapy
- jtable时间编辑器
- Error-MVC: “/”应用程序中的服务器错误。
- Lodop导出图片,导出单页内容的图片
- 关于 HTTP
- Typechecking With PropTypes
- 跟我学Spring Boot(二)Hello World
- Nodejs+Express构建网站
- 使用开源Breeze工具部署Kubernetes 1.12.1高可用集群
- cdoj844-程序设计竞赛 (线段树的区间最大连续和)【线段树】
- Scrum Meeting 6 -2014.11.12
- java编写binder服务实例
热门文章
- 第02组 Alpha冲刺(5/6)
- [BZOJ1852] [MexicoOI06]最长不下降序列
- kubernetes实战(九):k8s集群动态存储管理GlusterFS及使用Heketi扩容GlusterFS集群
- 如何在同一行里执行多个linux命令?
- Java 微信支付分对接记录 (先享后付)
- IScroll在某些win10版本下的奇怪问题
- Luogu P3879 【[TJOI2010]阅读理解】
- 单点登录(sso)入门
- Intellij Idea 自动更新资源和类
- selenium登录爬取知乎出现:请求异常请升级客户端后重试的问题(用Python中的selenium接管chrome)