2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 网络攻击-arp攻击

网络攻击-arp攻击

时间:2022-11-19 13:24:02

相关推荐

网络攻击-arp攻击

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加

网络攻击-arp攻击

文章目录

系列文章目录ARP 攻击 原理一、结构体设计?MACIP headerARP 头二、测试代码1.arp reply 接口总结

ARP 攻击 原理

提示:这里可以添加本文要记录的大概内容:

ARP 攻击是一种在局域网内有效的攻击方式,它是借助于arp包广播的特性的一种攻击方式。由于arp 包在居于网内是通过广播的方式进行寻址的数据包。在局域网内任意主机收到广播包就回复错误的arp 应答报文,造成寻址主机无法收到正确的应答报文造成主机无法上网。

提示:以下是本篇文章正文内容,下面案例可供参考

一、结构体设计?

准备采用netmap 实现简单的协议栈。设计的协议有mac,IP, arp 等协议。详细的结构体设计如下。

MAC

struct ethhdr {unsigned char h_dst[ETH_ADDR_LENGTH];unsigned char h_srt[ETH_ADDR_LENGTH];unsigned short type;}

IP header

// IP 头设计typedef struct iphdr {unsigned char iph_len:4,version:4; //0x45unsigned char tos;unsigned short totlen;unsigned short id;unsigned short flag_offset;unsigned char ttl;unsigned char type;unsigned short check;unsigned int sip;unsigned int dip;}

ARP 头

struct arphdr {unsigned short h_type;unsigned short h_prot;unsigned char h_addr_len;unsigned char h_protolen;// 协议区别IPV4 IPV6unsigned short opt; // 0.1 request replayunsigned char smac[ETH_ADDR_LEN];unsigned int sip;unsigned char dmac[ETH_ADDR_LEN];unsigned int dip;};struct arppkt {struct ethhdr eh;struct arphdr arp;};

二、测试代码

1.arp reply 接口

代码如下(示例):

void echo_arp_pkt(struct arppkt *arp, struct arppkt *arp_rt, char *mac) {memcpy(arp_rt, arp, sizeof(struct arppkt));memcpy(arp_rt->eh.h_dst, arp->eh.h_src, ETH_ADDR_LENGTH);str2mac(arp_rt->eh.h_src, mac);arp_rt->eh.h_proto = arp->eh.h_proto;arp_rt->arp.h_addrlen = 6;arp_rt->arp.h_protolen = 4;arp_rt->arp.oper = htons(2);str2mac(arp_rt->arp.smac, mac);arp_rt->arp.sip = arp->arp.dip;memcpy(arp_rt->arp.dmac, arp->arp.smac, ETH_ADDR_LENGTH);arp_rt->arp.dip = arp->arp.sip;}

总结

提示:这里对文章进行总结:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。