Board logo

标题: [交流] 阻止传奇木马、网络执法管等Arp欺骗类软件的小程序 [打印本页]

作者: wubozh    时间: 2011-8-17 00:04     标题: 阻止传奇木马、网络执法管等Arp欺骗类软件的小程序

在论坛的电脑问题应用交流区,经常看到有朋友问:网速怎么突然变慢啦,防火墙提示遇到Arp攻击啦,网络里有人用网络剪刀手或者网络执法官程序,怎么对付啦等等问题。在排除了路由器的原因后,多数是因为网内有电脑中了传奇木马病毒,或者网内有人安装了网络剪刀手,网络执法官,局域网终结者这类依靠Arp欺骗来工作的网络管理程序。当内网有一台电脑中了这类Arp欺骗类的病毒或者安装了这类依靠Arp欺骗来工作的网络管理程序,整个内网就会速度明显变慢,甚至网络断流(当中毒软件关机的时候到交换机Arp表老化失效的那段时间内),或者由于多台电脑中了病毒或者安装了网管程序而互相干扰导致网络完全无法使用。由于中病毒或者安装网管软件的是别人的电脑,我们动不了。但我们有能力给自己的电脑加上简单的防护手段来避免这种危害。
  1、Arp欺骗类病毒和网管程序的工作原理:
    在整个局域网内,有一个网关,大家都只知道网关的IP地址。其实,我们的网卡连接网关,不是按IP地址,而是按网关的mac地址来找的。这样,在交换机和我们的电脑里,就保存有一份网关的mac地址(网关的网卡物理地址,全球唯一)和网关IP地址的对应表,这张表就是Arp表。比如说,A电脑要让网关发一个数据包出去,它就会喊:谁是网关啊?把你的mac地址告诉我。网关听到后,就会说:我是网关(192.168.0.1),我的mac地址是XX:XX:XX:XX:XX:XX,你把数据包发到这个XX:XX:XX:XX:XX:XX就行了。A电脑听到后,就会把网关的mac地址和IP地址填到他的Arp表里,在一定的时间内(老化时间),他的所有向外的数据包都会发往XX:XX:XX:XX:XX:XX这个地址,从而完成上网的过程。
    这个时候,如果内网有B电脑中了Arp病毒(传奇木马就是),或者装了网络执法官这类软件,它就会对外不停地喊:我是网关192.168.0.1,我的mac地址是BB:BB:BB:BB:BB:BB,这个时候,内网所有的电脑都会把数据发往B这台电脑,然后由B再发到网关,完成上网的过程。这个时候,B电脑就可以:分析数据包,截获用户名和密码(病毒和木马程序的目的),或者进行流量统计和流量管理,超过了他规定流量的数据包就会扔掉。这就是Arp欺骗的整个过程。
    这里有朋友会问了,那我在电脑里手工指定网关的IP和mac地址行不行?这样不就不受病毒和Arp网管程序欺骗了?当然可以了。我这个小程序就是起这个作用的。由于静态的Arp绑定,每次关机或者重启都会失效,所以要写注册表,让这个绑定程序每次开机都自动运行一次才行。
    另外,这个程序也有缺点,就是你的网关换了,你要再运行一次这个程序才能上网。因为你的电脑里记着的是以前网关的mac地址啊。

  2、程序代码:
@echo off
title=自动绑定网关的静态arp表
::setlocal enabledelayedexpansion
arp -d
set gateway=192.168.0.1
for /f "delims=: tokens=2" %%a in ('ipconfig /all^|find /i "default gateway"') do (
       for /f %%b in ("%%a") do set gateway=%%b )
@echo -----此程序将自动搜索你的网关ip和mac进行绑定-----
@echo.
@echo ..................................................
@echo .---------你网关的ip地址是: %gateway% ------.
ping -n 3 %gateway% >nul
for /f "tokens=1,2" %%i in ('arp -a ^| find "%gateway%"') do (set gatewayip=%%i & set gatewayeth=%%j)
arp -d
@echo .------你网关的mac地址是: %gatewayeth%------.
@echo .-----------下面将绑定你的网关的arp--------------.
arp -s %gatewayip% %gatewayeth% 1>nul 2>nul
@echo @echo off >c:\windows\route.bat
@echo ping -n 20 %gatewayip% 1^>nul 2^>nul >>c:\windows\route.bat
@echo arp -s %gatewayip% %gatewayeth% >>c:\windows\route.bat
@echo Windows Registry Editor Version 5.00 >routearp.reg
@echo. >>routearp.reg
@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] >>routearp.reg
@echo. >>routearp.reg
@echo "routearp"="c:\\windows\\route.bat" >>routearp.reg
regedit /s routearp.reg
del routearp.reg /q
@echo 
@echo .   --------网关arp静态绑定成功!!!--------    .
@echo .以后每次开机后都会由注册表自动绑定网关的静态arp .
@echo .   --------按任意键将退出本程序!!---------    .
@echo ..................................................
pause

