这是一个基于 Python 的 ARP 攻击检测软件,它使用 Scapy 库来捕获和分析网络流量,并通过图形用户界面提供直观的检测结果。该软件主要包含以下功能:

  • 用户注册与登录: 用户需要注册并登录才能使用该软件,以确保系统安全性。
  • 功能界面: 登录成功后,用户将进入功能界面,可以选择“开始攻击检测”或“扫描局域网主机活动”。
  • 攻击检测:
    • 软件会实时监控网络流量,并分析 ARP 包,以识别可能存在的 ARP 攻击。
    • 软件提供了多种攻击检测规则,例如:
      • 检测是否出现同一 IP 地址对应不同的 MAC 地址,
      • 检测是否出现不同 IP 地址对应同一个 MAC 地址,
      • 检测是否存在同一 IP 或 MAC 地址发出大量数据包。
    • 软件将分析结果输出到界面上的文本框中,并记录到日志文件中。
  • 扫描局域网主机活动: 软件可以扫描局域网内的活动主机,并输出其 IP 地址和 MAC 地址信息。

检测规则:

  • 检测应答报文时,判断是否出现同一 IP 地址对应不同的 MAC 地址;是则可能遭受 ARP 攻击。
  • 检测请求报文时,判断是否合法且是否出现不同 IP 地址对应同一个 MAC 地址;是则可能遭受 ARP 攻击。
  • 检测 ARP 请求或响应包,检测是否存在同一 IP 或同一 MAC 地址发出大量数据包;是则可能遭受 ARP 攻击,不是则未遭受 ARP 攻击。

输出结果:

如果同时满足两种或以上的攻击规则,则输出“遭受 ARP 攻击”。 如果不满足任何攻击规则,则输出“未遭受 ARP 攻击”。 所有信息将被保存到日志文件中。

代码示例:

import os
import sys
import time
import tkinter as tk
from tkinter import messagebox
from scapy.all import *
from threading import Thread

# 全局变量
users = {}
log = []
ar_resp_packets = {}
ar_req_packets = {}
active_hosts = {}

# GUI 界面
class GUI:
    def __init__(self, root):
        self.root = root
        self.root.title('ARP 攻击检测软件')
        self.root.geometry('600x500')

        # ... 界面元素定义...

    # 用户注册
    def register(self):
        username = self.username_entry.get()
        password = self.password_entry.get()
        if username in users:
            messagebox.showerror('错误', '该用户已注册')
        else:
            users[username] = password
            messagebox.showinfo('提示', '注册成功')

    # 用户登录
    def login(self):
        # ... 登录逻辑...

    # ... 其他界面事件处理函数 ...

# 主函数
if __name__ == '__main__':
    # 读取用户信息
    if os.path.exists('users.txt'):
        with open('users.txt', 'r') as f:
            for line in f:
                line = line.strip()
                if line:
                    username, password = line.split(':')
                    users[username] = password

    # GUI 界面
    root = tk.Tk()
    app = GUI(root)
    root.protocol('WM_DELETE_WINDOW', app.exit)
    root.mainloop()

    # 保存用户信息
    with open('users.txt', 'w') as f:
        for username, password in users.items():
            f.write(username + ':' + password + '
')

注意事项:

  • 该代码示例仅供参考,实际应用中可能需要根据具体需求进行调整。
  • 使用 Scapy 库需要管理员权限。
  • 使用该软件进行网络流量分析时,请确保遵守相关法律法规。
  • 建议将日志文件保存到安全的目录,并定期备份。

更多信息:

Python ARP 攻击检测软件:实时监控与分析网络安全

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

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