当前位置:首页 > 代码 > 正文

arp欺骗程序代码(解决arp欺骗)

admin 发布:2022-12-19 14:54 119


本篇文章给大家谈谈arp欺骗程序代码,以及解决arp欺骗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

关于ARP欺骗的问题

主要原因是在局域网中有人使用了ARP欺骗的木马程序,比如一些盗号的软件。

一、ARP病毒分析

当局域网内某台主机运行ARP欺骗的木马程序时,会骗欺局域域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网现在转由通过病毒主机上网,切换的时候用户会断一次线。切换到病毒主机上网后,如果用户已经登陆了游戏服务器,那么病毒主机就会经常伪造断线的假像,那么用户就得重新登录游戏服务器,这样病毒主机就可以盗号了。

由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。当ARP欺骗的木马程序停止运行时,用户会恢复从路由器上网,切换过程中用户会再断一次线。

在路由器的“系统历史记录”中看到大量如下的信息:

MAC Chged 10.128.103.124MAC Old 00:01:6c:36:d1:7fMAC New 00:05:5d:60:c7:18

这个消息代表了用户的MAC地址发生了变化,在ARP欺骗木马开始运行的时候,局域网所有主机的MAC地址更新为病毒主机的MAC地址(即所有信息的MAC New地址都一致为病毒主机的MAC地址),同时在路由器的“用户统计”中看到所有用户的MAC地址信息都一样。

如果是在路由器的“系统历史记录”中看到大量MAC Old地址都一致,则说明局域网内曾经出现过ARP欺骗(ARP欺骗的木马程序停止运行时,主机在路由器上恢复其真实的MAC地址)。

BKDR_NPFECT.A病毒引起ARP欺骗之实测分析

病毒现象:中毒机器在局域网中发送假的APR应答包进行APR欺骗, 造成其他客户机无法获得网关和其他客户机的网卡真实MAC地址,导致无法上网和正常的局域网通信.

病毒原理分析:

病毒的组件

本文研究的病毒样本有三个组件构成:

%windows%SYSTEM32LOADHW.EXE”..................病毒组件释放者

%windows%System32driversnpf.sys”...............发ARP欺骗包的驱动程序

%windows%System32msitinit.dll ”..............命令驱动程序发ARP欺骗包的控制者

反病毒应急响应解决方案:

按以下顺序删除病毒组件

1) 删除 ”病毒组件释放者”

%windows%SYSTEM32LOADHW.EXE

2) 删除 ”发ARP欺骗包的驱动程序” (兼 “病毒守护程序”)

%windows%System32driversnpf.sys

a. 在设备管理器中, 单击”查看”--”显示隐藏的设备”

b. 在设备树结构中,打开”非即插即用….”

c. 找到” NetGroup Packet Filter Driver” ,若没找到,请先刷新设备列表

d. 右键点击” NetGroup Packet Filter Driver” 菜单,并选择”卸载”.

e. 重启windows系统,

f.删除%windows%System32driversnpf.sys

3) 删除 ”命令驱动程序发ARP欺骗包的控制者”

%windows%System32msitinit.dll

2. 删除以下”病毒的假驱动程序”的注册表服务项:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNpf

二、定位ARP攻击源头和防御方法

1.定位ARP攻击源头

主动定位方式:因为所有的ARP攻击源都会有其特征——网卡会处于混杂模式,可以通过ARPKiller这样的工具扫描网内有哪台机器的网卡是处于混杂模式的,从而判断这台机器有可能就是“元凶”。定位好机器后,再做病毒信息收集,提交给趋势科技做分析处理。

标注:网卡可以置于一种模式叫混杂模式(promiscuous),在这种模式下工作的网卡能够收到一切通过它的数据,而不管实际上数据的目的地址是不是它。这实际就是Sniffer工作的基本原理:让网卡接收一切它所能接收的数据。

被动定位方式:在局域网发生ARP攻击时,查看交换机的动态ARP表中的内容,确定攻击源的MAC地址;也可以在局域居于网中部署Sniffer工具,定位ARP攻击源的MAC。