程序代码摘要说明一下,以示是我自己写的,并且不是病毒:
第四行先删除电脑里旧Arp表,这样就是错误的arp绑定也会清空
第五行给gateway变量赋初值(你的网关不是192.168.0.1也没关系)
第六行开始只要你现在电脑是正常上网,会自动从电脑的网络配置信息里得到网关的信息,并取出它的mac地址进行绑定
从倒数第十六行开始,生成一个注册表文件,并运行,让电脑每次开机自动运行这个绑定操作
倒数第七行,删除这个临时生成的注册表文件
最后六行,提示信息并等待按任意键退出


这是批处理程序名称(只要后面的.bat不变,前面改成什么都没关系)

这是运行这个工具之前我的电脑里Arp表,可以看到只有一个动态的网关IP和mac条目。动态就是说随时有人喊是网关它就换掉

这是我的xp运行程序里的界面,已经绑定完成,等待按任意键退出窗口

这是绑定完成后我的电脑里的Arp表里的新条目,大家可以看到只有一条静态绑定条目了。也就是说,别人再怎么喊,它也不会变了。除非你再次运行这个工具程序重新绑定

由于论坛本版块不允许上传附件,所以我就把代码发地贴子里。要用的朋友直接复制这段代码,然后粘贴到记事本里,保存为“绑定网关.bat”文件名就行了(注意不能保存为Txt文本格式,要保存为bat批处理程序格式)。在需要绑定网关的电脑上双击运行一次就行。

注:这个小程序是几年前写的,在xp下用是没一点问题的,在win7下我没试过。用win7的朋友自己考虑是否冒险。

[ 本帖最后由 wubozh 于 2011-8-17 10:35 编辑 ]
作者: zenki1945    时间: 2011-8-17 12:31

我想请问一下,这个工具对于静态IP的局域网起到什么作用。
作者: wubozh    时间: 2011-8-17 12:44

不管是动态IP,还是静态IP,电脑里对于网关的Arp绑定都是动态的。因为微软要考虑到换网关的情况(路由器坏了,或者笔记本电脑换到另一个内网去了)。而Arp协议是建立在相互“信任”的基础上,也就是说,你喊一嗓子说你是网关,大家都相信。这样就给Arp欺骗留下了漏洞。我这个小程序是强行绑定网关的IP,如果将来万一路由器坏了换了网关,再绑定一次就行了。这样就不怕Arp欺骗了。你喊你的,我不理你。
至于说内网是每台机器指定IP地址,还是DHCP动态获取IP地址,都一样存在这个问题,它们对网关都是动态的。这个工具一样用,一样起作用
作者: mcitp    时间: 2011-8-17 14:22

arp  -s  IP  MAC
全文最重要的一点!
呵呵,Arp欺骗类病毒和网管程序的工作原理解释得蛮有趣的,这个加分值啦!
作者: fchoas    时间: 2011-8-17 14:30

批处理文件不是很好用,而且每次都需要开机执行
作者: wubozh    时间: 2011-8-17 17:11     标题: 回复 5楼 的帖子

这个批处理程序其实就是一个安装程序,让系统每次开机自动绑定一下网关。最种程序的最大好处是不占用系统资源,运行完就完了。不象杀毒软件里带的Arp病毒防范功能,要始终开着,占用一定的系统资源和网络资源
作者: ccl_1206    时间: 2011-8-17 18:34

Arp欺骗类病毒和网管程序的工作原理解释的很有意思啊
作者: helloppmm    时间: 2011-8-17 22:25

这个就是防止arp欺骗,可以装个arp防止篡改工具即可,或者手工指定一下
作者: wubozh    时间: 2011-8-17 23:40     标题: 回复 8楼 的帖子

