查看: 7996|回复: 5
打印 上一主题 下一主题

局域网中受ARP欺骗攻击后的解决方法

[复制链接]
跳转到指定楼层
1#
发表于 2007-10-9 09:53:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
【故障现象】当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和安全网关,让所有上网的流量必须经过病毒主机。其他用户原来直接通过安全网关上网现在转由通过病毒主机上网,切换的时候用户会断一次线。
  
  切换到病毒主机上网后,如果用户已经登陆了传奇服务器,那么病毒主机就会经常伪造断线的假像,那么用户就得重新登录传奇服务器,这样病毒主机就可以盗号了。
  
  由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。当ARP欺骗的木马程序停止运行时,用户会恢复从安全网关上网,切换过程中用户会再断一次线。
  
  【快速查找】在WebUIà系统状态à系统信息à系统历史记录中,看到大量如下的信息:
  
  MAC SPOOF 192.168.16.200
  
  MAC Old 00:01:6c:36:d1:7f
  
  MAC New 00:05:5d:60:c7:18
  
  这个消息代表了用户的MAC地址发生了变化,在ARP欺骗木马开始运行的时候,局域网所有主机的MAC地址更新为病毒主机的MAC地址(即所有信息的MAC New地址都一致为病毒主机的MAC地址)。
  
  同时在安全网关的WebUIà高级配置à用户管理à读ARP表中看到所有用户的MAC地址信息都一样,或者在WebUIà系统状态à用户统计中看到所有用户的MAC地址信息都一样。
  
  如果是在WebUIà系统状态à系统信息à系统历史记录中看到大量MAC Old地址都一致,则说明局域网内曾经出现过ARP欺骗(ARP欺骗的木马程序停止运行时,主机在安全网关上恢复其真实的MAC地址)。
  
  在上面我们已经知道了使用ARP欺骗木马的主机的MAC地址,那么我们就可以使用NBTSCAN(下载地址:http://www.utt.com.cn/upload/nbtscan.rar)工具来快速查找它。
  
  NBTSCAN可以取到PC的真实IP地址和MAC地址,如果有”传奇木马”在做怪,可以找到装有木马的PC的IP/和MAC地址。
  
  命令:“nbtscan -r 192.168.16.0/24”(搜索整个192.168.16.0/24网段, 即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:\nbtscan -r 192.168.16.1/24(这里需要根据用户实际网段输入),回车。  
 


  3)通过查询IP--MAC对应表,查出“000d870d585f”的病毒主机的IP地址为“192.168.16.223”。
  
  【解决办法】
  
  采用双向绑定的方法解决并且防止ARP欺骗。
  
  1、在PC上绑定安全网关的IP和MAC地址:
  
  1)首先,获得安全网关的内网的MAC地址(例如HiPER网关地址192.168.16.254的MAC地址为0022aa0022aa)。
  
  2)编写一个批处理文件rarp.bat内容如下:
  
  @echo off
  
  arp -d
  
  arp -s 192.168.16.254 00-22-aa-00-22-aa
  
  将文件中的网关IP地址和MAC地址更改为实际使用的网关IP地址和MAC地址即可。
  
  将这个批处理软件拖到“windowsà开始à程序à启动”中。
  
  3)如果是网吧,可以利用收费软件服务端程序(pubwin或者万象都可以)发送批处理文件rarp.bat到所有客户机的启动目录。Windows2000的默认启动目录为“C:\Documents and Settings\All Users「开始」菜单程序启动”。
  
  2、在安全网关上绑定用户主机的IP和MAC地址:
  
  在WebUIà高级配置à用户管理中将局域网每台主机均作绑定。
  
 
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
2#
 楼主| 发表于 2007-10-9 09:53:48 | 只看该作者
台州网址导航
网管必读 局域网如何防止ARP欺骗

对于ARP欺骗,提出几点加强安全防范的措施。环境是主机或者网关是基于Linux/BSD的。

一、理论前提