也可以直接Ping网关IP,完成Ping后,用ARP –a查看网关IP对应的MAC地址,此MAC地址应该为欺骗的MAC。

使用NBTSCAN可以取到PC的真实IP地址、机器名和MAC地址,如果有”ARP攻击”在做怪,可以找到装有ARP攻击的PC的IP、机器名和MAC地址。

命令:“nbtscan -r 192.168.16.0/254”(搜索整个192.168.16.0/254网段, 即192.168.16.1-192.168.16.254);或“nbtscan 192.168.16.25-137”搜索192.168.16.25-137 网段,即192.168.16.25-192.168.16.137。输出结果第一列是IP地址,最后一列是MAC地址。

NBTSCAN的使用范例:

假设查找一台MAC地址为“000d870d585f”的病毒主机。

1)将压缩包中的nbtscan.exe 和cygwin1.dll解压缩放到c:下。

2)在Windows开始—运行—打开,输入cmd(windows98输入“command”),在出现的DOS窗口中输入:C: btscan -r 192.168.16.1/24(这里需要根据用户实际网段输入),回车。

3)通过查询IP--MAC对应表,查出“000d870d585f”的病毒主机的IP地址为“192.168.16.223”。

通过上述方法,我们就能够快速的找到病毒源,确认其MAC——〉机器名和IP地址。

2.防御方法

a.使用可防御ARP攻击的三层交换机,绑定端口-MAC-IP,限制ARP流量,及时发现并自动阻断ARP攻击端口,合理划分VLAN,彻底阻止盗用IP、MAC地址,杜绝ARP的攻击。

b.对于经常爆发病毒的网络,进行Internet访问控制,限制用户对网络的访问。此类ARP攻击程序一般都是从Internet下载到用户终端,如果能够加强用户上网的访问控制,就能极大的减少该问题的发生。

c.在发生ARP攻击时,及时找到病毒攻击源头,并收集病毒信息,可以使用趋势科技的SIC2.0,同时收集可疑的病毒样本文件,一起提交到趋势科技的TrendLabs进行分析,TrendLabs将以最快的速度提供病毒码文件,从而可以进行ARP病毒的防御。

病毒运作基理:

1.LOADHW.EXE 执行时会释放两个组件npf.sys 和msitinit.dll .

LOADHW.EXE释放组件后即终止运行.

注意: 病毒假冒成winPcap的驱动程序,并提供winPcap的功能. 客户若原先装有winPcap,

npf.sys将会被病毒文件覆盖掉.

2.随后msitinit.dll将npf.sys注册(并监视)为内核级驱动设备: "NetGroup Packet Filter Driver"

msitinit.dll 还负责发送指令来操作驱动程序npf.sys (如发送APR欺骗包, 抓包, 过滤包等)

以下从病毒代码中提取得服务相关值:

BinaryPathName = "system32driversnpf.sys"StartType = SERVICE_AUTO_STARTServiceType= SERVICE_KERNEL_DRIVERDesiredAccess= SERVICE_ALL_ACCESSDisplayName = "NetGroup Packet Filter Driver"ServiceName = "Npf"

3. npf.sys 负责监护msitinit.dll. 并将LOADHW.EXE注册为自启动程序:

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnce]

dwMyTest =LOADHW.EXE

注: 由于该项位于RunOnce下,该注册表启动项在每次执行后,即会被系统自动删除.

这样用CMD编写ARP欺骗

解决办法:在机器能正常上网时,运行cmd,在窗口内输入arp -a,查看网关的物理地址,然后建立一个批处理文件(可建立一个文本文件,编写好内容后后缀名改为.bat),存盘后先运行一次,再将其拖到“开始菜单”的“启动”里,即可解决这一问题。内容为: @echo off arp -d arp -s 网关IP地址 网关物理地址 再有就是建议网络管理员将客户电脑的IP和MAC地址在交换机或路由器上做绑定,双向绑定后效果更好

什么是ARP欺骗,ARP欺骗现象是什么

ARP欺骗的定义:

由于局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输。所以,MAC地址在A上被伪造成一个不存在的MAC地址,这样就会导致网络不通,A不能Ping通C!这就是一个简单的ARP欺骗。

ARP欺骗现象表现为:

例如:主机A想要和主机B通信,主机A会查找本地arp表,找到主机B的mac地址,然后进行传输。如果主机A没有找到主机B的mac地址,那么主机A就会发送一个arp广播包,主机B收到这个ARP广播包后,回复主机A它的mac地址。然后主机A就会在本地arp缓存表里,生成主机B的ip和mac地址信息。(该表现默认会保存300秒)

ARP欺骗如何解决:

情况一、当局域网内某台主机感染了ARP病毒时,会向本局域网内(指某一网段,比如:10.10.75.0这一段)所有主机发送ARP欺骗攻击谎称自己是这个网端的网关设备,让原本流向网关的流量改道流向病毒主机,造成受害者不能正常上网。

情况二、局域网内有某些用户使用了ARP欺骗程序(如:网络执法官,QQ盗号软件等)发送ARP欺骗数据包,致使被攻击的电脑出现突然不能上网,过一段时间又能上网,反复掉线的现象。

关于ARP欺骗的具体原理请看我收集的资料ARP欺骗的原理 如果用户发现以上疑似情况,可以通过如下操作进行诊断:

点击“开始”按钮-选择“运行”-输入“arp –d”-点击“确定”按钮,然后重新尝试上网,如果能恢复正常,则说明此次掉线可能是受ARP欺骗所致。

注:arp -d命令用于清除并重建本机arp表。arp –d命令并不能抵御ARP欺骗,执行后仍有可能再次遭受ARP攻击。 1、中毒者:建议使用趋势科技SysClean工具或其他杀毒软件清除病毒。

2、被害者:(1)绑定网关mac地址。具体方法如下:

1)首先,获得路由器的内网的MAC地址(例如网关地址10.10.75.254的MAC地址为0022aa0022aa)。2)编写一个批处理文件AntiArp.bat内容如下: @echooffarp-darp-s10.10.75.25400-22-aa-00-22-aa

将文件中的网关IP地址和MAC地址更改为您自己的网关IP地址和MAC地址即可,计算机重新启动后需要重新进行绑定,因此我们可以将该批处理文件AntiArp.bat文件拖到“windows--开始--程序--启动”中。这样开机时这个批处理就被执行了。

(2)使用ARP防火墙(例如AntiArp)软件抵御ARP攻击。

AntiArp软件会在提示框内出现病毒主机的MAC地址 第一招:使用Sniffer抓包

在网络内任意一台主机上运行抓包软件,捕获所有到达本机的数据包。如果发现有某个IP不断发送

ARP Request请求包,那么这台电脑一般就是病毒源。原理:无论何种ARP病毒变种,行为方式有两种,一是欺骗网关,二是欺骗网内的所有主机。最终的结果是,在网关的ARP缓存表中,网内所有活动主机的MAC地址均为中毒主机的MAC地址;网内所有主机的ARP缓存表中,网关的MAC地址也成为中毒主机的MAC地址。前者保证了从网关到网内主机的数据包被发到中毒主机,后者相反,使得主机发往网关的数据包均发送到中毒主机。

第二招:使用arp -a命令任意选两台不能上网的主机,在DOS命令窗口下运行arp -a命令。例如在结果中,两台电脑除了网关的IP,MAC地址对应项,都包含了192.168.0.186的这个IP,则可以断定192.168.0.186这台主机就是病毒源。原理:一般情况下,网内的主机只和网关通信。正常情况下,一台主机的ARP缓存中应该只有网关的MAC地址。如果有其他主机的MAC地址,说明本地主机和这台主机最后有过数据通信发生。如果某台主机(例如上面的192.168.0.186)既不是网关也不是服务器,但和网内的其他主机都有通信活动,且此时又是ARP病毒发作时期,那么,病毒源也就是它了。

第三招:使用tracert命令在任意一台受影响的主机上,在DOS命令窗口下运行如下命令:tracert61.135.179.148。假定设置的缺省网关为10.8.6.1,在跟踪一个外网地址时,第一跳却是10.8.6.186,那么,10.8.6.186就是病毒源。原理:中毒主机在受影响主机和网关之间,扮演了“中间人”的角色。所有本应该到达网关的数据包,由于错误的MAC地址,均被发到了中毒主机。此时,中毒主机越俎代庖,起了缺省网关的作用。

C语言写ARP欺骗

#include stdafx.h

#include "iostream"

#include "fstream"

#include "string"

#include "windows.h"

#include "Iphlpapi.h"

#pragma comment(lib , "IpHlpApi.lib")

#pragma comment(lib , "ws2_32.lib")

#define MACFILE "mac.ini" //mac配置文件

#define GATEWAY "gateway.ini"//网关地址文件

using namespace std;

int main(int argc,char * argv[])

{

string ipadd;

string macadd;

char bc;

//读取网关ip地址

fstream _ipadd;

_ipadd.open(GATEWAY,ios::in);

while(_ipadd.get(bc))

{

ipadd+=bc;

}

cout "ARP欺骗检查工具 By:Neeao \n";

cout "网关IP:" ipadd endl;

int iReturn;

DWORD dwIP;

BYTE byMAC[6];

DWORD dwLen;

WSADATA WsaData;

WSAStartup(MAKEWORD(2, 0), WsaData);

dwIP = inet_addr(ipadd.c_str());

//cout dwIP "\n";

if (dwIP == INADDR_NONE)

{

cout "IP地址出错: " ipadd;

return 1;

}

//循环获取mac地址

while(TRUE)

{

// 发送ARP查询包获得 MAC 地址

dwLen = 6;

iReturn = SendARP(dwIP, 0, (PULONG) byMAC, dwLen);

if (iReturn != NO_ERROR)

{

printf("出错了:只能获取当前网关下主机的MAC地址.\n", argv[1]);

//__leave;

return 1;

}

char MACadd[50];

sprintf(MACadd,"%.2X-%.2X-%.2X-%.2X-%.2X-%.2X",byMAC[0],byMAC[1],byMAC[2],byMAC[3],byMAC[4],byMAC[5]);

//cout MACadd;

//判断macadd是否为空,不为空直接跳过

if(macadd=="")

{

fstream _mac;

_mac.open(MACFILE,ios::in);

if(!_mac)

{

//coutMACFILE"没有被创建";

//第一次运行写入mac地址,为初始mac地址。

fstream _macr;

_macr.open(MACFILE,ios::out|ios::app);

if(!_macr)

{

cout"文件创建失败,磁盘不可写或者文件为只读!";

exit(1);

}

_macr MACadd;

_macr.close();

macadd = MACadd;

}

else

{

char ch;

string content;

while(_mac.get(ch))

{

content+=ch;

}

_mac.close();

macadd = content;

cout "MAC地址为:" content endl;

}

}

//判断mac地址

if(macadd==MACadd)

{

cout "ok\n";

//return 1;

}else

{

cout "MAC地址被修改了\n";

//return 1;

}

Sleep(2000);//每2秒钟获取一次

}

return 0;

}

ARP欺骗是什么?

