Chinaunix首页 | 论坛 | 博客
  • 博客访问: 543311
  • 博文数量: 56
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 2255
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-18 20:14
文章分类

全部博文(56)

文章存档

2011年(1)

2009年(6)

2008年(49)

我的朋友

分类: 网络与安全

2008-09-16 19:33:54

网络入侵者通常采取的第一步是通过端口扫描程序扫描目标机或网络。令人吃惊的是,以目标机的开放端口为基础对网络进行的攻击是多么的有条不紊。您应该清楚,除了Unix机外,这是NT机显示不同开放端口的标准。网络入侵者懂得查看端口扫描程序,并通过相当准确的结果来断定它是一台NT机还是一台Unix机。当然也有一些例外,但一般情况下都能这样做。最近,业界发布了几个用来远程鉴别机器的工具,但该功能目前还不能用于NT。
  当攻击基于NT的网络时,NetBIOS往往是首选的攻击对象。因此,NetBIOS就成为本文中第一个要探讨的重要课题。用NetBIOS进行信息收集相当容易,虽然要花费一点时间。etBIOS一般被看作是开销,很大的大容量,速度往往很慢,这也就是要耗费时间的原因。如果端口扫描程序报告端口139在目标机上是开放的,那么接下来就是一个很自然的过程。第一步是发出NBTSTAT命令。
  
  
  NBTSTAT命令可以用来查询涉及到NetBIOS信息的网络机器。另外,它还可以用来消除NetBIOS高速缓存器和预加载LMHOSTS文件。这个命令在进行安全检查时非常有用。
  用法:nbtstat [-a RemoteName] [-A IP_address] [-c] [-n] [-R] [-r] [-S]
  [-s]
  [interval]
  参数-a列出为其主机名提供的远程计算机名字表。
  -A列出为其IP地址提供的远程计算机名字表。
  -c列出包括了IP地址的远程名字高速缓存器。
  -n列出本地NetBIOS名字。
  -r列出通过广播和WINS解析的名字。
  -R消除和重新加载远程高速缓存器名字表。
  -S列出有目的地IP地址的会话表。
  -s列出会话表对话。
  NBTSTAT生成的列标题具有以下含义:
  Input
  接收到的字节数。
  Output
  发出的字节数。
  In/Out
  无论是从计算机(出站)还是从另一个系统连接到本地计算机(入站)。
  Life
  在计算机消除名字表高速缓存表目前“度过”的时间。
  Local Name
  为连接提供的本地NetBIOS名字。
  Remote Host
  远程主机的名字或IP地址。
  Type
  一个名字可以具备两个类型之一:unique or group
  在16个字符的NetBIOS名中,最后一个字节往往有具体含义,因为同一个名可以在同一台计算机上出现多次。这表明该名字的最后一个字节被转换成了16进制。
  State
  NetBIOS连接将在下列“状态”(任何一个)中显示:
  状态含义:
  Accepting: 进入连接正在进行中。
  Associated: 连接的端点已经建立,计算机已经与IP地址联系起来。
  Connected: 这是一个好的状态!它表明您被连接到远程资源上。
  Connecting: 您的会话试着解析目的地资源的名字-IP地址映射。
  Disconnected: 您的计算机请求断开,并等待远程计算机作出这样的反应。
  Disconnecting: 您的连接正在结束。
  Idle: 远程计算机在当前会话中已经打开,但现在没有接受连接。
  Inbound: 入站会话试着连接。
  Listening: 远程计算机可用。
  Outbound: 您的会话正在建立TCP连接。
  Reconnecting: 如果第一次连接失败,就会显示这个状态,表示试着重新连接
  
  下面是一台机器的NBTSTAT反应样本:
  C:\>nbtstat CA x.x.x.x
  NetBIOS Remote Machine Name Table
  Name Type Status
  ---------------------------------------------
  DATARAT <00> UNIQUE Registered
  R9LABS <00> GROUP Registered
  DATARAT <20> UNIQUE Registered
  DATARAT <03> UNIQUE Registered
  GHOST <03> UNIFQUE Registered
  DATARAT <01> UNIQUE Registered
  MAC Address = 00-00-00-00-00-00
  您通过下表能掌握有关该机器的哪些知识呢?
  名称编号类型的使用:
  00 U 工作站服务
  01 U 邮件服务
  \\_MSBROWSE_ 01 G 主浏览器
  03 U 邮件服务
  06 U RAS服务
  1F U NetDDE服务
  20 U 文件服务
  21 U RAS客户机服务
  22 U Exchange Interchange
  23 U Exchange Store
  24 U Exchange Directory
  30 U 调制解调器共享服务器服务
  31 U 调制解调器共享客户机服务
  43 U SMS客户机远程控制
  44 U SMS管理远程控制工具
  45 U SMS客户机远程聊天
  46 U SMS客户机远程传输
  4C U DEC Pathworks TCP/IP服务
  52 U DEC Pathworks TCP/IP服务
  87 U Exchange MTA
  6A U Exchange IMC
  BE U网络监控代理
  BF U网络监控应用
  03 U邮件服务
  00 G域名
  1B U域主浏览器
  1C G域控制器
  1D U主浏览器
  1E G浏览器服务选择
  1C G Internet信息服务器
  00 U Internet信息服务器
  [2B] U Lotus Notes服务器
  IRISMULTICAST [2F] G Lotus Notes
  IRISNAMESERVER [33] G Lotus Notes
  Forte_$ND800ZA [20] U DCA Irmalan网关服务
  Unique (U): 该名字可能只有一个分配给它的IP地址。在上,一个要注册的名字可以出现多次,但其后缀是唯一的,从而使整个名字是唯一的。
  Group (G): 一个正常的群;一个名字可以有很多个IP地址。
  Multihomed (M): 该名字是唯一的,但由于在同一台计算机上有多个网络接口,这个配置可允许注册。这些地址的最大编号是25。
  Internet Group (I): 这是用来管理WinNT域名的组名字的特殊配置。
  Domain Name (D): NT 4.0提供的新内容。
  网络入侵者可以通过上表和从nbtstat获得的输出信息开始收集有关您的机器的信息。
  有了这些信息,网络入侵者就能在一定程度上断定有哪些服务正在目标机上运行,有时也能断定已经安装了哪些软件包。从传统上讲,每个服务或主要的软件包都具有一定的脆弱性,因此,这一类型的 信息 对网络入侵者当然有用。