本着“不冤枉好人,不放过一个坏人的原则”,先说说我的一些想法和理论依据。首先,大家肯定发送ARP欺骗包肯定是一个恶毒的程序自动发送的,正常的TCP/IP网络是不会有这样的错误包发送的(板砖扔了过来啊,废话!)。这就假设,如果犯罪嫌疑人没有启动这个破坏程序的时候,网络环境是正常的,或者说网络的ARP环境是正常的,如果我们能在犯罪嫌疑人启动这个犯罪程序的第一时间,一开始就发现了他的犯罪活动,那么就是人赃俱在,不可抵赖了,因为刚才提到,前面网络正常的时候证据是可信和可依靠的。好,接下来我们谈论如何在第一时间发现他的犯罪活动。


ARP欺骗的原理如下:


假设这样一个网络,一个Hub接了3台机器


HostA HostB HostC 其中


A的地址为:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA


B的地址为:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB


C的地址为:IP:192.168.10.3 MAC: CC-CC-CC-CC-CC-CC


正常情况下 C:arp -a


Interface: 192.168.10.1 on Interface 0x1000003


Internet Address Physical Address Type


192.168.10.3 CC-CC-CC-CC-CC-CC dynamic


现在假设HostB开始了罪恶的ARP欺骗:


B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.10.3(C的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A可不知道被伪造了)。而且A不知道其实是从B发送过来的,A这里只有192.168.10.3(C的IP地址)和无效的DD-DD-DD-DD-DD-DD mac地址,没有和犯罪分子B相关的证据,哈哈,这样犯罪分子岂不乐死了。


现在A机器的ARP缓存更新了:


C:>arp -a


Interface: 192.168.10.1 on Interface 0x1000003


Internet Address Physical Address Type


192.168.10.3 DD-DD-DD-DD-DD-DD dynamic


这可不是小事。局域网的网络流通可不是根据IP地址进行,而是按照MAC地址进行传输。现在192.168.10.3的MAC地址在A上被改变成一个本不存在的MAC地址。现在A开始Ping 192.168.10.3,网卡递交的MAC地址是DD-DD-DD-DD-DD-DD,结果是什么呢?网络不通,A根本不能Ping通C!!


所以,局域网中一台机器,反复向其他机器,特别是向网关,发送这样无效假冒的ARP应答信息包,NND,严重的网络堵塞就开始了!网吧管理员的噩梦开始了。我的目标和任务,就是第一时间,抓住他。不过从刚才的表述好像犯罪分子完美的利用了以太网的缺陷,掩盖了自己的罪行。但其实,以上方法也有留下了蛛丝马迹。尽管,ARP数据包没有留下HostB的地址,但是,承载这个ARP包的ethernet帧却包含了HostB的源地址。而且,正常情况下ethernet数据帧中,帧头中的MAC源地址/目标地址应该和帧数据包中ARP信息配对,这样的ARP包才算是正确的。如果不正确,肯定是假冒的包,可以提醒!但如果匹配的话,也不一定代表正确,说不定伪造者也考虑到了这一步,而伪造出符合格式要求,但内容假冒的ARP数据包。不过这样也没关系,只要网关这里拥有本网段所有MAC地址的网卡数据库,如果和Mac数据库中数据不匹配也是假冒的ARP数据包。也能提醒犯罪分子动手了。


二、防范措施


1.建立DHCP服务器(建议建在网关上,因为DHCP不占用多少CPU,而且ARP欺骗攻击一般总是先攻击网关,我们就是要让他先攻击网关,因为网关这里有监控程序的,网关地址建议选择192.168.10.2 ,把192.168.10.1留空,如果犯罪程序愚蠢的话让他去攻击空地址吧),另外所有客户机的IP地址及其相关主机信息,只能由网关这里取得,网关这里开通DHCP服务,但是要给每个网卡,绑定固定唯一IP地址。一定要保持网内的机器IP/MAC一一对应的关系。这样客户机虽然是DHCP取地址,但每次开机的IP地址都是一样的。


