python构造icmp数据包_scapy构造数据包 - osc_r590b6ja的个人空间 - OSCHINA - 中文开源技术交流社区...

本文介绍了如何进入Scapy交互界面并查看其内置的网络协议。接着,展示了如何构造和修改IP、ICMP、TCP数据包,并通过组合不同协议层来创建复杂的数据包。此外,还讲解了如何利用Scapy进行数据包的显示、十六进制转储以及获取特定层字段值的方法。
摘要由CSDN通过智能技术生成

一、进入scapy交互界面

在终端下输入:scapy ,进入交互界面:

fe616a4774bc3f2fd96884c17824b8da.png

二、查看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

f54353e2c38b9ec5bd1f52dfb5831479.png

#构造一个ICMP数据包

dpkg = ICMP()

#构造一个TCP数据包

dpkg = TCP()

052624891e61d3cfda25bab9ef2f1e38.png

通过“/”来表示网络中各个层的组合

dpkg=Ether()/IP(dst="www.baidu.com")/TCP()/"GET /index.html HTTP/1.0 \n\n"

dpkg.show()

hexdump(dpkg)

058773b9cba285762944caa58ee8c425.png

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为具体的协议层

e4a0da2ba28b09c63721f748ba9f79ba.png

显示具体的网络层的信息:

dpkg["IP"].show() 或者dpkg[IP].show() 也可以

dpkg["TCP"].show()

dpkg["Raw"].show()

#或者等价于

dpkg.getlayer(ip).show()

dpkg.getlayer(TCP).show()

dpkg.getlayer(Raw).show()

9c4e2cd39dd51ab8d6386c3248ee5894.png

fa8745d085f9a0b4f1cd41c3f4689474.png

获取某个协议的具体字段值:

dpkg["Raw"].load

dpkg.getlayer(TCP).window

503114d4b20a245baabfcaaf53f44876.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值