您的位置:首页 > 其它

ARP攻击原理及解决方法与CMD命令分类(1)

2014-08-08 13:43 253 查看
ARP攻击原理及解决方法与CMD命令分类
ARP攻击原理及解决方法与CMD命令
【故障原因】
局域网内有人使用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 inthe 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(下载地址:http://down.wglm.net/Software/catalog21/339.html)工具来快速查找它。
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:/Documentsand Settings/ALAN>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 NetBIOSName Server User MAC address
------------------------------------------------------------------------------
192.168.16.0 Sendto failed: Cannot assign requested address
192.168.16.50 SERVER <server> <unknown> 00-e0-4c-4d-96-c6
192.168.16.111 LLF <server> ADMINISTRATOR 00-22-55-66-77-88
192.168.16.121 UTT-HIPER <server> <unknown> 00-0d-87-26-7d-78
192.168.16.175 JC <server> <unknown> 00-07-95-e0-7c-d7
192.168.16.223 test123 <server> 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<HiPER管理界面--端口配置--局域网端口MAC地址>)。
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地址(440以后的路由器软件版本支持):
在HiPER管理界面--高级配置--用户管理中将局域网每台主机均作绑定。
【参考文献】
Refdom写的《交换网络中的嗅探和ARP欺骗》,http://www.xfocus.net
Nbtscan软件源出处http://www.inetcat.org/software/nbtscan.html

命令
1.最基本,最常用的,测试物理网络的
ping192.168.0.8 -t ,参数-t是等待用户去中断测试
2.查看DNS、IP、Mac等
A.Win98:winipcfg
B.Win2000以上:Ipconfig/all
C.NSLOOKUP:如查看河北的DNS
C:\>nslookup
DefaultServer: ns.hesjptt.net.cn
Address:202.99.160.68
>server202.99.41.2 则将DNS改为了41.2
>pop.pcpop.com
Server:ns.hesjptt.net.cn
Address:202.99.160.68
Non-authoritativeanswer:
Name:pop.pcpop.com
Address:202.99.160.212
3.网络信使
Net send 计算机名/IP* (广播) 传送内容,注意不能跨网段
net stopmessenger 停止信使服务,也可以在面板-服务修改
net startmessenger 开始信使服务
4.探测对方对方计算机名,所在的组、域及当前用户名(追捕的工作原理)
ping -a IP -t ,只显示NetBios名
nbtstat-a 192.168.10.146 比较全的
5.netstat -a 显示出你的计算机当前所开放的所有端口
netstat-s -e 比较详细的显示你的网络资料,包括TCP、UDP、ICMP 和 IP的统计等
6.探测arp绑定(动态和静态)列表,显示所有连接了我的计算机,显示对方IP和MAC地址
arp -a
7.在代理服务器端
  捆绑IP和MAC地址,解决局域网内盗用IP!:
ARP -s192.168.10.59 00 -50-ff-6c-08-75
  解除网卡的IP与MAC地址的绑定:
arp -d 网卡IP
8.在网络邻居上隐藏你的计算机
netconfig server /hidden:yes
netconfig server /hidden:no 则为开启
9.几个net命令
A.显示当前工作组服务器列表 net view,当不带选项使用本命令时,它就会显示当前域或网络上的计算机上的列表。
  比如:查看这个IP上的共享资源,就可以
C:\>netview 192.168.10.8
  在192.168.10.8 的共享资源
  资源共享名类型用途注释
--------------------------------------
  网站服务 Disk
  命令成功完成。
B.查看计算机上的用户帐号列表 net user
C.查看网络链接 net use
  例如:net usez: \192.168.10.8\movie 将这个IP的movie共享目录映射为本地的Z盘
D.记录链接 netsession
  例如:C:\>net session
  计算机用户名客户类型打开空闲时间
-------------------------------------------------------------------------------
\192.168.10.110ROME Windows 2000 2195 0 00:03:12
\192.168.10.51ROME Windows 2000 2195 0 00:00:39
  命令成功完成。
10.路由跟踪命令
A.tracertpop.pcpop.com
B.pathpingpop.pcpop.com 除了显示路由外,还提供325S的分析,计算丢失包的%
11.关于共享安全的几个命令
A.查看你机器的共享资源 net share
B.手工删除共享(可以编个bat文件,开机自运行,把共享都删了!)
net sharec$ /d
net shared$ /d
net shareipc$ /d
net shareadmin$ /d
  注意$后有空格。
C.增加一个共享:
c:\netshare mymovie=e:\downloads\movie /users:1
mymovie 共享成功。
  同时限制链接用户数为1人。
12.在DOS行下设置静态IP
A.设置静态IP
CMD
netsh
netsh>int
interface>ip
interface ip>set add \"本地链接\" static IP地址 mask gateway
B.查看IP设置
interfaceip>show address
Arp
  显示和修改“地址解析协议 (ARP)”缓存中的项目。ARP 缓存中包含一个或多个表,它们用于存储 IP 地址及其经过解析的以太网或令牌环物理地址。计算机上安装的每一个以太网或令牌环网络适配器都有自己单独的表。如果在没有参数的情况下使用,则 arp 命令将显示帮助信息。
  语法
