作者存档

烦人的arp

公司这几天网络非常不稳定,动不动就掉线
但是查看路由器信息却又一切正常
上网搜索了一下,才知道这是arp病毒的典型症状
经过一天半时间的排查,总算是把公司局域网内的三台毒源机给搞定了

以下两篇为转帖

ARP欺骗技术

当你给一个系统打补丁时,只是安全措施里的一个很基本的步骤而已。通常一个hacker要进入你的系统,他所要做的并不是你打补丁就可以避免的。象这些欺骗都要求你必须掌握相当的网络底层知识和合理安排物理布线才可阻止得了的,特别是多种手法混用的时候。特别要说明的是:有些人往往以为会使用某些工具入侵就觉得自己是个hacker, 其实这只是入门而已(有些是连门都找不到)。通过本文,我想让人们知道,一个hacker在真正入侵系统时,他并不是依靠别人写的什么软件的。更多是靠对系统和网络的深入了解来达到这个目的。

 首先还是得说一下什么是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了。

  现在,假如该主机不只提供telnet,它还提供r命令(rsh,rcopy,rlogin等)那么,所有的安全约定将无效,入侵者可以放心的使用这台主机的资源而不用担心被记录什么。

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

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

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

  比如: 我ping www.cns911.com后,那么在我主机中,www. cns911.com的IP对应项不是cns911的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。

  注意,这只是一个典型的例子,在实际操作中要考虑的问题还不只这些。
现在想想,如果他要用的是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网
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欺骗而让一个某种类型的广播包流入一个.

解决ARP攻击的方法

【故障原因】

  局域网内有人使用ARP欺骗的木马程序(比如:传奇盗号的软件,某些传奇外挂中也被恶意加载了此程序)。

【故障原理】

  要了解故障原理,我们先来了解一下ARP协议。

  在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。

  ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

  每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如下表所示。
主机 IP地址 MAC地址
A 192.168.16.1 aa-aa-aa-aa-aa-aa
B 192.168.16.2 bb-bb-bb-bb-bb-bb
C 192.168.16.3 cc-cc-cc-cc-cc-cc
D 192.168.16.4 dd-dd-dd-dd-dd-dd

  
  我们以主机A(192.168.16.1)向主机B(192.168.16.2)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.16.2的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.16.2的MAC地址是bb-bb-bb-bb-bb-bb”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。

  从上面可以看出,ARP协议的基础就是信任局域网内所有的人,那么就很容易实现在以太网上的ARP欺骗。对目标A进行欺骗,A去Ping主机C却发送到了DD-DD-DD-DD-DD-DD这个地址上。如果进行欺骗的时候,把C的MAC地址骗为DD-DD-DD-DD-DD-DD,于是A发送到C上的数据包都变成发送给D的了。这不正好是D能够接收到A发送的数据包了么,嗅探成功。

  A对这个变化一点都没有意识到,但是接下来的事情就让A产生了怀疑。因为A和C连接不上了。D对接收到A发送给C的数据包可没有转交给C。

  做“man in the middle”,进行ARP重定向。打开D的IP转发功能,A发送过来的数据包,转发给C,好比一个路由器一样。不过,假如D发送ICMP重定向的话就中断了整个计划。

  D直接进行整个包的修改转发,捕获到A发送给C的数据包,全部进行修改后再转发给C,而C接收到的数据包完全认为是从A发送来的。不过,C发送的数据包又直接传递给A,倘若再次进行对C的ARP欺骗。现在D就完全成为A与C的中间桥梁了,对于A和C之间的通讯就可以了如指掌了。

【故障现象】

  当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网现在转由通过病毒主机上网,切换的时候用户会断一次线。

  切换到病毒主机上网后,如果用户已经登陆了传奇服务器,那么病毒主机就会经常伪造断线的假像,那么用户就得重新登录传奇服务器,这样病毒主机就可以盗号了。

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

【HiPER用户快速发现ARP欺骗木马】

  在路由器的“系统历史记录”中看到大量如下的信息(440以后的路由器软件版本中才有此提示):
  MAC Chged 10.128.103.124
  MAC Old 00:01:6c:36:d1:7f
  MAC New 00:05:5d:60:c7:18

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

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

【在局域网内查找病毒主机】

   在上面我们已经知道了使用ARP欺骗木马的主机的MAC地址,那么我们就可以使用NBTSCAN( 点击下载)工具来快速查找它。

  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(这里需要根据用户实际网段输入),回车。

C:Documents and SettingsALAN>C:nbtscan -r 192.168.16.1/24
Warning: -r option not supported under Windows. Running without it.

Doing NBT name scan for addresses from 192.168.16.1/24

IP address NetBIOS Name Server User MAC address
——————————————————————————
192.168.16.0 Sendto failed: Cannot assign requested address
192.168.16.50 SERVER 00-e0-4c-4d-96-c6
192.168.16.111 LLF ADMINISTRATOR 00-22-55-66-77-88
192.168.16.121 UTT-HIPER 00-0d-87-26-7d-78
192.168.16.175 JC 00-07-95-e0-7c-d7
192.168.16.223 test123 test123 00-0d-87-0d-58-5f

  

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

【解决思路】

    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的欺骗有可能导致陷阱包丢失。