有些杀毒软件也带这个功能啊。不过这些软件都要消耗一定的系统资源。这个小工具安装后每次开机自动静态绑定一下就行了。手工指定也一样需要每次开机运行。因为Arp静态绑定,一旦关机或者重启就消失了
作者: BleedingSky    时间: 2011-8-18 00:42

对付这类arp病毒,还是专业的arp防火墙靠谱一点
作者: yyyttt1233    时间: 2011-8-18 00:50

启示作用不打,ARP攻击不只是攻击网关的
作者: yangfei109    时间: 2011-8-18 01:04

ARP病毒,这玩意是没用的,真的,
作者: wubozh    时间: 2011-8-18 08:05     标题: 回复 10楼 的帖子

有专业的防火墙,要这些东西干吗?有钱,舍得花钱,什么技术都不用学了。让技师上门整就行了。
真正完整的方法应该是双向绑定的,在路由器里也要绑定每台机器的IP和mac。不过路由器普通用户没有权限。只能顾好自己了
作者: wangzuocai88    时间: 2011-8-18 09:41

新手来学习了,俺家用360一套,除了误报以外其他都还好
作者: wubozh    时间: 2011-8-18 09:46

装了那些防火墙,不停跳出Arp攻击的报警窗口,真的很烦。我宁愿用自己的工具来绑定
作者: E680g    时间: 2011-8-18 11:53

碰到某神器,你再怎么绑,照样让你Q都上不了
作者: GODzzm88    时间: 2011-8-18 12:11

有用WIN7的实验过吗,WIN7系统用这个有没有效阿
作者: wubozh    时间: 2011-8-18 12:41     标题: 回复 16楼 的帖子

兄弟,没有万能的软件和程序。只能在现有的条件下想办法解决一些问题。
要有钱,你弄个PPP拨号服务器,每台机器启用PPPoe拨号,看有没有什么病毒和木马能欺骗得了你?
作者: songyuan2616    时间: 2011-8-18 20:09

有没有弹窗啊,以前用瑞星就经常这样,很烦的
作者: wubozh    时间: 2011-8-18 22:00     标题: 回复 19楼 的帖子

报告兄弟,这个小软件安装后,只在开机的时候用一个 Arp -s命令绑定一下网关,然后就退出了。完全绿色,不弹窗
作者: a0302    时间: 2011-8-18 23:57

很实用的小工具啊,而且不占资源
作者: zx_cn888    时间: 2011-8-20 03:24

发学习了。回头单位的机房可以用这个软件试试
作者: 真爱无罪    时间: 2011-8-20 16:21

还是购买正版的杀毒软件是王道。不过感谢楼主分享这些小知识
作者: w5022786    时间: 2011-8-20 16:24

装了之后不会使开机速度变慢吧,我以前也装过类似的软件,机子变的卡死了
作者: jin0329    时间: 2011-8-21 00:07

真的假的呀 这个好不好用呀 别不起作用的
作者: wccool4185    时间: 2011-8-21 00:51     标题: 回复 1楼 的帖子

这个是挺有用的。我一般防止人家ARP攻击都是直接用的360开的防火墙,貌似也没出过什么问题。不过想抢网速用p2p终结者,就得自己关掉防火墙了
作者: 微风拂面    时间: 2011-8-21 00:54

膜拜高手,自己很少上一些乱七八糟的网站,离这些病毒也就远了
作者: wubozh    时间: 2011-8-21 16:13

这个不是防你的机器中病毒的。而是防别人的机器中了病毒或者装了网管软件对付你的
作者: dxy1234    时间: 2011-8-22 06:48

现在大部分做也就是做MAC IP的绑定了,但我们公司流动人口很多,有的只是临时性的,所以做的是动态IP,也就不存在MAC绑定了。用的是入域限权限。。。无线本本采用PPPOE拨号上网。。可以使用海蜘蛛软件,里面有个PPPOE的功能,,可以限制登录账号的登录次数,
作者: zdrain    时间: 2011-8-22 08:51

程序编的没话说,电脑高手一般编几个程序就可以让电脑裸奔了,呵呵,像我们这样的编程菜鸟还是得相信360这样的一站式防护软件,ARP防火墙,木马防火墙等等,期待楼主发新的阻止流行木马的程序,到时候我们就不装神马的杀毒软件了,哈哈!
作者: qinyiyu    时间: 2011-8-22 11:32

好久没见过这么工整的bat了,
@echo说明很详细,支持一个




欢迎光临 SexInSex! Board (http://174.127.195.101:80/bbs/) Powered by Discuz! 6.0.0