arp [-a[InetAddr] [-N IfaceAddr]] [-g [InetAddr] [-N IfaceAddr]] [-d InetAddr[IfaceAddr]] [-s InetAddr EtherAddr [IfaceAddr]]
  参数
-a[InetAddr] [-N IfaceAddr]
  显示所有接口的当前 ARP 缓存表。要显示指定 IP 地址的 ARP 缓存项,请使用带有 InetAddr 参数的 arp -a,此处的 InetAddr 代表指定的 IP 地址。要显示指定接口的 ARP 缓存表,请使用 -N IfaceAddr 参数,此处的 IfaceAddr 代表分配给指定接口的 IP 地址。-N 参数区分大小写。
-g[InetAddr] [-N IfaceAddr]
  与 -a 相同。
-dInetAddr [IfaceAddr]
  删除指定的 IP 地址项,此处的 InetAddr 代表 IP 地址。对于指定的接口,要删除表中的某项,请使用 IfaceAddr 参数,此处的 IfaceAddr 代表分配给该接口的 IP 地址。要删除所有项,请使用星号 (*) 通配符代替 InetAddr。
-sInetAddr EtherAddr [IfaceAddr]
  向 ARP 缓存添加可将 IP 地址 InetAddr解析成物理地址 EtherAddr 的静态项。要向指定接口的表添加静态 ARP 缓存项,请使用 IfaceAddr 参数,此处的 IfaceAddr 代表分配给该接口的 IP 地址。
在命令提示符显示帮助。
  注释
InetAddr 和IfaceAddr 的 IP 地址用带圆点的十进制记数法表示。
  物理地址EtherAddr 由六个字节组成,这些字节用十六进制记数法表示并且用连字符隔开(比如,00-AA-00-4F-2 A-9C)。
  通过 -s 参数添加的项属于静态项,它们不会 ARP 缓存中超时。如果终止 TCP/IP 协议后再启动,这些项会被删除。要创建永久的静态 ARP 缓存项,请在批处理文件中使用适当的 arp 命令并通过“计划任务程序”在启动时运行该批处理文件。
  只有当网际协议 (TCP/IP) 协议在网络连接中安装为网络适配器属性的组件时,该命令才可用。
  范例
  要显示所有接口的 ARP 缓存表,可键入:
arp -a
  对于指派的 IP 地址为 10.0.0.99 的接口,要显示其 ARP 缓存表,可键入:
arp -a -N10.0.0.99
  要添加将 IP 地址10.0.0.80 解析成物理地址 00-AA-00-4F-2 A-9C 的静态 ARP 缓存项,可键入:
arp -s 10.0.0.8000-AA-00-4F-2 A-9C
At
  计划在指定时间和日期在计算机上运行命令和程序。at 命令只能在“计划”服务运行时使用。如果在没有参数的情况下使用,则 at 列出已计划的命令。
  语法
at[\\ComputerName] [{[ID] [/delete]/delete [/yes]}]
at[[\\ComputerName] hours:minutes [/interactive] [{/every:date[,...]/next:date[,...]}]command]
  参数
\\computername
  指定远程计算机。如果省略该参数,则 at 计划本地计算机上的命令和程序。
ID
  指定指派给已计划命令的识别码。
/delete
  取消已计划的命令。如果省略了 ID,则计算机中所有已计划的命令将被取消。
/yes
  删除已计划的事件时,对来自系统的所有询问都回答“是”。
hours:minutes
  指定命令运行的时间。该时间用 24 小时制(即从 00:00 [午夜] 到 23:59)的小时: 分钟格式表示。
/interactive
  对于在运行 command 时登录的用户,允许 command 与该用户的桌面进行交互。
/every:
  在每个星期或月的指定日期(例如,每个星期四,或每月的第三天)运行 command 命令。
date
  指定运行命令的日期。可以指定一周的某日或多日(即,键入 M、T、W、Th、F、S、Su)或一个月中的某日或多日(即,键入从 1 到31 之间的数字)。用逗号分隔多个日期项。如果省略了 date,则 at 使用该月的当前日。
/next:
  在下一个指定日期(比如,下一个星期四)到来时运行 command。
command
  指定要运行的 Windows 命令、程序(.exe 或 .com 文件)或批处理程序(.bat 或 NaNd 文件)。当命令需要路径作为参数时,请使用绝对路径,也就是从驱动器号开始的整个路径。如果命令在远程计算机上,请指定服务器和共享名的通用命名协定 (UNC) 符号,而不是远程驱动器号。
/?
  在命令提示符显示帮助。
  注释
Schtasks 是功能更为强大的超集命令行计划工具,它含有 at 命令行工具中的所有功能。对于所有的命令行计划任务,都可以使用 schtasks 来替代 at。有关 schtasks 的详细信息,请参阅“相关主题”。
  使用 at
  使用 at 命令时,要求您必须是本地 Administrators 组的成员。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: