windows nt wardoc中文译本二

/ns/wz/sys/data/20010129103505.htm

WINDOWS NT WARDOC中文译本(二)

网络入侵者可以通过上表和从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是Mnemonix编写的一个perl脚本,它将使这个SID进程自动化,从而大大 缩短网络入侵者收集这些消息所花费的时间。
这时,网络入侵者就会了解到哪些服务正在远程机上运行以及已经安装了哪些主要的
软件包(有限的),同时还能得到该机器上有效的用户名和群组列表。尽管这似乎是一个 外来者所要掌握的有关您的网络的信息,但是,空IPC会话已经为信息收集留下了其它隐 患。目前,Rhino9小组已经能够检索远程机的全部固有安全约束规则。帐户封锁、最小口 令长度、口令使用周期、口令唯一性设置以及每一个用户、他们所归属的群组以及该用户 的个人域限制等所有信息都可以通过一个IPC空会话获得。这个信息收集功能将在近期发 布的Leviathan工具(由Rhino9小组编写)中提供。下面将对目前可用的一些工具进行探讨,这些工具可用来通过空IPC会话收集更多的信息。
--

有了这个空IPC会话,网络入侵者也能获得网络共享列表,否则就无法得到。为此,
网络入侵者希望了解到在您的机器上有哪些可用的网络共享。为了收集到这些信息,要采
用下列这个标准的net view命令:
c:\>net view \\[远程主机的IP地址]
根据目标机的安全约束规则,可以拒绝或不拒绝这个列表。举例如下(因某种原因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机器及其域活动状态的 lmhosts文件中(下面详述)。然后把表目预加载到NetBIOS高速缓存器中,同时建立一个 空IPC会话。正如您所看到的,这个命令是根据域名发出的。最后,该工具会向主域控制器查询这个域。

global: 这个命令行实用程序显示远程服务器或域上全局群组的成员。如上所述,这个实用程序是与Lmhosts/IPC映射一起使用的。下面是global工具的实际俘获。在这个例子中,“域用户”是WindowsNT域中出现的标准默认全局群组。我们在此采用这个工具向 Domain1查询“域用户”群组中所有用户的列表。
C:\>global “Domain Users” domain1
Bob
SPUPPY$
BILLY BOB$
Bill
IUSR_BILLY BOB
IWAM_BILLY BOB
IUSR_SPUPPY
IWAM_SPUPPY
local: local工具象global工具一样操作,不同之处是,它向机器查询本地群组的成员,
而不是全局群组的成员。下面是local工具向服务器查询其管理员群组列表的例子。
C:\>local “administrators” domain1
Bob
Domain Admins
Bill
NetDom:NetDom是一个向服务器查询它在域中的角色以及向机器查询其PDC的工具。另外,
NetDom工具还与Lmhosts/IPC映射协同工作。下面是该工具的俘获信息及其标准输出:
Querying domain information on computer \\SPUPPY…
The computer \\SPUPPY is a domain controller of DOMAIN4.
Searching PDC for domain DOMAIN4…
Found PDC \\SPUPPY
The computer \\SPUPPY is the PDC of DOMAIN4.
NetWatch:NetWatch是一个向调用该工具的用户提供远程机上的共享列表的工具。同样, 这个工具也能与Lmhosts/IPC映射一起使用。这个工具的缺点是,人们能够利用该工具来检索远程机上的隐藏共享列表(Rhino9小组已经测试过)。
--

其它涉及到IPC共享的渗透方法包括打开远程机的注册表以及远程域用户管理器。空
IPC连接使网络入侵者能够对您的注册表进行访问。一旦建立了空IPC会话,网络入侵者就 能启用其本地注册表编辑器实用程序,并尝试连接网络注册表选项。如果尝试成功,入侵 者就会对一定的注册表键具有只读访问权限,甚至是读/写权限。无论如何,就算对注册 表只有只读访问权限,从安全角度来讲这也是非常有害的。
另外,网络入侵者还会利用IPC域用户管理器方法。这个方法鲜为人知。我们在这里
涉及到这个问题是因为它是一个非常有效的入侵方法。这个方法涉及到一个空IPC会话和输入LMHOSTS文件的表目。LMHOSTS文件(在一般情况下)是一个保存在基于Windows的机 器上的本地文件,用于把NetBIOS名字映射到IP地址。LMHOSTS文件主要用在非WINS环境中 或者不能使用WINS的客户机上,而实际上,网络入侵者可以通过很多种不同的方式来使用 这个文件。我们将在下文中对LMHOSTS文件的不同使用方法进行探讨。现在我们对如何在 这个方法中使用LMHOSTS文件进行论述。
这是一个绝妙的方法,因为它能说明如何把前面介绍的方法与这个方法结合起来使用
从而达到网络入侵者的目的。我们先从端口扫描程序开始,假设端口139是开放的,攻击者就会发出一个nbtstat命令。然后,他会通过nbtstat结果收集远程机的NetBIOS名字。
让我们来看看得出的nbtstat结果,与前面的结果相同:
C:\>nbtstat -A 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> UNIQUE Registered
DATARAT <01> UNIQUE Registered
MAC Address = 00-00-00-00-00-00
--

通过检查nbtstat命令的结果,我们可以找到<03>识别符。如果有人从本地登录到该
机器上,您就会看到两个<03>识别符。在一般情况下,第一个<03>识别符是机器的
netbios名字,第二个<03>识别符是本地登录用户的名字。这时,网络入侵者就会把这台 机器的netbios名字和IP地址映射放到他本地的LMHOSTS文件中,用#PRE和#DOM标签终止表 目。#PRE标签表示应该把表目预加载到netbios高速缓存器中。#DOM标签表示域活动。这 时,网络入侵者就会发出一个nbtstat CR命令,把表目预加载到他的高速缓存器中。从 技术角度来讲,这个预加载会使表目看起来好象已经由一些网络功能解析过,并使名字解 析起来更加快捷。