ARP欺骗的种类ARP欺骗是黑客常用的攻击手段之一,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。 第一种ARP欺骗的原理是——截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。第二种ARP欺骗的原理是——伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。 一般来说,ARP欺骗攻击的后果非常严重,大多数情况下会造成大面积掉线。有些网管员对此不甚了解,出现故障时,认为PC没有问题,交换机没掉线的“本事”,电信也不承认宽带故障。而且如果第一种ARP欺骗发生时,只要重启路由器,网络就能全面恢复,那问题一定是在路由器了。为此,宽带路由器背了不少“黑锅”。 arp欺骗-网络执法官的原理在网络执法官中,要想限制某台机器上网,只要点击"网卡"菜单中的"权限",选择指定的网卡号或在用户列表中点击该网卡所在行,从右键菜单中选择"权限",在弹出的对话框中即可限制该用户的权限。对于未登记网卡,可以这样限定其上线:只要设定好所有已知用户(登记)后,将网卡的默认权限改为禁止上线即可阻止所有未知的网卡上线。使用这两个功能就可限制用户上网。其原理是通过ARP欺骗发给被攻击的电脑一个假的网关IP地址对应的MAC,使其找不到网关真正的MAC地址,这样就可以禁止其上网。 局域网ARP欺骗的应对一、故障现象及原因分析情况一、当局域网内某台主机感染了ARP病毒时,会向本局域网内(指某一网段,比如:10.10.75.0这一段)所有主机发送ARP欺骗攻击谎称自己是这个网端的网关设备,让原本流向网关的流量改道流向病毒主机,造成受害者正常上网。情况二、局域网内有某些用户使用了ARP欺骗程序(如:网络执法官,QQ盗号软件等)发送ARP欺骗数据包,致使被攻击的电脑出现突然不能上网,过一段时间又能上网,反复掉线的现象。关于APR欺骗的具体原理请看我收集的资料ARP欺骗的原理二、故障诊断如果用户发现以上疑似情况,可以通过如下操作进行诊断:点击“开始”按钮-选择“运行”-输入“arp–d”-点击“确定”按钮,然后重新尝试上网,如果能恢复正常,则说明此次掉线可能是受ARP欺骗所致。注:arp-d命令用于清除并重建本机arp表。arp–d命令并不能抵御ARP欺骗,执行后仍有可能再次遭受ARP攻击。三、故障处理1、中毒者:建议使用趋势科技SysClean工具或其他杀毒软件清除病毒。2、被害者:(1)绑定网关mac地址。具体方法如下:1)首先,获得路由器的内网的MAC地址(例如网关地址10.10.75.254的MAC地址为0022aa0022aa)。2)编写一个批处理文件AntiArp.bat内容如下: @echooffarp-darp-s10.10.75.25400-22-aa-00-22-aa将文件中的网关IP地址和MAC地址更改为您自己的网关IP地址和MAC地址即可,计算机重新启动后需要重新进行绑定,因此我们可以将该批处理文件AntiArp.bat文件拖到“windows--开始--程序--启动”中。这样开机时这个批处理就被执行了。(2)使用ARP防火墙(例如AntiArp)软件抵御ARP攻击。AntiArp软件会在提示框内出现病毒主机的MAC地址四,找出ARP病毒源第一招:使用Sniffer抓包在网络内任意一台主机上运行抓包软件,捕获所有到达本机的数据包。如果发现有某个IP不断发送ARP Request请求包,那么这台电脑一般就是病毒源。原理:无论何种ARP病毒变种,行为方式有两种,一是欺骗网关,二是欺骗网内的所有主机。最终的结果是,在网关的ARP缓存表中,网内所有活动主机的MAC地址均为中毒主机的MAC地址;网内所有主机的ARP缓存表中,网关的MAC地址也成为中毒主机的MAC地址。前者保证了从网关到网内主机的数据包被发到中毒主机,后者相反,使得主机发往网关的数据包均发送到中毒主机。第二招:使用arp-a命令任意选两台不能上网的主机,在DOS命令窗口下运行arp-a命令。例如在结果中,两台电脑除了网关的IP,MAC地址对应项,都包含了192.168.0.186的这个IP,则可以断定192.168.0.186这台主机就是病毒源。原理:一般情况下,网内的主机只和网关通信。正常情况下,一台主机的ARP缓存中应该只有网关的MAC地址。如果有其他主机的MAC地址,说明本地主机和这台主机最后有过数据通信发生。如果某台主机

关于ARP欺骗,这段代码什么意思?

ARP -D是清理ARP缓存表~~而ARP -S是将IP192.168.0.1 与MAC00-50-8b-b0-ec-d6 进行静态绑定~~而IP192.168.0.1一般是网关~~所以这样有可能造成电脑无法上网!

arp欺骗程序代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于解决arp欺骗、arp欺骗程序代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/9679.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载