【HiPER用户的解决方案】

  建议用户采用双向绑定的方法解决并且防止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 SettingsAll Users「开始」菜单程序启动”。

  2、在路由器上绑定用户主机的IP和MAC地址(440以后的路由器软件版本支持):

  在HiPER管理界面–高级配置–用户管理中将局域网每台主机均作绑定。

PS:本来写了半天的,结果在点提交的时候却说我登陆信息已失效,退回后原来的全都没了 [35]
于是就偷懒找了这么两篇来凑数,唉…以后一定要记得提交前先备份的

Windows Live Safety Center Beta

Windows Live Safety Center 是一项免费服务,旨在帮助确保计算机的安全。

[list]
[*]检查并删除病毒
[*]了解威胁
[*]提高计算机性能
[*]清除硬盘中的垃圾内容[/list]

http://safety.live.com/
其实是很早就推出的一项Live服务了,只不过最近才出的中文版
今天一时兴起试用了下,居然还真给查出一病毒来截了几张图

PS: Windows Live 首页该头换面了,不知道中文版什么时候推出

事过境迁

今天和一已婚哥们儿喝了点闷酒,之间提到了很多次”事过境迁“这个词
嗯,其实我这篇日志很早就想写了,可是因为工作忙,写了一点就给搁下来了
那么好吧,今天的标题就叫”事过境迁“了。

最近实在是很忙,一堆杂七杂八的事全堆到我手上来了。
再加上一些个人问题,实在是让我感觉很烦闷啊,也不知道该说些什么…
下面就逐条记录点这段时间里的东西吧。
1、与论坛垃圾散布者作了场生死搏斗, 俺的水坛 五一之后突然来了个无聊的机器人,每天都要跑我那片荒地上浇水,怎么赶都赶不走,还跑去PHPwind官方去 发贴求助 ,无果。最后不得已,给加了条禁止注册带数字的ID,才算完事。不过至今也没明白为什么我采取的其它方法都无效呢…
2、因为LBS^2并不支持RSS的全文输出,于是给blog额外加了个: 全文输出地址 。不过发现这个地址在ZHUAXIA中始终无法显示全文,不知是何解…
3、因为近期工作关系,去了好几趟市委大院,发现作为一个普通老百姓,想进这么门的话真的很不容易….
4、还是因为工作关系,也去了好几回高新区管委会,发现官越小,架子就越大这个定理在哪个时代都很通用…
5、昨天和今天一时心血来潮,跑去看了看几处房子,才发现西安的房价上涨的速度远超出我的想像,下周有空再去长安区看看…
6、另外还看了两部韩剧,从《宫》到《MY GIRL》。呵呵,尽管 某人 曾嘲笑我说已经沦落到和他LP一个档次的了,但我觉得这种浪漫韩剧还是值得适当看看的,至少能给我那灰色而颓废的生活稍微增添些许颜色吧…
7、居然都凑到七了,不容易啊,下面该写点啥呢?嗯?下面…下面已经没有了吧…

http://www.xj2005.com/bbs/UploadFile/2005-10/200510100495893162.mp3|wmp|400|60

凑数Ⅱ

实在想不出该用什么标题,只好给整这么个Title了
嗯..下次再有这种情况是不是就该用“无题Ⅱ”了呢,呵呵…

五一回了趟家,因担心节后不好买票,提前于四号就返回西安
之后的几天都是无所事事,刚好我以前常去的论坛 MFL 也挂掉了
于是就跑到 DOUBAN ALLMOV 去看影评,看到有评价不错的片子就下载来看
不过奇怪的大部分的影片我看过后都觉得不咋滴,嗯..看来我的思想层次还是不够深 [03]
其余的时候就去 ZHUAXIA 在线订阅RSS看了
说到在线阅读,我觉得“抓虾”做得还是蛮不错的
像其它的 BLOGLINE Google Reader 也都有用过
ZhuaXia在某些方面应该是借鉴这两者的说,反正对我是够用了。(呃..好像再说下去就有做广告的嫌疑了 [21] )

顺便还试用了下Google的 在线编辑器Writely,功能不错
唯一的缺点是对中文支持不太好,字体都没得选。
获得此邀请的方法也很简单,只需要给 这个地址 发封邮件就行了
此方法来源于: google.vc
从网站的 About 来看,此站长应该也是个 Google Fans 的说。

近几天我的QQ又开始抽风了,经常莫明其妙的就自动下线,消息也是动不动就收不到
有时候又突然给我蹦出几条过期的信息来,真不知道这QQ会员的价值体现在哪里了…

PS:顺便再给我的一代Qmm征个婚,不论贫穷富贵,不论相貌如何,欢迎各位成年Qgg前来报名,呵呵..

如果我是你的女朋友

不知道这个喵喵是何许人也,估计是打着灯笼也难找的吧…

回来

歌曲:回来
歌手:张信哲 专辑:回来

过去很熟悉现在不懂你
想看你眼睛你却给我背影
就像满天星都跌进大海里
我被放逐的心又要往那里去
我们再也回不去了对不对
就算曾经几乎拥有幸福的完美
你的心回不去了对不对
你要的再也不是我能给
我们再也回不去了对不对
眼看就要让满心遗憾为爱受罪
你的心回不去了对不对
不能去怪谁
顶多只能掉眼泪
如果问原因可能更承受不起
若就这样离去我又很难平静
从你的泪滴我找到被爱过的证据
有冲动想哭泣只好紧紧抱你

http://www.kkkmp3.com/music/zxz/21.mp3|wmp|400|50