基于Linux的ARP攻击检测软件的功能需要哪些 根据这几个规则用Python实现 首先捕获数据包将过滤规则设置为ARP包其他则丢弃接着进行分析ARP包分出正常主机和疑似异常主机异常主机的IP地址标为红色。 -检测应答报文时出现同一IP地址对应不同的MAC地址; - 检测请求报文时是否合法且出现不同IP地址对应同一个MAC地址; - 大量的ARP请求或响应包检测是否为同一IP发出或
基于Linux的ARP攻击检测软件的功能需要:
- 捕获数据包并过滤出ARP包;
- 分析ARP包,判断是否为正常主机或疑似异常主机;
- 标记异常主机的IP地址为红色;
- 检测应答报文时,判断是否出现同一IP地址对应不同的MAC地址;
- 检测请求报文时,判断是否合法且出现不同IP地址对应同一个MAC地址;
- 检测大量的ARP请求或响应包,判断是否为同一IP发出或者是同一MAC地址发出;
- 输出遭受ARP攻击或未遭受ARP攻击的结果;
- 保存所有信息到日志中。
Python实现:
import logging
from scapy.all import *
logging.basicConfig(filename='arp_attack.log', level=logging.INFO)
def arp_spoofing(pkt):
if pkt.haslayer(ARP):
arp_pkt = pkt[ARP]
if arp_pkt.op == 1: # ARP request
if arp_pkt.psrc in arp_spoofing.ip_mac_dict and arp_pkt.hwsrc != arp_spoofing.ip_mac_dict[arp_pkt.psrc]:
logging.warning("ARP spoofing detected! IP: %s, MAC: %s" % (arp_pkt.psrc, arp_pkt.hwsrc))
elif arp_pkt.op == 2: # ARP reply
if arp_pkt.psrc in arp_spoofing.ip_mac_dict and arp_pkt.hwsrc != arp_spoofing.ip_mac_dict[arp_pkt.psrc]:
logging.warning("ARP spoofing detected! IP: %s, MAC: %s" % (arp_pkt.psrc, arp_pkt.hwsrc))
else:
arp_spoofing.ip_mac_dict[arp_pkt.psrc] = arp_pkt.hwsrc
def arp_attack_detection():
arp_spoofing.ip_mac_dict = {}
sniff(filter="arp", prn=arp_spoofing)
if __name__ == '__main__':
arp_attack_detection()
以上代码实现了ARP攻击检测的功能,具体实现如下:
- 定义一个函数
arp_spoofing,用于分析ARP包并判断是否存在ARP攻击; - 在
arp_spoofing函数中,首先判断是否为ARP请求或ARP应答包,然后判断是否存在ARP攻击; - 如果存在ARP攻击,则输出警告信息到日志中;
- 如果不存在ARP攻击,则将IP地址和MAC地址存储到字典中;
- 定义一个函数
arp_attack_detection,用于捕获ARP包并调用arp_spoofing函数进行分析; - 在
arp_attack_detection函数中,使用sniff函数捕获ARP包,并设置过滤规则为ARP; - 如果存在ARP攻击,则输出警告信息到日志中;
- 如果不存在ARP攻击,则不输出任何信息。
这样就实现了一个简单的ARP攻击检测工具,并可以将所有信息保存到日志文件中
原文地址: http://www.cveoy.top/t/topic/fyPP 著作权归作者所有。请勿转载和采集!