2.建立MAC数据库,把网吧内所有网卡的MAC地址记录下来,每个MAC和IP、地理位置统统装入数据库,以便及时查询备案。


3.网关机器关闭ARP动态刷新的过程,使用静态路邮,这样的话,即使犯罪嫌疑人使用ARP欺骗攻击网关的话,这样对网关也是没有用的,确保主机安全。


网关建立静态IP/MAC捆绑的方法是:建立/etc/ethers文件,其中包含正确的IP/MAC对应关系,格式如下:


192.168.2.32 08:00:4E:B0:24:47


然后再/etc/rc.d/rc.local最后添加:


arp -f 生效即可


4.网关监听网络安全。网关上面使用TCPDUMP程序截取每个ARP程序包,弄一个脚本分析软件分析这些ARP协议。ARP欺骗攻击的包一般有以下两个特点,满足之一可视为攻击包报警:第一以太网数据包头的源地址、目标地址和ARP数据包的协议地址不匹配。或者,ARP数据包的发送和目标地址不在自己网络网卡MAC数据库内,或者与自己网络MAC数据库 MAC/IP 不匹配。这些统统第一时间报警,查这些数据包(以太网数据包)的源地址(也有可能伪造),就大致知道那台机器在发起攻击了。


5.偷偷摸摸的走到那台机器,看看使用人是否故意,还是被任放了什么木马程序陷害的。如果后者,不声不响的找个借口支开他,拔掉网线(不关机,特别要看看Win98里的计划任务),看看机器的当前使用记录和运行情况,确定是否是在攻击。
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
3#
 楼主| 发表于 2007-10-9 09:54:04 | 只看该作者
台州网址导航
什么是ARP?如何防范ARP欺骗?

什么是ARP?如何防范ARP欺骗技术? 

  首先说一下什么是ARP。如果你在UNIX Shell下输入 arp -a (9x下也是),你的输出看起来应该是这样的:

  Interface: xxx.xxx.xxx.xxx

  Internet Address Physical Address Type

xxx.xxx.xxx.xxx 00-00-93-64-48-d2 dynamic

  xxx.xxx.xxx.xxx 00-00-b4-52-43-10 dynamic

  ...... ......... ....

    这里第一列显示的是ip地址,第二列显示的是和ip地址对应的网络接口卡的硬件地址(MAC),第三列是该ip和mac的对应关系类型。

    可见,arp是一种将ip转化成以ip对应的网卡的物理地址的一种协议,或者说ARP协议是一种将ip地址转化成MAC地址的一种协议。它靠维持在内存中保存的一张表来使ip得以在网络上被目标机器应答。

    为什么要将ip转化成mac呢?简单的说,这是因为在tcp网络环境下,一个ip包走到哪里,要怎么走是靠路由表定义。但是,当ip包到达该网络后,哪台机器响应这个ip包却是靠该ip包中所包含的mac地址来识别。也就是说,只有机器的mac地址和该ip包中的mac地址相同的机器才会应答这个ip包。因为在网络中,每一台主机都会有发送ip包的时候。所以,在每台主机的内存中,都有一个 arp--> mac 的转换表。通常是动态的转换表(注意在路由中,该arp表可以被设置成静态)。也就是说,该对应表会被主机在需要的时候刷新。这是由于以太网在子网层上的传输是靠48位的mac地址而决定的。

    通常主机在发送一个ip包之前,它要到该转换表中寻找和ip包对应的mac地址。如果没有找到,该主机就发送一个ARP广播包,看起来象这样子:

  "我是主机xxx.xxx.xxx.xxx , mac是xxxxxxxxxxx ,ip为xxx.xxx.xxx.xx1的主机请告之你的mac来"

  ip为xxx.xxx.xxx.xx1的主机响应这个广播,应答ARP广播为:

  "我是xxx.xxx.xxx.xx1,我的mac为xxxxxxxxxx2"

    于是,主机刷新自己的ARP缓存,然后发出该ip包。

    了解这些常识后,现在就可以谈在网络中如何实现ARP欺骗了,可以看看这样一个例子:

    一个入侵者想非法进入某台主机,他知道这台主机的防火墙只对192.0.0.3(假设)这个ip开放23口(telnet),而他必须要使用telnet来进入这台主机,所以他要这么做:

    1、他先研究192.0.0.3这台主机,发现这台95的机器使用一个oob就可以让他死掉。

    2、于是,他送一个洪水包给192.0.0.3的139口,于是,该机器应包而死。

    3、这时,主机发到192.0.0.3的ip包将无法被机器应答,系统开始更新自己的arp对应表。将192.0.0.3的项目搽去。

    4、这段时间里,入侵者把自己的ip改成192.0.0.3

    5、他发一个ping(icmp 0)给主机,要求主机更新主机的arp转换表。

    6、主机找到该ip,然后在arp表中加入新的ip-->mac对应关系。

    7、防火墙失效了,入侵的ip变成合法的mac地址,可以telnet了。
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
4#
 楼主| 发表于 2007-10-9 09:54:13 | 只看该作者
