【Python】构造数据包Scapy——网络扫描、攻击工具_scapy实现自定义数据包构造

| 传输层 | TCP UDP |
| 网络层 | IP ICMP |
| 链路层 | ARP RARP |

分层后构造数据包会很简单。一个数据包并不是必须同时包含这四层协议,也不是同一层只能包含1个协议

在kali中,命令:scapy,可以启动Scapy编程环境

2、Scapy中的分层结构

使用“类+属性”的方式构造数据包,在scapy中每一个网络协议就是一个类,协议中的字段就对应着属性。只需要实例化一个协议类,就可以创建一个该协议类型的数据包

例如,构造一个IP数据包

IP()

选择"from 模块 import 类"的形式导入

from scapy.all import IP
pkt=IP()
print(pkt)

对于IP来说,最重要的属性是源地址和目标地址,这两个属性在Scapy中使用参数src和dst来设置

要构造一个发往192.168.x.x的IP数据包

ip=IP(dst="192.168.x.x")

查看数据包格式的函数ls(),不了解如何为一个IP数据包指定目标地址的时候

from scapy.all import IP,ls
pkt=IP()
ls(pkt)

scapy采用分层的方式构造数据包,通常最底层的协议是Ether–》IP–》TCP/UDP

使用Ether(),这个类可以设置发送方和接收方的MAC地址。产生一个广播数据包,命令如下

Ether(dst="ff:ff:ff:ff:ff:ff")

分层是通过"/"实现的。如果一个数据包是由多层协议组合而成,就可以用“/”分开,并按照协议由底而上的顺序从左向右排列

使用Et

  • 30
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值