第二篇,主要讲建立空连接。
  第二个逻辑步骤是通过远程机收集可能的用户名。网络登录包括两个部分:用户名和口令。一旦网络入侵者掌握了有效的用户列表,他就能获得一半的有效登录信息。现在,采用了nbtstat命令,网络入侵者就能掌握从本地注册到该台机器上的任何人的登 录名。 在通过nbtstat命令得到的结果中,采用<03>识别符的表目是用户名或机器名。另 外,还 可以通过空IPC会话和SID工具来收集用户名(详细内容见“SID工具”,附录B) 。 IPC$(进程间通信)共享是NT主机上一个标准的隐藏共享,主要用于服务器到服 务器 的通信。NT主机用来互相连接并通过这个共享来获得各种必要的信息。鉴于在各 种操作系 统中都有很多设计特征,网络入侵者已经懂得利用这种特征来达到他们的目的。 通过连接 这个共享,网络入侵者从技术上就能够实现与您的服务器的有效连接。通过与这 个共享的空连,网络入侵者就能够在不需要提供任何身份证明的情况下建立这一连接。
  
  要与IPC$共享进行空连接,网络入侵者就在命令提示符下发出如下命令:
  c:\>net use \\[目标主机的IP地址]\ipc$ "" /user:""
  如果连接成功,网络入侵者就会有很多事情可做,不只是收集用户列表,不过他是以收集用户列表开始的。如上所述,这个方法需要一个空IPC会话和SID工具。由Evgenii Rudnyi编写的SID工具包括两个不同的部分:User2sid和Sid2user。User2sid采 用一个帐户名字或群组,给您一个对应的SID。而Sid2user采用一个SID,给您对 应的用户或群组的名字。作为一个独立的工具,这个进程是手工进行的,要消耗大量的时间。 Userlist.pl是monix编写的一个perl脚本,它将使这个SID进程自动化,从而 大大 缩短网络入侵者收集这些消息所花费的时间。
  这时,网络入侵者就会了解到哪些服务正在远程机上运行以及已经安装了哪些主要的软件包(有限的),同时还能得到该机器上有效的用户名和群组列表。尽管这似乎是一个外来者所要掌握的有关您的网络的信息,但是,空IPC会话已经为信息收集留下了其它隐患。目前,Rhino9小组已经能够检索远程机的全部固有安全约束规则。帐户封锁 、最小口 令长度、口令使用周期、口令唯一性设置以及每一个用户、他们所归属的群组以 及该用户的个人域限制等所有信息都可以通过一个IPC空会话获得。这个信息收集功能将在近期发布的eviathan工具(由Rhino9小组编写)中提供。下面将对目前可用的一些工具进行探讨,这些工具可用来通过空IPC会话收集更多的信息.
  
  有了这个空IPC会话,网络入侵者也能获得网络共享列表,否则就无法得到。为此,网络入侵者希望了解到在您的机器上有哪些可用的网络共享。为了收集到这些信息,要采用下列这个标准的net view命令:
  c:\>net view \\[远程主机的IP地址]
  根据目标机的安全约束规则,可以拒绝或不拒绝这个列表。举例如下:
  C:\>net view \\0.0.0.0
  System error 5 has occurred.
  Access is denied.
  C:\>net use \\0.0.0.0\ipc$ "" /user:""
  The command completed successfully.
  C:\>net view \\0.0.0.0
  Shared resources at \\0.0.0.0
  Share name Type Used as Comment
  -----------------------------------------------------
  
  Accelerator Disk Agent Accelerator share for Seagate backup
  Inetpub Disk
  mirc Disk
  NETLOGON Disk Logon server share
  www_pages Disk
  The command completed successfully.
  正如您所看到的,该服务器上的共享列表在建立了空IPC会话后才可用。这时,您就会意识到这个IPC连接有多么的危险,但我们现在已经掌握的IPC方法实际上是很基本的方法。与IPC共享一起出现的可能性还有待进一步研究。WindowsNT 4.0资源工具的发布使得象管理员和网络入侵者这样的人能够用到新的工具。下面对一些资源工具实用程序进行描述。Rhino9小组运用这些实用程序与IPC$空会话 一起收集信息。当您阅读这些工具的描述以及它们所提供的信息时,请记住:所 采用的空 会话不向远程网络提供任何真实的身份证明。
  UsrStat: 这个命令行实用程序显示特定域中各个用户的用户名、全名以及最后一次登录的日期和时间。下面是根据远程网络通过一个空IPC会话采用这个工具进行的实际剪切和粘贴:
  C:\NTRESKIT>usrstat domain4
  Users at \\STUDENT4
  Administrator - - logon: Tue Nov 17 08:15:25 1998
  Guest - - logon: Mon Nov 16 12:54:04 1998
  IUSR_STUDENT4 - Internet Guest Account - logon: Mon Nov 16 15:19:26 1998
  IWAM_STUDENT4 - Web Application Manager account - logon: Never
  laurel - - logon: Never
  megan - - logon: Never
  
  我们现在来探讨一下整个俘获过程是怎么样发生的,以便于加深读者的理解。在真正的攻击发生前,把一个映射放到通过#PRE/#DOM标记映射Student4机器及其域活动状态的mhosts文件中(下面详述)。然后把表目预加载到NetBIOS高速缓存器中,同时建立一个空IPC会话。正如您所看到的,这个命令是根据域名发出的。最后,该工具会向主域控制器查询这个。
  其它涉及到IPC共享的渗透方法包括打开远程机的注册表以及远程域用户管理器。空IPC连接使网络入侵者能够对您的注册表进行访问。一旦建立了空IPC会话,网络入侵者就能启用其本地注册表编辑器实用程序,并尝试连接网络注册表选项。如果尝试成 功,入侵者就会对一定的注册表键具有只读访问权限,甚至是读/写权限。无论如何,就算对注册表只有只读访问权限,从安全角度来讲这也是非常有害的。
  另外,网络入侵者还会利用IPC域用户管理器方法。这个方法鲜为人知。我们在这里涉及到这个问题是因为它是一个非常有效的入侵方法。这个方法涉及到一个空IP C会话和输入LMHOSTS文件的表目。LMHOSTS文件(在一般情况下)是一个保存在基于Wind ows的机器上的本地文件,用于把NetBIOS名字映射到IP地址。LMHOSTS文件主要用在非WI NS环境中或者不能使用WINS的客户机上,而实际上,网络入侵者可以通过很多种不同的方式来使用这个文件。
阅读(1731) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~