黑客是如何发起攻击的?
目前造成网络不安全的主要因素是系统、协议及数据库等的设计上存在缺陷。由于当今的计算机网络操作系统在本身结构设计和代码设计时偏重考虑系统使用时的方便性,导致了系统在远程访问、权限控制和口令管理等许多方面存在安全漏洞。网络互连一般采用TCP/IP协议,它是一个工业标准的协议簇,但该协议簇在制订之初,对安全问题考虑不多,协议中有很多的安全漏洞。同样,数据库管理系统(DBMS)也存在数据的安全性、权限管理及远程访问等方面问题,在DBMS或应用程序中可以预先安置从事情报收集、受控激发、定时发作等破坏程序。
由此可见,针对系统、网络协议及数据库等,无论是其自身的设计缺陷,还是由于人为的因素产生的各种安全漏洞,都可能被一些另有图谋的黑客所利用并发起攻击。因此若要保证网络安全、可靠,则必须熟知黑客网络攻击的一般过程。只有这样方可在黒客攻击前做好必要的防备,从而确保网络运行的安全和可靠。
一、黑客攻击网络的一般过程
1、信息的收集
信息的收集并不对目标产生危害,只是为进一步的入侵提供有用信息。黑客可能会利用下列的公开协议或工具,收集驻留在网络系统中的各个主机系统的相关信息:
(1)TraceRoute程序 能够用该程序获得到达目标主机所要经过的网络数和路由器数。
(2)SNMP协议 用来查阅网络系统路由器的路由表,从而了解目标主机所在网络的拓扑结构及其内部细节。
(3)DNS服务器 该服务器提供了系统中可以访问的主机IP地址表和它们所对应的主机名。
(4)Whois协议 该协议的服务信息能提供所有有关的DNS域和相关的管理参数。
(5)Ping实用程序 可以用来确定一个指定的主机的位置或网线是否连通。
2、系统安全弱点的探测
在收集到一些准备要攻击目标的信息后,黑客们会探测目标网络上的每台主机,来寻求系统内部的安全漏洞,主要探测的方式如下:
(1)自编程序 对某些系统,互联网上已发布了其安全漏洞所在,但用户由于不懂或一时疏忽未打上网上发布的该系统的“补丁”程序,那么黒客就可以自己编写一段程序进入到该系统进行破坏。
(2)慢速扫描 由于一般扫描侦测器的实现是通过监视某个时间段里一台特定主机发起的连接的数目来决定是否在被扫描,这样黑客可以通过使用扫描速度慢一些的扫描软件进行扫描。
(3)体系结构探测 黑客利用一些特殊的数据包传送给目标主机,使其作出相对应的响应。由于每种操作系统的响应时间和方式都是不一样的,黒客利用这种特征把得到的结果与准备好的数据库中的资料相对照,从中便可轻而易举地判断出目标主机操作系统所用的版本及其他相关信息。
(4)利用公开的工具软件 像审计网络用的安全分析工具SATAN、Internet的电子安全扫描程序IIS等一些工具对整个网络或子网进行扫描,寻找安全方面的漏洞。
3、建立模拟环境,进行模拟攻击
根据前面两小点所得的信息,建立一个类似攻击对象的模拟环境,然后对此模拟目标进行一系列的攻击。在此期间,通过检查被攻击方的日志,观察检测工具对攻击的反应,可以进一步了解在攻击过程中留下的“痕迹”及被攻击方的状态,以此来制定一个较为周密的攻击策略。
4、具体实施网络攻击
入侵者根据前几步所获得的信息,同时结合自身的水平及经验总结出相应的攻击方法,在进行模拟攻击的实践后,将等待时机,以备实施真正的网络攻击。
二、协议欺骗攻击及其防范措施
1、源IP地址欺骗攻击
许多应用程序认为若数据包可以使其自身沿着路由到达目的地,并且应答包也可回到源地,那么源IP地址一定是有效的,而这正是使源IP地址欺骗攻击成为可能的一个重要前提。
假设同一网段内有两台主机A和B,另一网段内有主机X。B 授予A某些特权。X 为获得与A相同的特权,所做欺骗攻击如下:首先,X冒充A,向主机 B发送一个带有随机序列号的SYN包。主机B响应,回送一个应答包给A,该应答号等于原序列号加1。然而,此时主机A已被主机X利用拒绝服务攻击 “淹没”了,导致主机A服务失效。结果,主机A将B发来的包丢弃。为了完成三次握手,X还需要向B回送一个应答包,其应答号等于B向A发送数据包的序列号加1。此时主机X 并不能检测到主机B的数据包(因为不在同一网段),只有利用TCP顺序号估算法来预测应答包的顺序号并将其发送给目标机B。如果猜测正确,B则认为收到的ACK是来自内部主机A。此时,X即获得了主机A在主机B上所享有的特权,并开始对这些服务实施攻击。
要防止源IP地址欺骗行为,可以采取以下措施来尽可能地保护系统免受这类攻击:
(1)抛弃基于地址的信任策略 阻止这类攻击的一种十分容易的办法就是放弃以地址为基础的验证。不允许r类远程调用命令的使用;删除.rhosts 文件;清空/etc/hosts.equiv 文件。这将迫使所有用户使用其它远程通信手段,如telnet、ssh、skey等等。
(2)使用加密方法 在包发送到 网络上之前,我们可以对它进行加密。虽然加密过程要求适当改变目前的网络环境,但它将保证数据的完整性、真实性和保密性。
(3)进行包过滤 可以配置路由器使其能够拒绝网络外部与本网内具有相同IP地址的连接请求。而且,当包的IP地址不在本网内时,路由器不应该把本网主机的包发送出去。有一点要注意,路由器虽然可以封锁试图到达内部网络的特定类型的包。但它们也是通过分析测试源地址来实现操作的。因此,它们仅能对声称是来自于内部网络的外来包进行过滤,若你的网络存在外部可信任主机,那么路由器将无法防止别人冒充这些主机进行IP欺骗。
2、源路由欺骗攻击
在通常情况下,信息包从起点到终点所走的路是由位于此两点间的路由器决定的,数据包本身只知道去往何处,而不知道该如何去。源路由可使信息包的发送者将此数据包要经过的路径写在数据包里,使数据包循着一个对方不可预料的路径到达目的主机。下面仍以上述源IP欺骗中的例子给出这种攻击的形式:
主机A享有主机B的某些特权,主机X想冒充主机A从主机B(假设IP为aaa.bbb.ccc.ddd)获得某些服务。首先,攻击者修改距离X最近的路由器,使得到达此路由器且包含目的地址aaa.bbb.ccc.ddd的数据包以主机X所在的网络为目的地;然后,攻击者X利用IP欺骗向主机B发送源路由(指定最近的路由器)数据包。当B回送数据包时,就传送到被更改过的路由器。这就使一个入侵者可以假冒一个主机的名义通过一个特殊的路径来获得某些被保护数据。
为了防范源路由欺骗攻击,一般采用下面两种措施:
· 对付这种攻击最好的办法是配置好路由器,使它抛弃那些由外部网进来的却声称是内部主机的报文。
· 在路由器上关闭源路由。用命令no ip source-route。
三、拒绝服务攻击及预防措施
在拒绝服务攻击中,攻击者加载过多的服务将对方资源全部使用,使得没有多余资源供其他用户无法使用。SYN Flood攻击是典型的拒绝服务攻击。
SYN Flood常常是源IP地址欺骗攻击的前奏,又称半开式连接攻击,每当我们进行一次标准的TCP连接就会有一个三次握手的过程,而SYN Flood在它的实现过程中只有三次握手的前两个步骤,当服务方收到请求方的SYN并回送SYN-ACK确认报文后,请求方由于采用源地址欺骗等手段,致使服务方得不到ACK回应,这样,服务方会在一定时间内处于等待接收请求方ACK报文的状态,一台服务器可用的TCP连接是有限的,如果恶意攻击方快速连续的发送此类连接请求,则服务器的系统可用资源、网络可用带宽急剧下降,将无法向其它用户提供正常的网络服务。
为了防止拒绝服务攻击,我们可以采取以下的预防措施:
(1) 建议在该网段的路由器上做些配置的调整,这些调整包括限制Syn半开数据包的流量和个数。
(2)要防止SYN数据段攻击,我们应对系统设定相应的内核参数,使得系统强制对超时的Syn请求连接数据包复位,同时通过缩短超时常数和加长等候队列使得系统能迅速处理无效的Syn请求数据包。
(3)建议在路由器的前端做必要的TCP拦截,使得只有完成TCP三次握手过程的数据包才可进入该网段,这样可以有效地保护本网段内的服务器不受此类攻击。
(4)对于信息淹没攻击,我们应关掉可能产生无限序列的服务来防止这种攻击。比如我们可以在服务器端拒绝所有的ICMP包,或者在该网段路由器上对ICMP包进行带宽方面的限制,控制其在一定的范围内。
总之,要彻底杜绝拒绝服务攻击,最好的办法是惟有追根溯源去找到正在进行攻击的机器和攻击者。 要追踪攻击者可不是一件容易的事情,一旦其停止了攻击行为,很难将其发现。惟一可行的方法是在其进行攻击的时候,根据路由器的信息和攻击数据包的特征,采用逐级回溯的方法来查找其攻击源头。这时需要各级部门的协同配合方可有效果。
四、其他网络攻击行为的防范措施
协议攻击和拒绝服务攻击是黑客惯于使用的攻击方法,但随着网络技术的飞速发展,攻击行为千变万化,新技术层出不穷。下面将阐述一下网络嗅探及缓冲区溢出的攻击原理及防范措施。
1、针对网络嗅探的防范措施
网络嗅探就是使网络接口接收不属于本主机的数据。计算机网络通常建立在共享信道上,以太网就是这样一个共享信道的网络,其数据报头包含目的主机的硬件地址,只有硬件地址匹配的机器才会接收该数据包。一个能接收所有数据包的机器被称为杂错节点。通常账户和口令等信息都以明文的形式在以太网上传输,一旦被黑客在杂错节点上嗅探到,用户就可能会遭到损害。
对于网络嗅探攻击,我们可以采取以下措施进行防范:
(1)网络分段 一个网络段包括一组共享低层设备和线路的机器,如交换机,动态集线器和网桥等设备,可以对数据流进行限制,从而达到防止嗅探的目的。
(2)加密 一方面可以对数据流中的部分重要信息进行加密,另一方面也可只对应用层加密,然而后者将使大部分与网络和操作系统有关的敏感信息失去保护。选择何种加密方式这就取决于信息的安全级别及网络的安全程度。
(3)一次性口令技术 口令并不在网络上传输而是在两端进行字符串匹配,客户端利用从服务器上得到的Challenge和自身的口令计算出一个新字符串并将之返回给服务器。在服务器上利用比较算法进行匹配,如果匹配,连接就允许建立,所有的Challenge和字符串都只使用一次。
(4)禁用杂错节点 安装不支持杂错的网卡,通常可以防止IBM兼容机进行嗅探。
2、缓冲区溢出攻击及其防范措施
缓冲区溢出攻击是属于系统攻击的手段,通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。当然,随便往缓冲区中填东西并不能达到攻击的目的。最常见的手段是通过制造缓冲区溢出使程序运行一个用户shell,再通过shell执行其它命令。如果该程序具有root权限的话,攻击者就可以对系统进行任意操作了。
缓冲区溢出对网络系统带来了巨大的危害,要有效地防止这种攻击,应该做到以下几点:
(1)程序指针完整性检查 在程序指针被引用之前检测它是否改变。即便一个攻击者成功地改变了程序的指针,由于系统事先检测到了指针的改变,因此这个指针将不会被使用。
(2)堆栈的保护 这是一种提供程序指针完整性检查的编译器技术,通过检查函数活动记录中的返回地址来实现。在堆栈中函数返回地址后面加了一些附加的字节,而在函数返回时,首先检查这个附加的字节是否被改动过。如果发生过缓冲区溢出的攻击,那么这种攻击很容易在函数返回前被检测到。但是,如果攻击者预见到这些附加字节的存在,并且能在溢出过程中同样地制造他们,那么他就能成功地跳过堆栈保护的检测。
(3)数组边界检查 所有的对数组的读写操作都应当被检查以确保对数组的操作在正确的范围内进行。最直接的方法是检查所有的数组操作,通常可以采用一些优化技术来减少检查次数。目前主要有这几种检查方法:Compaq C编译器、Jones Kelly C数组边界检查、Purify存储器存取检查等。
未来的竞争是信息竞争,而网络信息是竞争的重要组成部分。其实质是人与人的对抗,它具体体现在安全策略与攻击策略的交锋上。为了不断增强信息系统的安全防御能力,必须充分理解系统内核及网络协议的实现,真正做到洞察对方网络系统的“细枝末节”,同时应该熟知针对各种攻击手段的预防措施,只有这样才能尽最大可能保证网络的安全。
黑客常用攻击模式有哪几种
退出并重新进入。
选择“工具”→点击浏览器菜单栏上的“选项”(如果菜单栏没有出现,点击键盘的“Alt”键调出菜单栏)。在弹出的“选项”窗口中单击“内容”选项→删除“阻止弹出窗口”→单击“确定”按钮。
攻击模式
黑客攻击网络的方式多种多样。一般来说,攻击总是利用“系统配置缺陷”、“操作系统安全漏洞”或“通信协议安全漏洞”进行。已经发现了2000多种攻击,其中大部分黑客手段都有相应的解决方案。这些攻击可以大致分为以下六类:
拒绝服务攻击:一般来说,拒绝服务攻击是使目标对象(通常是工作站或重要服务器)的关键系统资源过载,使目标对象停止部分或全部服务。
已知的拒绝服务攻击有数百种,是最基本的入侵攻击,也是最难的攻击之一。典型的例子有SYN Flood攻击、Ping Flood攻击、Land攻击、WinNuke攻击等。
未经授权的访问企图:攻击者试图读取、写入或执行受保护的文件,包括试图获得受保护的访问。
预检测攻击(Pre-detection attack):在持续的未授权访问尝试过程中,攻击者通常会利用这种攻击尝试来获取网络内部和周围的信息。典型的例子有撒旦扫描、端口扫描、IP中途扫描等。
可疑活动:指通常定义的“标准”网络通信类别之外的活动,也可以指网络上不需要的活动,如IP未知协议和重复IP地址事件。
协议解码:协议解码可以用在以上任何一种意想不到的方法中。网络或安全管理员需要解码并得到相应的结果。解码的协议信息可以指示期望的活动,例如FTU用户和端口映射器代理。
我的LSP里面的网络链接正确么都是什么NETBIOS
Netbois (网络基本输入/输出系统)最初由 IBM,Sytek 作为API开发,使用户软件能使用局域网的资源。自从诞生,Netbois成为许多其他网络应用程序的基础。严格意义上,Netbios 是接入网络服务的接口标准。
Netbios 原来是作为THE网络控制器为 IBM 局域网设计的,是通过特定硬件用来和网络操作系统 连接的软件层。Netbios经扩展,允许程序使用Netbios接口来操作IBM令牌环结构。Netbios 已被公认为工业标准,通常参照 Netbios-compatible LANs。
它提供给网络程序一套方法,相互通讯及传输数据。基本上,Netbios 允许程序和网络会话。它的目的是把程序和任何类型的硬件属性分开。它也使软件开发员可以免除以下负担:开发网络错误修复,低层信息寻址和路由。使用Netbios接口,可以为软件开发员做许多工作。
Netbios使程序和局域网操作能力之间的接口标准化。有它们可以将程序细化到为OSI模型的哪一层所写,使程序能移植到其他网络上。在Netbios局域网环境下,计算机通过名字被系统知道。网络中每台计算机都有通过不同方法编的永久性名称。这些名称将在下面做进一步讨论。
通过使用Netbios的数据报或广播方式,在Netbios局域网上的pc机建立会话彼此联络。会话允许更多的信息被传送,探测错误,和纠正。通信是在一对一的基础上的。数据报或广播方式允许一台计算机和多台其他的计算机同时通信,但信息大小受限。使用数据报或广播方式没有探测错误和纠正。然而,数据报通信可以不必建立一个会话。
在这种环境下所有的通信以一种称为“网络控制块“的格式提交给NetBIOS。内存中这些块的分配依赖于用户程序。这些“网络控制块“分配到域中,分别为输入/输出保留。
在当今的环境中,NetBIOS是使用很普遍的协议。以太网,令牌环,IBM PC网都支持NetBIOS。在它原始版本中,它仅作为程序和网络适配器的接口。从那以后,传输类功能加入NetBIOS,使它功能日益增多。
在NetBIOS里,面向连接(tcp)和无连接(udp)通信均支持。它支持广播和复播,支持三个分开的服务:命名,会话,数据报。
[1.0.2] NetBIOS 名称
NetBIOS名称用来在网络上鉴别资源。程序用这些名称开始和结束会话。你能用多个程序配置一台单独的机器,每个程序都有独特的NetBIOS名称。每台支持应用的pc机也有用户定义或通过内部方法获得的NetBIOS站名。
NetBIOS能包含至多16个阿尔法数字字母。在整个资源路由网络里,字母的组合必须独特。在一台使用NetBIOS的pc机在网络上能完全工作起来之前,PC必须先登记NetBIOS名称。
当客户端活跃时,客户端广播它的名称。当它成功广播自己,并没有其他人和它重名,客户端就登记成功。登记过程如下:
1.在登陆上,客户端在所有地方广播它自己和它的NetBIOS信息6到10次,确保其他网络成员收到信息。
2.如果有客户端A已用此名,客户端A发布它自己的广播,包括它正在使用的名字。请求登陆的客户端停止所有登记的企图。
3.如无其他客户端反对登记,请求登陆的客户端完成登记过程。
在NetBIOS环境中有两类名称:独特的和集合的。独特的名称必须在网络中独特。集合的名称不必在网络中独特,所有同名过程属于同一集合。每个NetBIOS节点包含一张该节点当前使用名称的表。
NetBIOS命名允许16个字母用在NetBIOS名称中。而微软只允许15个字母用在NetBIOS名称中,第十六个为NetBIOS后缀。NetBIOS后缀用在Microsoft Networking 软件中,区别安装的功能,登记的设备和服务。
[注意:smb 和nbt(在tcp/ip上的NetBIOS)紧密的工作在一起,且都使用137,138,139端口。137端口是NetBIOS名称UDP,138端口是NetBIOS数据报UDP,139端口是NetBIOS会话tcp,进一步的NetBIOS信息,看rhino9网站上所列文章]
以下是Microsoft WindowsNT目前使用的NetBIOS后缀表。后缀是16进制。
名称 数字 类型 用途
============
00 U Workstation Service
01 U Messenger Service
\\_MSBROWSE_ 01 G Master Browser
03 U Messenger Service
06 U RAS Server Service
1F U NetDDE Service
20 U File Server Service
21 U RAS Client Service
22 U Exchange Interchange
23 U Exchange Store
24 U Exchange Directory
30 U Modem Sharing Server Service
31 U Modem Sharing Client Service
43 U SMS Client Remote Control
44 U SMS Admin Remote Control Tool
45 U SMS Client Remote Chat
46 U SMS Client Remote Transfer
4C U DEC Pathworks TCPIP Service
52 U DEC Pathworks TCPIP Service
87 U Exchange MTA
6A U Exchange IMC
BE U Network Monitor Agent
BF U Network Monitor Apps
03 U Messenger Service
00 G Domain Name
1B U Domain Master Browser
1C G Domain Controllers
1D U Master Browser
1E G Browser Service Elections
1C G Internet Information Server
00 U Internet Information Server
[2B] U Lotus Notes Server
IRISMULTICAST [2F] G Lotus Notes
IRISNAMESERVER [33] G Lotus Notes
Forte_$ND800ZA [20] U DCA Irmalan Gateway Service
独特的(u):该名仅有一个IP地址分给它。在网络设备中,一个名称的多次出现看来会被登记,但后缀是唯一的,使整个名称唯一。
集合的(g):普通集合,一个名称可有多个IP地址。
多址的(M):名称是唯一的,但由于在同一计算机上有多个网络接口,这种配置应该被允许登记。地址的最大数目是25。
Internet集合(I):这是组名的特殊配置,用在操作WINDOSNT的域名。
域名(D):在NT4.0中新引进的。
为了快速浏览一台服务器上登记的NETBIOS名称和服务,用以下命令:
nbstat -a [ipaddress]
nbstat -a [host]
[1.0.3] NetBIOS 会话
NetBIOS 会话服务提供给用户程序一种面向连接,可靠的,完全双重的信息服务。 NetBIOS要求一个是客户端程序,一个是服务器端程序。NetBIOS会话的建立需要双方预定的合作。一个程序必须先发出listen命令,其他程序才可以发出call令。listen命令参考在它的NetBIOS名称表中的名称(或windows服务器中的),也参考用于作为会话另一端的远端程序的名称。如果聆听者不在聆听,call命令将不会成功。如果call成功,各程序将接到会话id,以作为会话建立的确认。
send和receive命令操作传输数据。在会话最后,各程序将执行挂起命令。没有为会话服务的实际流控制,因为假定局域网足够快,能够传输需要的数据。
[1.0.4] NetBIOS 数据报
数据报可以发送到特定的地点,或组中所有成员,或广播到整个局域网。与其它数据服务相比,NetBIOS 数据报是无连接,非可靠的。Send_Datagram 命令需要调用者设定目的名。如果目的名是组名,组中每个成员都收到数据。Receive_Datagram 命令的调用者必须确定它接收数据的本地名。除了实际数据外,Receive_Datagram也返回发送者的名称。如果NetBIOS收到数据,但却没有Receive_Datagram 命令在等待,数据将被丢弃。
Send_Broadcast_Datagram 命令发送信息给本地网上每个NetBIOS系统。当NetBIOS节点收到广播数据,发布Receive_Broadcast_Datagram 命令的每个进程都收到数据。如果当广播数据被收到时,没有这些命令在运行,数据将被丢弃。
NetBIOS使应用程序能和另一个设备建立会话,使网络转发器和处理协议处理收到、发送到另一台机器的请求。NetBIOS实际上不操作数据。NetBIOS定义规定了用来到达这些服务的协议的网络接口,而非协议本身。历史上,NetBIOS曾与叫做NetBEUI的协议(网络扩展用户接口)捆绑。接口和协议的结合有时引起混淆,但它们是不同的。
网络协议为定位、连接到网络上特定的服务提供至少一种方法。这通常由将节点和服务名转化为网络地址(名称解析)完成。在连接用TCP/IP建立前,NetBIOS服务名必须解析成IP地址。大多数NetBIOS的TCP/IP 实现,用广播或LMHOSTS文件完成名称地址的解析。在Microsoft环境中,你最可能使用叫做WINS的NetBIOS 名称服务器。
[1.0.5] NetBEUI 解释
NetBEUI是网络操作系统使用 NetBIOS协议的加强版本。它规范了在NetBIOS 中未标准化的传输帧,还加了额外的功能。传输层驱动器经常被Microsofts LAN Manager(微软局域网操作器)使用。NetBEUI执行 OSI LLC2 协议。NetBEUI是原始的PC网络协议和IBM为LanManger(局域网操作器)服务器设计的接口。本协议稍后被微软采用作为它们的网络产品的标准。它规定了高层软件通过NetBIOS帧协议发送、接收信息的方法。本协议运行在标准802.2数据链协议层上。
[1.0.6] NetBIOS 范围
NetBIOS范围ID为建立在TCP/IP(叫做NBT)模块上的NetBIOS提供额外的命名服务。 NetBIOS范围ID的主要目的是隔离单个网络上的NetBIOS通信和那些有相同NetBIOS范围ID的节点。NetBIOS范围ID是附加在NetBIOS 名称上的字符串。两个主机上的NetBIOS范围ID必须匹配,否则两主机无法通信。NetBIOS范围ID允许 计算机使用相同的计算机名,不同的范围ID。范围ID是NetBIOS名称的一部分,使名称唯一。
许多人知道,NetBIOS 是计算机局域网领域流行的一种传输方式,但你是否还知道,对于互联网用户来讲,NetBIOS 则是安全领域的一大隐患。
一、NetBIOS 的烦恼
NetBIOS 是指网络输入输出系统,在计算机网络发展史中,NetBIOS 算得上是历史悠久。早在 1985 年,IBM 公司就开始在网络领域使用 NetBIOS,微软推出第一套基于 Windows 的网络操作系统--Windows For Workgroups(面向工作组的视窗操作系统)时,就采用了一种适用于 Windows 的 NetBIOS 版本,即 NetBEUI。微软当年之所以选择 NetBEUI 作为网络传输的基本协议,是因为它占用系统资源少、传输效率高,尤为适用于由 20 到 200 台计算机组成的小型局域网。此外,NetBEUI 还有一个最大的优点:可以方便地实现网络中各单机资源的共享。
后来,网络的发展速度之快,已大大超出人们的想象,进入 20 世纪未,全球的计算机就已可通过国际互联网络方便连接,随着互联网络的迅猛发展,TCP/IP 协议成为广泛使用的传输协议。
今天,TCP/IP 协议已是互联网领域的通用协议,几乎所有接入互联网的电脑都使用 TCP/IP。但同时,NetBEUI 协议也还在局域网领域广泛使用,因此,在你安装 TCP/IP 协议时,NetBIOS 也被 Windows 作为默认设置载入了你的电脑,而电脑随即也具有了 NetBIOS 本身的开放性。换句话讲,在不知不觉间,你的上网电脑已被打开了一个危险的“后门”。
NetBIOS 的开放,意味着你的硬盘可能会在网络中成为共享。对于网上四处游走的 来讲,他们可以通过 NetBIOS 获知你电脑中的一切!
二、找寻电脑中开放的“后门”
在想办法关闭电脑的这个“后门”前,我们有必要先认识这个问题:网络中的其它用户是怎样找到你系统漏洞的?
你可能认为:在茫茫网海,作为个人上网用户,我的一台电脑是多么的渺小,HACKER 们怎会对我感兴趣呢?其实,这种想法是很危险的,网上一些不怀好意的用户(很多还称不上是 ),说不定哪天就会盯上你。
现在,有许多被称作“扫描机(scanners)”的黑客小程序,这些扫描程序不停地穿梭于网络之中,专门寻找上网用户的系统漏洞,其中就包括 NetBIOS 及 Windows “文件及打印共享”功能所打开的系统后门。一旦扫描程序在网上发现了系统存在着漏洞的计算机,那些恶意攻击者就会设法通过找到的“后门”进入你的计算机,并获取你的信息。而令人深感不安的是,所有的这些非法入侵行为,你可能竟然毫无知觉。
三、关闭你的“后门”
正如前文所述,系统存在后门的原因是与 TCP/IP 协议捆绑在一起的 NetBIOS,事实上,对于互联网上的单机用户来讲,NetBIOS 是没有什么用处的,因此,你完全可以将它从 TCP/IP 中去掉。下面,就现在常见的几种操作系统介绍从TCP/IP 中解除 NetBIOS 的方法。
如果你使用的是最早版本的 Windows 95,那关闭 NetBIOS 就是一件非常容易的事:找到系统里名为 Vnbt.386 的文件,随便将它改个名,如改为 Vnbt.out,这就算大功告成了。
如果你使用的是 Windows 95改进版、Windows 98、Windows 98 SE 或是 Windows Me,那就要稍微麻烦一点。首先,打开控制面板,进入“网络”对话窗,在配置表中,查看列表中是否已有 NetBEUI 组件,如果有,则直接跳过下一段。
如果在列表中没有 NetBEUI 组件,则先点击“添加”按钮,在“要安装的网络组件类型”列表中,选择“协议”一项,再次点击“添加”,在“网络协议”对话窗中,选择 Microsoft 的 NetBEUI,然后,插入 Windows 安装盘,点击“确定”即可。
回到“网络”对话窗,在网络组件中选择“拨号适配器”,点击“属性”,在“属性”对话窗中选择“绑定”按钮,将除TCP/IP之外其它协议的复选框里的小勾清除掉。
最后,再次回到“网络”对话窗,选择 TCP/IP 协议,点击“属性”,这时有可能会弹出一个警告窗口,不用理它,直接点“OK”就行了,进入 TCP/IP 的“属性”窗口后,选择“绑定”,将所有网络协议复选框内的小勾去掉,点击“确定”,这时,Windows 会提示你至少应选择一种协议,仍然不用理它,点击“No”,关闭窗口。重新启动你的计算机,这样,你计算机中的 NetBIOS 后门就已被关闭了。
这样一来,NetBIOS 已从你计算机的 TCP/IP 协议中去除,当然,你最好检查一下操作是否成功:回到“网络”对话窗,选择 TCP/IP 协议,点击“属性”,在“属性”窗口中点击 NetBIOS 栏,这时,你会看到“我希望在 TCP/IP 协议中开启 NetBIOS(I want to enable NetBIOS over TCP/IP)”一项,该项前面的复选框应该没有打勾。
现在,你就可以放心地在网络中漫游,而不必再担心有人会通过 NetBIOS 入侵你的电脑。
剖析NETBIOS的具体工作机理
本来想为了增加可读性,把这个系列写成问答的形式,不过一时之间脑袋里也编不出这么多的问题,还是按部就班先感性的对微软的浏览服务作一大致介绍,然后再深入剖析NETBIOS的具体工作机理,大家要是有什么问题,可以提出来我们一起讨论.
在“Windows NT系统管理技术内幕”一书中,讲到了一个非常具有代表性的问题,我把它摘抄了下来:
问:什么情况下会导致在网络邻居中计算机能看见却无法访问或可以访问却看不见?
请选择最佳答案:
A.你的网络存在物理问题,比如网线
B.作为域主浏览器的Windows NTserver的浏览服务坏了
C.Windows NTserver网卡有问题
D.你的网络没有问题,用户描述的是正常的微软浏览现象
正确答案:D
书上的解释:微软的网络浏览可能在使用中出现"中断",而实际上它们并没有中断, 这种误解是由于用户对
微软网络浏览的处理过程不熟悉造成的。
就象有人经常在抱怨的“为什么别人的网上邻居可用,我的却不行?”“为什么有时候可以浏览,有时候
却无法浏览网络?”解铃还须系铃人,让我们一起去看看微软的网络浏览到底是如何实现的。鉴于大家可能对NT的“域”概念还不甚了解,出现浏览故障的也多为98的机子,我将以98的“工作组模式”为大家讲解。
1.什么是浏览列表(Browsing List)
在微软网络中,用户可以在浏览列表里看到整个网络(何指?子网还是广播域?大家可以考虑考虑)上所
有的计算机。当你通过网上邻居窗口打开整个网络时,你将看到一个工作组列表,再打开某个工作组,你将看
到里面的计算机列表(也可在 DOS方式下用net view /domain:workgroupname命令得到),这就是我们所说的 Browsing List。工作组从本质上说就是共享一个浏览列表的一组计算机,所有的工作组之间都是对等的,没有规定不可以让所有的计算机同处于一个工作组中。
2.浏览列表在哪里
曾在木棉上看到过一场争论,有人说:网上邻居里的计算机列表是广播查询得来的。可有人举反例说:我
的同学都关机了,可我还是能在网上邻居里看到它,应该是从HUB或交换机之类较为固定的设备的缓存中取得的
。 其实他们都只说对了一个方面,把他们二人的说法结合起来就是正确答案了--- 浏览列表是通过广播查询浏览主控服务器,由浏览主控服务器提供的。
3.浏览主控服务器又是什么
浏览主控服务器是工作组中的一台最为重要的计算机,它负责维护本工作组中的浏览列表及指定其他工作组的主控服务器列表,为本工作组的其他计算机和其他来访本工作组的计算机提供浏览服务,每个工作组都为会每个传输协议选择一个浏览主控服务器,而我们经常遇到的无法浏览网络的错误大多是因为你所处的工作组没有浏览主控服务器而造成的。你可以在一个工作组中用NBTSTAT -a computername 命令找出使用NBT协议的浏览主控服务器,它的标识是含有\\_MSBROWSE_名字段。
4.浏览主控服务器是如何指定的
缺省情况下,win98工作组中的浏览主控服务器是该工作组中第一台启用文件及打印机共享功能的计算机,也允许手工将一台win计算机配置为浏览主控服务器(方法会在后面讲述网络配置时具体介绍,但由于浏览主控服务器需要维护动态浏览列表,性能会受影响),如果一个工作组中有多台计算机配置了这个选项,或是当前的浏览主控服务器关闭了系统,又没有其他计算机启用主控设置时,就要进行主控浏览器的选举。
5.如何通过浏览器选举产生浏览主控服务器
关于浏览器的选举报文,不太好抓包,我就只好按书上的东西来讲述了.其实过程很简单,首先由一台计算机发送一个选举临界报文,该报文包含了来自发送计算机的信息(操作系统,版本及NET名等),选举报文向网络中广播,工作组中的每一台计算机都会用自身信息与选举报文进行优先级比较,主要是操作系统起主要作用,记得好像是NTServerNTWorkstationWin98WFWG,反正到最后是那个自身条件最好的成为新的浏览主控服务器.
6.整个网络浏览的过程是怎样的
当一台win98进入网络时,如果它带有服务器服务(启用了文件及打印机共享)会向网络广播宣告自己的存在,而浏览主控服务器会取得这个宣告并将它放入自己维护的浏览列表中;而没有在相应协议上绑定文件及打印机共享的计算机则不会宣告,因而也就不会出现在网络邻居里了。 当客户计算机想获得需要的网络资源列表时,首先会广播发出浏览请求,浏览主控服务器收到请求后,如果请求的是本组的浏览列表,则直接将客户所需的资源列表发回;如果请求的是其它工作组的浏览列表,浏览主控服务器会根据本身Browsing List中的记录找到相应工作组的主控浏览器返回给用户,用户可从那里得到它
想要的浏览列表。至于如何去和另一台计算机共享交换资源,就不是我们这里要讨论的问题了。
明白了网络浏览的原理,下面我给大家讲一个有用的应用,现在很多同学出于安全的考虑都不太欢迎陌生人通过网上邻居访问自己的机子,可有时下部电影又需要给认识的同学共享出来,因而还不能删除文件及打印机共享服务。怎么办?有些人给共享名加个$,以达到隐藏的效果,可这用DOS下的net share是可被看到的;有些人给共享加上密码,可听说这也是有办法破解的,而且很容易激起“黑客同志”的好奇心。有没有办法将自己的机器在网络邻居里隐藏起来呢?而对于认识的同学可以让他用\\IP 来访问。
想对了,关键就是要阻止自己的机器向网络中去宣告自己,而且我知道我们其中的一些人已经将此变成了现实,至于方法嘛,就不要来问我了。
注:因为有关win98浏览服务的资料很少,涉及的书籍也多为以NT的“域”模型进行介绍,因而我只能根据自己的理解结合netxray的实践来测试,细节部分难免有错,欢迎大家指正。
7.在我的网上邻居里为什么有些机子访问不了
如果微软的网上邻居真能做到所见即所得,相信抱怨它的人不会象现在这么多,可通过前面对浏览服务的
介绍,大家已经知道这是不可能的,因为浏览列表的获得不是通过访问其中每一台机子得到的,很多时候网络中的计算机并不能正确更新浏览列表。当一台计算机正常关机时,它会向网络发出广播宣告,使浏览主控服务器及时将它从浏览列表中删除;而非正常关机后,浏览列表里仍会把该条目保持很长一段时间(NT下是45分钟),这就是我们仍能在网络邻居里看到它的原因.而98的稳定性是众所周知的 ----在还没来得及关机前就已经崩溃了
^-^ SMB(Server Message Block)协议在NT/2000中用来作文件共享,在NT中,SMB运行于NBT(NetBIOS over TCP/IP)上,使用137,139(UDP),139(TCP)端口。
在2000中,SMB可以直接运行在tcp/ip上,而没有额外的NBT层,使用TCP 445端口。因此在2000上应该比NT
稍微变化多一些。可以在“网络连接/属性/TCPIP协议/属性/高级/WINS中设置启用或者禁用NBT(NetBIOS over TCP/IP)。
当2000使用网络共享的时候,就面临着选择139或者445端口了。下面的情况确定会话使用的端口:
1、如果客户端启用了NBT,那么连接的时候将同时访问139和445端口,如果从445端口得到回应,那么客户端将发送RST到139端口,终止这个端口的连接,接着就从445端口进行SMB的会话了;如果没有从445端口而是从139得到回应,那么就从139端口进行会话;如果没有得到任何回应,那么SMB会话失败。
2、如果客户端禁用了NBT,他就将只从445端口进行连接。当然如果服务器(开共享端)没有445端口进行SMB会话的话,那么就会访问失败了,所以禁用445端口后,对访问NT机器的共享会失败。
3、如果服务器端启用NBT,那么就同时监听UDP 137、138端口和TCP139,445。如果禁用NBT,那么就只监听445端口了。
所以对于2000来说,共享问题就不仅仅是139端口,445端口同样能够完成。
关于空会话
NULL会话(空会话)使用端口也同样遵循上面的规则。NULL会话是同服务器建立的无信任支持的会话。一
个会话包含用户的认证信息,而NULL会话是没有用户的认证信息,也就好比是一个匿名的一样。
没有认证就不可能为系统建立安全通道,而建立安全通道也是双重的,第一,就是建立身份标志,第二就
是建立一个临时会话密匙,双方才能用这个会话进行加密数据交换(比如RPC和COM的认证等级是PKT_PRIVACY)。不管是经过NTLM还是经过Kerberos认证的票据,终究是为会话创建一个包含用户信息的令牌。(这段来自Joe Finamore)
根据WIN2000的访问控制模型,对于空会话同样需要提供一个令牌。但是空会话由于是没有经过认证的会话
,所以令牌中不包含用户信息,因此,建立会话双方没有密匙的交换,这也不能让系统间发送加密信息。这并
不表示空会话的令牌中不包含SID,对于一个空会话,LSA提供的令牌的SID是S-1-5-7,这就是空会话建立的SID
,用户名是ANONYMOUS LOGON。这个用户名是可以在用户列表中看到的。但是是不能在SAM数据库中找到,属于系统内置的帐号。
NULL会话几乎成为了微软自己安置的后门,但是微软为什么要来设置这样一个“后门”呢?我也一直在想这个问题,如果NULL会话没有什么重要的用途,那么微软也应该不会来设置这样一个东西。好不容易才在微软上找到这个:
当在多域环境中,要在多域中建立信任关系,首先需要找到域中的PDC来通过安全通道的密码验证,使用空
会话能够非常容易地找到PDC,还有就是关于一些系统服务的问题。
其实建立一个空会话的条件也非常严格。首先要能够满足上面的,也就是打开TCP 139和TCP 445端口。我
们可以从一次关闭这两个端口的情况中看得出来。服务器关闭445和139端口,然后我们来进行空会话的连接。
首先,客户端打算连接的是445端口,然后再试图连接139端口。当然最后还是失败了。
仅仅开放这两个端口还不行,服务器还必须得打开IPC$共享。如果没有IPC共享,即使共享一个文件,有权
限为Anonymous Logon,也不能建立会话,即使权限设置为完全控制,出现的连接错误依然是权限不够。这和其
他帐号是不一样的。如果要允许一个文件夹共享能够类似IPC$(命名管道而非共享)能够使用空会话,那么需
要修改注册表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\
中的:NullSessionShares,添加新的共享名,这样才能建立一个共享的空会话。这时,将不依赖IPC的存
在了。(即使这样的空会话对于后面的突破也是一点没可取之处的,因为没有了IPC$命名管道,RPC不可取了,
这下知道IPC这个命名管道的具体实现了。呵呵)
虽然空会话建立的要求很严格,但是那都是默认建立的。既然是默认的,对于使用WIN2K系统的服务器来说
,就还是有利用的价值。最明显的就是空会话可以很方便地连接到其他的域,枚举用户、机器等。这也就是扫描
软件进行探测的原理。
1. 有些人给共享名加个$,以达到隐藏的效果,可这用DOS下的net share是可被看到的;
这种隐藏只是微软Windows标准客户端net view的限制,不是服务端的限制,网络传输过程中是一视同仁的
,所以直接修改客户端解除这种限制或者使用第三方客户端软件均可看到所谓的隐藏共享,比如smbclient就是
典型代表。
2. 有些人给共享加上密码,可听说这也是有办法破解的;
这个破解要看是什么层面上的,
0条大神的评论