基于Linux的Python ARP攻击检测软件

本软件是一款运行于Linux系统,使用Python语言编写的ARP攻击检测工具,旨在帮助用户实时监测网络中的ARP攻击行为,并提供相应的安全防护措施。

软件功能

本软件主要实现以下功能:

  1. 数据包捕获与过滤: 捕获网络中的数据包,并过滤出ARP协议数据包,为后续分析提供基础数据。
  2. ARP攻击检测:
    • 检测同一IP地址对应多个MAC地址的情况,识别ARP欺骗攻击。
    • 检测不同IP地址对应相同MAC地址的情况,识别ARP欺骗攻击。
    • 检测同一IP或MAC地址发送大量ARP数据包的情况,识别ARP泛洪攻击。
  3. 可视化界面: 采用Tkinter库构建用户友好的图形界面,方便用户进行操作和查看结果。
  4. 用户登录注册: 用户需要注册账号并登录后才能使用软件的各项功能,保障软件的安全性。
  5. 局域网主机扫描: 扫描局域网内的活动主机,并获取其IP地址和MAC地址信息。
  6. 攻击信息记录: 将检测到的攻击信息详细记录到日志文件中,方便用户进行溯源分析。

软件实现

主要技术

  • Python: 编程语言,用于实现软件的各项功能逻辑。
  • Scapy: 强大的网络数据包处理库,用于数据包的捕获、分析和构造。
  • Tkinter: Python内置的GUI库,用于构建软件的可视化界面。

检测规则

  1. 应答报文检测: 若同一IP地址对应多个不同的MAC地址,则判定为可能遭受ARP攻击。
  2. 请求报文检测: 若存在不同IP地址对应同一个MAC地址,且请求报文不合法,则判定为可能遭受ARP攻击。
  3. 数据包数量检测: 若检测到同一IP地址或MAC地址发送大量ARP数据包,则判定为可能遭受ARP攻击。
  4. 综合判定: 当满足以上两种或两种以上规则时,则判定为遭受ARP攻击,否则判定为未遭受攻击。

代码示例 (部分)

# ... 其他代码 ...

# 判断是否遭受ARP攻击
def is_arp_attack():
    # ... 获取本机IP、MAC地址以及网关IP、MAC地址 ...

    arp_mac_dict = {}  # 存储IP地址与MAC地址的对应关系
    arp_ip_dict = {}   # 存储IP地址与ARP包数量的对应关系

    def arp_monitor_callback(packet):  # 数据包处理回调函数
        # ... 判断ARP包类型、合法性,更新arp_mac_dict和arp_ip_dict ...

    sniff(prn=arp_monitor_callback, filter='arp', store=0, timeout=60)  # 监听ARP数据包

    attack_flag = False  # 攻击标志,初始值为False
    attack_info = ''  # 攻击信息

    # ... 根据检测规则判断是否遭受攻击,并更新attack_flag和attack_info ...

    if attack_flag:
        messagebox.showwarning('ARP攻击检测', '检测到ARP攻击\n' + attack_info)
    else:
        messagebox.showinfo('ARP攻击检测', '未检测到ARP攻击')

# ... 其他代码 ...

使用说明

  1. 下载软件源码,并在Linux系统中安装Python3环境以及Scapy、Tkinter库。
  2. 运行python main.py命令启动软件。
  3. 注册账号并登录,进入软件主界面。
  4. 点击'开始攻击检测'按钮开始进行ARP攻击检测。
  5. 点击'扫描局域网主机'按钮扫描局域网内的活动主机。
  6. 点击'停止攻击检测'按钮停止ARP攻击检测。

注意事项

  • 本软件仅供学习和研究使用,请勿用于非法用途。
  • 使用本软件前请确保您拥有相应的网络权限。
  • 本软件的检测结果仅供参考,不构成任何安全建议。
基于Linux的Python ARP攻击检测软件

原文地址: https://www.cveoy.top/t/topic/jplq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录