网络安全实用指南 王炯翰 张涛 2000年 第53期 #1 一、黑客攻击原理 因特网并不是一个单独的、封闭的网络,它是建立在全球众多网络上的一个网络集合。在因特网上存在许多不同类型的计算机及运行各种系统的服务器。每个网络的结构也不相同,是TCP/IP协议把这些计算机连接在一起。 TCP/IP协议是将计算机组成网络的一系列协议的总和,TCP(Transmission Control Protocol)协议,称为传输控制协议,IP(Internet Protocol)协议,称为网间互联协议。TCP/IP协议能确保不同类型的计算机及网络能够在一起工作。 TCP的作用就是把所有的信息分解成多个数据包,每一个数据包用一个序号和一个接收地址来标定,TCP还会在数据包中插入一些纠错信息。所有的数据被分解成数据包之后,这些数据包开始在网络上传送,传送过程是由IP完成的,IP协议负责把数据包传送给远程主机,远程主机接收到数据包,根据TCP协议核查有无错误,如果发生错误,主机会要求重发这个数据包。所有数据包都被正确接收到以后,主机按数据包的序号重新把这些小数据包组合成为原来的信息。也就是说,IP的工作是把数据包从一个地方传递到另一个地方,TCP的工作是对数据包进行管理与校核,保证数据包的正确性。 任何合法数据都必须依照TCP/IP协议来传送,网络上的攻击也不例外。黑客也正是利用TCP/IP协议,在网络上传送包含有非法目的合法数据,对网络上的计算机进行攻击。例如:特洛伊木马、网络监听、邮件炸弹、利用系统漏洞进行攻击等。 #1 二、常用防御手段 网络上的安全隐患如此之多,要一一来修补似乎不太可能。但是亦不必太过于担心,只要我们作好整体上防御攻击的策略,就能大大降低攻击的危害性。整体防御攻击的策略主要可分为如下几种: #1 1.防火墙 所谓“防火墙”,是指一种将内部网和公众访问网(Internet)分开的方法,实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更改、拷贝、毁坏你的重要信息。 #1 2.系统补丁 系统补丁是软件厂商根据前期产品漏洞开发的修补程序,一般会做成可执行文件免费提供给客户。在欲修补漏洞的机器上执行补丁文件后,能自动更新该补丁文件所针对的有漏洞的程序。如Microsoft发布的Windows 2000补丁Services Pack 1等。 #1 3.IP地址限制和数据加密 在网络的接口处进行IP地址确认或数据加密,只让合法的IP地址或用户对网络内资源进行访问。这种做法的限制性比较大,适合一般企业或组织内部网络。如虚拟专网(VPN),VPN可以在防火墙与防火墙或移动的Client间对所有网络传输的内容加密,建立一个虚拟通道,让两者间感觉是在同一个网络上,可以安全且不受拘束地互相存取。这对总公司与分公司之间或公司与外出的员工之间,需要直接联系,又不愿花费大量金钱另外申请专线或用长途电话拨号连接时,将会非常有用。 #1 4.特殊需求控制 如限制特定使用者才能发送E-mail,FTP只能下载文件不能上传文件,限制同时上网人数,限制使用时间或禁止使用Javascript、ActiveX等,视需求不同而定。总而言之就是限制用户使用系统的某部分服务,以防止某些恶意访问者利用某些服务进行攻击。 #1 三、常见攻击手法及防范 #1 (一)特洛伊木马 特洛伊木马,英文叫做“Trojan house”,是一种基于远程控制的黑客工具,它具有隐蔽性和非授权性等特点。所谓隐蔽性是指木马的设计者为了防止木马被发现,会采用多种手段隐藏木马,这样服务端即使发现感染了木马,也不能确定其具体位置;所谓非授权性是指一旦控制端与服务端连接后,控制端将享有服务端的大部分操作权限,包括修改文件、修改注册表、控制鼠标、键盘等等,而这些权力并不是服务端赋予的,而是通过木马程序窃取的。 1.木马攻击的原理 Back Oriffice是一个典型的特洛伊木马,其本质上属于客户机/服务器应用程序。它通过一个极其简单的图形用户界面和控制面板,可以对感染了BO(即运行了BO服务器)的机器操作Windows本身具备的所有功能,BO没有利用系统和软件的任何漏洞或Bug,也没有利用任何微软未公开的内部API,而完全是利用Windows系统的基本设计缺陷,一旦激活,就可以自动安装,创建Windll.dll,然后删除自安装程序,潜伏在计算机中。攻击者可通过BO客户机程序,方便地搜索到世界上任何一台被BO感染并上网的计算机IP地址。通过IP地址就可对其轻易实现网络和系统控制功能。可获取包括网址口令、拨号上网口令、用户口令、磁盘、等详细的系统信息;可删除、复制、检查、查看文件;可运行机内任何一个程序;可上传各种文件;可以查阅、创建、删除和修改系统注册表;甚至可以使计算机重新启动或锁死机器。 2.木马攻击的防御方法 防御木马程序的攻击有很多种方法。从预防木马方面来讲,有以下几点需要注意:不要轻易运行来历不明和从网上下载的软件(特别是不可靠的FTP站点);保持警惕性,不要轻易打开来历不明的E-mail,如Happy99就会自动加在E-mail附件当中,对来历不明的E-mail应立即清除;不要公开你的E-mail地址。 感染了木马我们可以手工对其进行清除。每个木马都有自己的特征,我们可以根据这些特征来清除它们。 (1)Back Oriffice(BO) 检查注册表\HEKY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\ RunServices中有无.exe键值。如有,则将其删除,并进入MS-DOS方式,将\Windows\System中的.exe文件删除。 (2)Back Oriffice 2000(BO2000) 检查注册表\HEKY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices中有无Umgr32.exe的键值,如有,则将其删除。重新启动电脑,并将\Windows\System中的Umgr32.exe删除。 (3)Netspy 检查注册表\HEKY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run中有无键值Spynotify.exe和Netspy.exe。如有将其删除,重新启动电脑后将\Windows\System中的相应文件删除。 (4)Happy99 此程序首次运行时,会开启一个名为“Happy new year1999”的窗口,此时该程序会将自身复制到Windows 95/98的System目录下,更名为Ska.exe,创建文件Ska.dll,并修改Wsock32.dll,将修改前的文件备份为Wsock32.ska,并修改注册表。用户可以检查注册表\HEKY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce中有无键值Ska.exe。如有,将其删除,并删除\Windows\System中的Ska.exe和Ska.dll两个文件,将Wsock32.ska更名为Wscok32.dll。 (5)冰河 进入纯DOS模式,在C:\Windows\System文件夹中删除“Kernel32.EXE”和“Sysexplr.EXE”。回到Windows,将注册表中\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run和HKEY_LOCAL_MACHINE\Software\Micro-soft\Windows\CurrentVersion\RunServices下的有Kernel32.EXE的主键删除。将\HKEY_LOCAL_MACHINE\Soft-ware\CLASSES\txtfile\shell\open\command下的缺省值设为Notrpad.EXE%1。 3.The Cleaner2.1 The Cleaner2.1是专门查杀特洛伊木马的软件,其下载地址是:http://www.dynamsol.com/puppet/,下载后双击就可直接安装,安装后我们在“开始”、“程序”中可以找到它,打开程序,出现操作界面,共分以下几个部分,左边为特洛伊木马列表,多达117种。下边为命令按钮,共五个:Clean,用来清除已发现的特洛伊木马;Detect All,检测硬盘中所有的文件,当检测完毕后,将报告检测速度、用时和列出计算机中所有已被安装或存在而尚未安装的特洛伊木马;Scan Selected Files,可检测单个文件,单击它,在打开的对话框中选中需检测的文件即可;Check for Update,方便上网升级和更新;Exit,退出。 窗体右上方用于当你单击某个特洛伊木马时将出现对该特洛伊木马的简单描述。因此,通过The Cleaner2.1可以初步了解100多种特洛伊木马的活动情况,对我们防止黑客的攻击大有帮助。右中为查出的本机已有的特洛伊木马及其安装后在系统和注册表中的位置。右下为颜色监视器,绿色为完成清除任务;黄色为要求重新启动电脑才能清除干净;红色的甲壳虫将出现在已发现的特洛伊木马列表中;灰色为无任务;红色为未知错误。下面以清除Girlfriend为例讲解The Cleaner2.1的使用方法。 下载并运行Girlfriend,经检测所有文件后,The Cleaner报告发现Girlfriend。单击左边的特洛伊木马列表中的Girlfriend,出现两个选项:remove c:\windows\windll.exe 和removewindll.exe from \software\microsoft\windows\currentversion\run,前一项为安装后Girlfriend 的所在位置,后一项为Girlfriend 运行后在注册表中的位置,选中这两个选项,点Clean命令,即可清除Girlfriend。清除后,前一选项变成黄色条块,说明需重新启动电脑才能清除干净,后一选项变成绿色条块,说明注册表中已清除干净。重新启动电脑即可完成。 在这里需要说明的是,在清除特洛伊木马前,需将其它杀毒软件关闭,以避免冲突。 #1 (二)网络监听 1.网络监听的原理 网络监听是黑客们常用的一种攻击方法。当成功地登录一台网络上的主机,并取得了这台主机的超级用户的权限之后,往往要扩大战果,尝试登录或者夺取网络中其他主机的控制权。而网络监听则是一种最简单而且最有效的方法,它常常能轻易地获得用其他方法很难获得的信息。 网络监听本来是为了管理网络,监视网络的状态和数据流动情况。但是由于它能有效地截获网上的数据,因此也成了网上黑客窃取数据的方法。但有一个前提条件,那就是监听只能是同一网段的主机,这里同一网段是指物理上的连接。网络监听最有用的是获得用户口令。当前,网上的数据绝大多数是以明文的形式传输。而且口令通常都很短且容易辨认。当口令被截获,则可以非常容易地登上另一台主机。 2.防止网络数据被监听的方法 (1)对于怀疑运行监听程序的机器,用正确的IP地址和错误的物理地址去ping,运行监听程序的机器会有响应。这是因为正常的机器不接收错误的物理地址,外于监听状态的机器能接收,如果他的IP Stack不再次反向检查的话,就会响应。这种方法依赖于系统工程的Ipstack,对一些系统可能行不通。 (2)向网上发大量不存在的物理地址的包,由于监听程序将处理这些包,将导致性能下降。通过比较前后该机器性能(icmp echo delay等方法);加以判断。这种方法难度比较大。 (3)搜索所有主机上运行的进程。管理员可以确定是否有一个进程被从管理员机器上启动。对于检查运行进程这种方法,那些使用DOS、Windows for Workgroup或者Windows 95的机器很难做到这一点。而使用UNIX和Windows NT的机器可以很容易地得到当前进程的清单。在UNIX下,可以用下列命令:ps-aun或ps-augx。这个命令产生一个包括所有进程的清单——进程的属主、进程占用的CPU时间以及占用的内存等等。这些输出在Stdout上,以标准表的形式输出。如果一个进程正在运行,它就会被列在这张清单中(除非ps或其他程序变成了一个特洛伊木马程序)。 (4)数据加密。加密是一个很好的办法,有一个产品叫做Secure Shell,或者叫SSH。SSH是一种在像Telnet那样的应用环境中提供保密通讯的协议,它实现了一个密钥交换协议,以及主机及客户端认证协议。提供Internet上的安全加密通讯方式和在不安全信道上很强的认证和安全通讯功能。它像许多协议一样,是建立在客户/服务器模型之上的,SSH绑定的端口号是非SSH完全排除了在不安全的信道上通讯的信息,被监听的可能性使用到了RAS算法,在授权过程结束之后,所有的传输都用IDEA技术加密。 作为工具使用的SSH允许其用户安全地登录到远程主机上执行命令或传输文件。它可以很好地运行任何使用TCP/IP协议的主机上。 (5)使用安全的拓朴结构。这种技术通常被称为分段技术。将网络分成一些小的网络,每一网段的集线器被连接到一个交换器上(Switch)。因为网段是硬件连接的,因而包只能在该子网的网球段内被监听工具截获。这样,网络中剩余的部分(在不同一网段的部分)就被保护了。 #1 (三)邮件炸弹 E-mail炸弹泛指一切破坏电子邮箱的办法,一般的电子邮箱的容量在5—6MB以下,平时大家收发邮件,传送软件都会觉得容量不够,如果电子邮箱一下子被成百上千甚至上万封电子邮件所占据,这是电子邮件的总容量就会超过电子邮箱的总容量,以至造成邮箱超负荷而崩溃。Kaboom3、Upyours4、Avalanche v2.8就是人们常见的几种邮件炸弹。防范邮件炸弹须注意: (1)不要将自己的邮箱地址到处传播,特别是申请上网帐号时ISP送的电子信箱。申请几个免费信箱对外使用。 (2)当某人不停炸你信箱时,你可以先打开一封信,看清对方地址,然后在收件工具的过滤器中选择不再接收该地址的信,直接从服务器删除。 (3)在收信时,一旦看见邮件列表的数量超过平时正常邮件的数量的若干倍,应当马上停止下载邮件,然后再从服务器删除炸弹邮件。(要用下面提到的工具) (4)不要认为邮件发送有个回复功能,就可以将发炸弹的人报复回来,发件人有可能是用的假地址发信,这个地址也许填得与收件人地址相同。这样你不但不能回报对方,还会使自己的邮箱彻底完结。 (5)你也可以用一些工具软件防止邮件炸弹,echom201即是一个功能强大的砍信机,每分钟能砍到1000封电子邮件,是对付邮件炸弹的好东西。 #1 (四)端口攻击 1.攻击原理 这类软件是利用Window 95/NT系统本身的漏洞,这与Windows下微软网络协议NetBIOS的一个例外处理程序OOB(Out of Band)有关。只要对方以OOB的方式,就可以通过TCP/IP传递一个小小的封包到某个IP地址的Port 139上,该地址的电脑系统即(Windows 95/NT)就会“应封包而死”,自动重新开机。 它不过是一些很小的ICMP(Internet Control Message Protocolata)碎片,当你机器收到这份“礼物”时,你的系统会不停地试图把碎片恢复,于是你的电脑系统就这样速度越来越慢直至完全死机!而你就只有重新启动。其实,并不只是Port 139会出现问题,只要是使用OOB的开放接受端,都有可能出现。例如,Identel所用的Port 113,收到同样的封包也会出问题。常见的端口攻击器有UKe23、Voob、Winnuke 2。 2.防范措施 将你的Windows95马上升级到Windows98,首先修正Win95的BUG,在微软主页的附件中有对于Win95和OSR2以前的版本的补丁程序,Win98不需要。然后学会隐藏自己的IP,包括将ICQ中“IP隐藏”打开,注意避免在会显示IP的BBS和聊天室上暴露真实身份,特别在去黑客站点访问时最好先运行隐藏IP的程序。 #1 (五)JAVA炸弹 1.炸弹原理 很多网友在聊天室中被炸了以后,就以为是被别人黑了,其实不是的。炸弹有很多种,有的是造成电脑直接死机,有的是通过HTML语言,让你的浏览器吃完你的系统资源,然后你就死机了。这就是java炸弹的原理。 2.Javascript炸弹 这个 javascript语言要求浏览在新窗口中再打开本页。新的页面被打开以后就会同样提出要求,于是浏览器不停地打开新窗口,没几秒钟你就死机了。就算是不死机,你也必须把浏览器中内存中驱除出去,这样,你就被踢出了网络。 下面分析一下这个HTML语言的原理。分析″javascript:n=1;do{window.open('')}while(n==1)″,javascript是定义运行此语言,n=1是定义变量n等于1,do{ }while(n==1)指当n等于1的时候运行{ }中间的命令,window.open('') 指打开本窗口,整句的意思是,变量n赋值为1,如果n等于1,那么就打开一个窗口,而n永远等于1,就不停地打开新的窗口。 3.防范措施 唯一的防范方法就是你在聊天室聊天时,特别是支持HTML的聊天室,请你一定记住关掉你浏览器里的Java功能,还要记住不要浏览一些来路不明的网站和不要在聊天室里按其他网友发出的超级链接,这样可以避免遭到恶作剧者的攻击。 #1 (六)密码漏洞 这是入侵者使用的最早也是最原始的方法,它不仅可以获得对主机的操作权,而且可以通过破解密码制造漏洞。 要获取系统密码及确认密码有效,首先必须取得系统的合法用户名。黑客获得用户名的途径主要有几方面:系统默认存在的用户名,如root;通过某些渠道取得系统用户的信息,根据该信息猜测用户名,如从用户公开的电子邮件账号等;对服务器使用finger命令来取得用户名;用户自己不小心泄漏的用户名。 当攻击者取得了用户名之后,就可以进行密码的猜测和破解并尝试登录。密码的猜测和破解有很多种方法,比较常用的有: 1.根据用户名进行猜测 因为有一些用户并不注意密码和用户名之间的相似程度,例如用户名为liuwei,密码就为liuwei或liuwei123,这样的密码非常容易被攻击者猜测到。 2.暴力破解 所谓暴力破解,就是指攻击者在确定用户名的情况下,用穷举法进行密码破解尝试。暴力破解分为在线和非在线两种方式。 当攻击者在线进行暴力破解时,会使用某个程序以相同的用户名不断向服务器发出登录请求,当服务器要求密码时,就发出一个按顺序排列的尝试密码。如果失败就再次发出登录请求,输入下一个尝试密码,直到成功登录。非在线暴力破解则是指攻击者在取得系统的密码文件后,对密码文件进行穷举解密。 3.字典破解 字典破解实际上和暴力破解差不多,主要区别在于字典破解对服务器的密码请求或密码文件不是进行穷举破解,而是根据字典文件中所存有的单词对密码进行匹配比较,直到找到正确的密码,或字典的单词匹配完为止。 上面讲述暴力破解和字典破解中,都提到了使用程序对密码文件进行破解,John The Ripper 1.4就是这样一个破解软件。它支持Windows、DOS、UNIX等操作系统,速度超快。对于没有Shadow(UNIX系统对密码文件所做的一种保护性屏蔽)的密码文档,John可以直接读取并用字典穷举击破。对于Passwd+Shadow的密码文件,John也提供了Unshdow程序直接把两者合成出没有Shadow的密码文档。 John的用法简介:(1)在命令提示符后键入:John-P:Passwd-W:Wordlist。Wordlist是字典文件,Passwd是你拿到的密码文件;(2)没有字典文件时,在John的配置文件—john.ini里,有密码长度和字母、数字、符号的设置,设置好后在破解就自动在内存中生成密码去比较;(3)用暴力法破密码时使用参数-i:all,其命令格式为:john-i:all-P:passwd。可破解类似于5e5t56e6无规则密码。这样可以产生A——ZZZZZZZZ(含数字、特殊符号等)的密码,基本上覆盖了整个有效密码段;(4)当破解过程中,需要暂时停止破解,可以按Ctrl+c键停止,John会自动保持破解进度,下次开始破解只要输入john-restore:restore即可继续上次的进度。 4.巧妙设置密码 对密码的保护是广大网络用户都应该注意的事。一般我们要注意以下几点:(1)不要将口令写下来或将密码存放于电脑文件中;(2)不要选取显而易见的信息作密码;(3)不要在不同系统上使用同一密码;(4)定期改变密码,至少3个月要改变一次。