scapy(一):简介及实现ARP攻击

Scapy是一个强大的交互式数据包处理程序(使用python编写)。它能够伪造或者解码大量的网络协议数据包,能够发送、捕捉、匹配请求和回复包等等。

最重要的他还有很多更优秀的特性——发送无效数据帧、注入修改的802.11数据帧、在WEP上解码加密通道(VOIP)、ARP缓存攻击(VLAN) 等,这也是其他工具无法处理完成的。

用scapy构造数据包

在 Scapy 中可以用特别简单的方法来构造一个数据包,比如构造一个 IP 包,并传入一些参数

from scapy.all import *
ip_packet = IP(dst="10.60.17.46",ttl=80)
ls(ip_packet)

  • version:版本号
  • ihl:头长度
  • tos:服务类型
  • len:IP数据包总长
  • id:标识符
  • flags:标记
  • flag:片偏移
  • ttl:生存时间
  • proto:协议类型
  • chksum:头部校验
  • src:源IP地址
  • dst:目的IP地址
  • options:可选项

小明对小红一片痴情,他们总是相互写信沟通,一封信就是一个ip包裹。但是我们这次想要搞点恶作剧,比如代小明给小红发消息,下面的payload里装的就是我们的消息。

from scapy.all import *

ming_ip = "10.60.17.46" #  我们要代替小明发信息
hong_ip = "192.168.209.153" #  收信人小红
ming_port = 9999 # source port (sport)
hong_port = 80 # destination port (dport)
payload = "Xiao Hong, I love you!" # packet payload 包的载荷,我们的嘿嘿嘿
spoofed_packet = IP(src=ming_ip, dst=hong_ip) / TCP(sport=ming_port, dport=hong_port) / payload
#我们制作了一个ip包,
#这个包假冒小明的名字(源地址source/src),
#发给了小红(目的地址destination/dst)
#包里装的是我们仿造的小明的表白信
print(spoofed_packet)
send(spoofed_packet)

‘/’符号被重载为“叠加”,上面我们把IP()/TCP()/payload很自然的表示这个ip包里边儿是个tcp,tcp里边装了我们的payload内容。而这个spoofed_packet就像汉堡一样,是一层一层累好了的IP包,非常方便。举一反三,send(IP(dst="192.168.1.1")/ICMP())这条程序其实就可以理解为在命令行中ping

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值