标题:
[转帖]netbios 渗透
[打印本页]
作者:
ghand
时间:
2003-1-2 22:16
标题:
[转帖]netbios 渗透
有很多人问过我这个问题~可我一直没时间回答~所以,在这里我回答你~ :-) (算不算懒啊?我不知道) netbios的漏洞一般人还没引起注意,所以我用了很多回,都成功了` 现在的QQ完美版里可以查你是不是有netbios,所以么~呵呵` 好了,言归正转: 当攻击基于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 邮件服务 \\_M好好学习ROWSE_ 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会话收集更多的信息. 现在我们对如何在这个方法中使用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命令,把表目预加载到他的高速缓存器 中。从技术角度来讲,这个预加载会使表目看起来好象已经由一些网络功能解析过,并使名字解析起来更加快捷。 下一步,网络入侵者会建立一个空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安装在:\winnt目录下,ADMIN$就映射到该驱动器的确切位置)。Rhino9小组已经注意到,大多数NT安全界人士似乎都不大重视这个从一台内部NT机渗透另一台内部NT机的概念。在我们的专业检查过程中,Rhino9小组已经多次完成了这项任务。问题是,如果网络入侵者是有心的并能得到对您的一台机器的访问权限,他就会悄悄地潜入其余的网络机器。因此,这些共享攻击会造成严重的威胁。 (旁注:Rhino9小组曾经对位于佛罗里达州的一家大型ISP进行远程渗透检查。我们 先得到其技术人员个人机器上的共享访问权限,然后从那里得到整个网络的访问 权限。这是完全可以办到的。)
欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/)
Powered by Discuz! 7.2