台州网址导航
现在,假如该主机不只提供telnet,它还提供r命令(rsh,rcopy,rlogin等)那么,所有的安全约定将无效,入侵者可以放心的使用这台主机的资源而不用担心被记录什么。

    有人也许会说,这其实就是冒用ip嘛。是冒用了ip,但决不是ip欺骗,ip欺骗的原理比这要复杂的多,实现的机理也完全不一样。

    上面就是一个ARP的欺骗过程,这是在同网段发生的情况。但是,提醒注意的是,利用交换集线器或网桥是无法阻止ARP欺骗的,只有路由分段是有效的阻止手段。(也就是ip包必须经过路由转发。在有路由转发的情况下,ARP欺骗如配合ICMP欺骗将对网络造成极大的危害。从某种角度讲,入侵者可以跨过路由监听网络中任何两点的通讯,如果设置防火墙,请注意防火墙有没有提示过类似“某某IP是局域IP但从某某路由来”等这样的信息。

    在有路由转发的情况下,发送到达路由的ip的主机其arp对应表中,ip的对应值是路由的mac。

  比如: 我ping www.xxxx.com后,那么在我主机中,www. xxxx.com的IP对应项不是xxxx的mac,而是我路由的mac,其ip也是我路由的IP。(有些网络软件通过交换路由ARP可以得到远程IP的MAC)。

有兴趣做深入一步的朋友可以考虑这样一种情况:

    假设这个入侵者突然想到:我要经过一个路由才可以走到那台有防火墙的主机!!!

    于是这个入侵者开始思考:

    1、我的机器可以进入那个网段,但是,不是用192.0.0.3的IP。

    2、如果我用那个IP,就算那台正版192.0.0.3的机器死了,那个网络里的机器也不会把ip包丢到路由传给我。

    3、所以,我要骗主机把ip包丢到路由。

    通过多种欺骗手法可以达到这个目的。所以他开始这样做:

   1、为了使自己发出的非法ip包能在网络上活久一点,开始修改ttl为下面的过程中可能带来的问题做准备。他把ttl改成255。 (ttl定义一个ip包如果在网络上到不了主机后在网络上能存活的时间,改长一点在本例中有利于做充足的广播)


    2、他掏出一张软盘,这张软盘中有他以前用sniffer时保存的各种ip包类型。

    3、他用一个合法的ip进入网络,然后和上面一样,发个洪水包让正版的192.0.0.3死掉,然后他用192.0.0.3进入网络。

    4、在该网络的主机找不到原来的192.0.0.3的mac后,将更新自己的ARP对应表。于是他赶紧修改软盘中的有关ARP广播包的数据,然后对网络广播说"能响应ip为192.0.0.3的mac是我"。

    5、好了,现在每台主机都知道了,一个新的MAC地址对应ip 192.0.0.3,一个ARP欺骗完成了,但是,每台主机都只会在局域网中找这个地址而根本就不会把发送给192.0.0.3的ip包丢给路由。于是他还得构造一个ICMP的重定向广播。

    6、他开始再修改软盘中的有关ICMP广播包的数据,然后发送这个包,告诉网络中的主机:"到192.0.0.3的路由最短路径不是局域网,而是路由。请主机重定向你们的路由路径,把所有到192.0.0.3的ip包丢给路由哦。"

    7、主机接受这个合理的ICMP重定向,于是修改自己的路由路径,把对192.0.0.3 的ip通讯都丢给路由器。

    8、入侵者终于可以在路由外收到来自路由内的主机的ip包了,他可以开始telnet到主机的23口,用ip 192.0.0.3。
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
5#
 楼主| 发表于 2007-10-9 09:54:27 | 只看该作者
台州网址导航
注意,这只是一个典型的例子,在实际操作中要考虑的问题还不只这些。

    现在想想,如果他要用的是sniffer会怎样?

    可见,利用ARP欺骗,一个入侵者可以:

    1、利用基于ip的安全性不足,冒用一个合法ip来进入主机。

    2、逃过基于ip的许多程序的安全检查,如NSF,R系列命令等。

    他甚至可以栽账嫁祸给某人,让他跳到黄河洗不清,永世不得超生!

    那么,如何防止ARP欺骗呢?

    1、不要把你的网络安全信任关系建立在ip基础上或mac基础上,(rarp同样存在欺骗的问题),理想的关系应该建立在ip+mac基础上。

    2、设置静态的mac-->ip对应表,不要让主机刷新你设定好的转换表。

    3、除非很有必要,否则停止使用ARP,将ARP做为永久条目保存在对应表中。

    4、使用ARP服务器。通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。

    5、使用"proxy"代理ip的传输。

    6、使用硬件屏蔽主机。设置好你的路由,确保ip地址能到达合法的路径。(静态配置路由ARP条目),注意,使用交换集线器和网桥无法阻止ARP欺骗。

    7、管理员定期用响应的ip包中获得一个rarp请求,然后检查ARP响应的真实性。

    8、管理员定期轮询,检查主机上的ARP缓存。

    9、使用防火墙连续监控网络。注意有使用SNMP的情况下,ARP的欺骗有可能导致陷阱包丢失。
   以下收集的资料,供做进一步了解ARP协议

    ARP的缓存记录格式:

    每一行为:

  IF Index:Physical Address:IP Address:Type

    其中: IF Index 为:

    1 以太网

    2 实验以太网

    3 X.25

    4 Proteon ProNET (Token Ring)

    5 混杂方式

    6 IEEE802.X

    7 ARC网
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
6#
 楼主| 发表于 2007-10-9 09:54:41 | 只看该作者
台州网址导航
ARP广播申请和应答结构

    硬件类型:协议类型:协议地址长:硬件地址长:操作码:发送机硬件地址:

    发送机IP地址:接受机硬件地址:接受机IP地址。

    其中:协议类型为: 512 XEROX PUP

  513 PUP 地址转换

  1536 XEROX NS IDP

  2048 Internet 协议 (IP)

  2049 X.752050NBS

  2051 ECMA

  2053 X.25第3层

  2054 ARP

  2055 XNS

  4096 伯克利追踪者

  21000 BBS Simnet

  24577 DEC MOP 转储/装载

  24578 DEC MOP 远程控制台

  24579 DEC 网 IV 段

  24580 DEC LAT

  24582 DEC

  32773 HP 探示器


  32821 RARP

  32823 Apple Talk

  32824 DEC 局域网桥

    如果你用过NetXRay,那么这些可以帮助你了解在细节上的ARP欺骗如何配合ICMP欺骗而让一个某种类型的广播包流入一个.
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表