【综述】
一提起网络安全,大家心里想到的首先应该都是"某某的主页被黑了""五角大楼昨天又被黑客闯入"之类的讯息,其实我认为这只是安全的一个方面,是属远程攻击,但你是否想到,90%以上的入侵行为其实不是黑客们干的,而是你身边的同事、朋友……或者你再想想,系统被人侵入后造成资料丢失的后果,但如果你的电脑被暴雨干干净净彻头彻尾地洗了一遍,你里面的数据还在不在呢?所以我认为计算机安全应该分为物理安全、本地安全和远程安全。
物理安全因为牵涉到诸如机房布置,防水防火等事项,不在本文的讨论范畴内。
【本地安全失控】
单机安全
古龙大侠说过:越是亲密的朋友,就可能是越危险的敌人。听说过吧--没有?我告诉你吧,你有一台电脑,平时用来上上网,玩玩游戏,偶尔也敲点公文进去,你认为它挺安全的,但有一天,你的朋友突然告诉你,他有你的上网帐号和密码,你相信吗?--不要不信,这种方法挺多的,假如你用的是WINDOWS,假如你拨号上网的密码写了保存,那--默哀三分钟--你根本一点安全概念都没有嘛!任何人只要在你的电脑上运行某个小软件就……
我从来不保存什么密码--你可能要得意的说,但--你的朋友在你电脑里装了一个木马,可以捕捉拨号网络那个"连接到"的Caption,然后记下你所按的键盘,悄悄地将文件写入一个加密过的文本后再自动退出--会点编程的人应该都做得到,你的电脑是不是失守了?
设了屏幕保护密码--天啊,重启动后还有什么?
设定了管理策略,用策略编辑器编辑过,如果不输密码他就进不了,进去了也什么都干不成!--把你的user.dat和system.dat删掉后用我的代替,这个主意你认为怎么样?
当然我不是让你杯弓蛇影弄得一个朋友都没有只能形影相吊--这样活着太没劲啦!
如果你的电脑没有机密资讯的话当然无所谓,如果有--保证尽量少的人接触它!
写了这么多都是WIN9X的,UNIX系统里这方面的问题是不是就少了呢?从物理方面来说,如果一台机器摆放的位置不安全,能让人有足够的时间打开机箱做一些手脚,你的机器就无法安全,就拿我的机子来说吧,我有两块硬盘,但在WIN9X和NT里都看不到第二块硬盘的影子--我把它装上了LINUX,而且只能从一个特定的地方启动它,启动之后,在LINUX下,我可以任意的用mount命令装其它操作系统里的所有数据一扫而空……明白我的意思了吗?
局域网安全
基于同样的道理,局域网中的电脑在物理上仍然要严加控制,同时还要经常性地注意局域网中用户的一些非正常的举动--为什么?这还用问,就拿我身边的例子来说吧,我有个朋友,公司里三十多台电脑连成一个局域网,但这家伙总想弄到主机的最高权限,于是乎监听SMB密文、安装木马忙得不亦乐乎--最后呢,当然得手了,毕竟是我的哥们嘛:-)
还有,比如在UNIX中最好要限制ROOT只能由主控台(console)登录、要谨慎使用su命令等等,不然都会给同一网域内的一群"虎视眈眈"想获取最高权限者以机会……
【三、远程安全与黑客常用方法】
1、针对个人用户
个人用户在网上最常遇到的"侵略性"的行为不外乎以下几种
垃圾邮件
这是一个永恒但又无奈的话题,垃圾邮件包括了诸如一些赚钱、广告之类的信件和恶意的人们通过邮件炸弹发来"成吨重"的信件,这不需要任何技巧,也最是无聊--我收到的此类信件多如牛毛呀!对付此类信件远程登陆删除就行了,也没有必要非查出该发信人的行踪再施以报复--网上这种东西太多,可谓野火烧不尽……然后在信箱配置上设定拒收某些人、或者超大的信件就行了,这种垃圾不在我们的讨论范围之内。
蓝屏炸弹
这是针对WIN95的OOB漏洞而开发出来的一些小软件,多命名为*NUKE等等,以前是专门攻击139端口,被攻击的计算机多会出现M$著名的蓝屏错误,WIN98下此漏洞已经PATCH上,所以大多数NUKE软件都已失效了,但最近听说一个叫VOOB的软件对WIN98仍然有效--我还没试过呢,要不要拿你开刀?该软件界面如下:(此类软件界面大抵如此,使用简单无比)
要防范此类软件的攻击,一个土办法就是监听端口,网上有许多监听端口的软件,你只要设定好监听的PORT,一旦有人企图向这个端口发送信息包就会被记录下来,然后^&%^&*,抓到他后,你自己看着办吧……
共享文件
这个问题网络里有相当多的安全人士已经提过无数次了,但……我每次扫描一个C类地址群的时候都能发现一大群人依旧开着共享没有任何防护而且自得其乐,很抱歉,我看过其中一些人的信、图片甚至更加机密的……你的电脑里是不是有这样的托着磁盘的小手呢?
有的话可要小心了,你开着共享呢,也就是说,下面的方法对你来说相当有效……
1) 本地攻击
将c$、d$、admin$和print$这些共享是很危险的.但是出于某些原因不愿意详细提及危险在何处.最近问到这个问题的人越来越多,现决定把我们的发现公布出来.
众所周知,NT安装以后,将每个磁盘自动分配一个共享,c$,d$和e$等.这些共享是隐藏的共享,在网上邻居是看不到它们的.另外还有 admin$,ipc$,打印机共享后,还会生成print$这个共享.
微软说这些共享是为管理而设置的,且最好不要删除.
实际上,这些c$共享资源都是可访问的,只不过需要一点权限.而print$则一般任何人都可以访问.
缺省地,要访问c$,需要backup operator以上的权限,即需要文件的备份权限.假设你的NT域内有一个帐号是benny,NT的ip是192.168.0.1,他是Backup operator,而你得到了这个帐号的密码,那么,你就可以通过网络访问NT服务器的c盘,而不管c盘有没有被共享. 方法如下:
在运行命令中输入:
\\192.168.0.1\c$
则一个包含c盘所有文件的窗口将会弹出来.
或者 net use z: \\192.168.0.1\c$
则NT server上的c:盘就被映射为本地的z:盘.
缺省地,你对这些目录将具有完全控制的权限,你可以用NT入侵升级版的方法,把getadmin的文件传到c盘来取得Administrator权限.
另外,对于\\192.168.0.1\print$你不需要backup operator的权限就能完全控制
2) 远程攻击
本地攻击的这个技巧很多人都知道,下面来谈谈远程攻击
这个毛病是可以用来远程攻击的!
假设有一台server是www.xxx.com
一般人输入 \\www.xxx.com\c$ 后
会出现一个对话框,要你输入密码(但并不要你输入密码)
其实这是一个幌子,maybe微软的开发人员留了一个公用密码,否则,哪有不需要ID就提示输入密码的?
上面,我们提到,在局域网内,只要是backup operator以上级别的人输入这条命令,就不会有密码输入对话框出现,而会直接弹出暴露c盘所有文件和目录的窗口.
本站发现的是,如果你有Backup operator以上的权限,用域欺骗的方法,可以远程访问C盘,并且在缺省情况下受到你的完全控制!
发现的步骤:
如上所述,要打开\\www.xxx.com\c$这个磁盘,就得在www.xxx.com的这个域内登录.但是通过TCP/IP如何在NT的Lan内登录?我产生了一个欺骗这个NT域的念头,即,我在本地设置一个与www.xxx.com的域的名称相同的主域控制器,假设www.xxx.com的域的名称叫xxx, 则我将自己本地主域控制器的域名也改成xxx,并且也设置一个benny的帐号和密码.
然后拨号上网,再输入 \\www.xxx.com\c$ 后
C盘的目录居然弹出来了,权限是完全控制,欺骗成功!
以上的方法有个问题,如何得知对方的域的名称?用这个命令:
NBTstat -A http://www.xxx.com/
quack
注:NBTstat是NT上一个能检验从NetBIOS名到TCP/IP地址的转换的实用工具,能检查NetBIOS的当前佳话状态,也可以把表项从LMHOSTS文件添加到NetBIOS名字高速缓存中,或者检验注册的NetBIOS名和分配给你的计算机的NetBIOS作用域,与NETSTAT不同的是它只处理NetBIOS连接,而NETSTAT处理你的系统与其它计算机的全部连接。
当然,用这篇Retina的文献中提到的方法,也可以获得其域的名称.
本文的基础是要获得Backup Operator的权限,结果是能获取Administrator权限,Local/Remote都有效.
但是,\\www.xxx.com\print$这个目录是不需要什么权限的,任何人都能访问.
因为几乎所有的NT机器的c$目录是打开的,而且就算有人把这个共享删除了,机器重新启动后又会被自动打开,所以这个安全问题是很严重的.关于域欺骗的问题,是微软的安全漏洞无疑.在这里看到,本文还要用到其它的hack技巧如nbtstat和getadmin,成功入侵一台NT server是要用到很多知识的.
看了之后是不是觉得心惊肉跳--你硬盘上的文件全在别人的掌握之中!这种感觉不太好吧,呵,所以如果不是必要的话呢,WIN98文件及打印共享的选项就不要开了,NT下最好对NetBIOS作个限制,要开的话--找个安全工具,比如LOCKDOWN2000,该软件用法相当简单,可以实时监控他人同你的电脑的连接……试试你就知道了。
还有些人可能会说--我是拨号上网,动态IP,就算共享又怎么样?请问你有没有用ICQ?ICQ不是有"隐身人"的作用吗?有些人又不服了--唉,那你就开着吧,告诉我你的ICQ号……
木马侵袭
说到木马很多人的第一反应就是BO,不错,BO的确是迄今为止水平最高的一个木马程序了--对了,要解释一下什么是木马吗?就是远程控制软件啦!一个客户端,一个服务器端,两边都装好后在客户端就可以访问远程的服务器了,之所以称其为木马,是因为它往往是在服务器端不知情的情况下被装入的--就是说,你一不小心,就"对外开放"了。
网上木马程序很流行,其实说来也很简单,大致都是修改注册表或者INI文件加载一个文件提供服务,这就手工都很容易检测出木马来。一,看增加的不明服务。二,因为木马是作为服务一般要打开一个网络通信端口,所以检查增加的服务端口也很容易检查出木马程序来。其实完全可以稍微改动操作系统内核而作出一个很好的木马来,这样不用改动注册表也可以让用户很不容易发觉。(比如说将木马做进某个驱动程序里面,就^&*%$,咱们劳苦大众想手工检测可就不容易了……)
现在流行的一些木马多将自身复制到某个文件夹下隐藏起来,但它要运行就得自启动,所以检查注册表HKEY_LOCAL_MACHINE\software\microsoft\windows\currentvision\run下面有没有什么值得怀疑的对象就行了。如果对这些不熟悉的话,下载一个叫cleaner的软件亦可解决许多木马问题,刚才提到的LOCKDOWN2000也有清除木马功能。
恶意代码
这可能在聊天室或者浏览页面时发生,现在主要是用JavaScript写成的代码,其作用千奇百怪,举个简单的例子吧,比如众所周知的聊天室攻击手段:<img src="javascript:n=1;do{window.open('')}while(n==1)" width="1">让别人开无数个窗口,当然你得把自己的Java关了。(不过现在的聊天室可没那和好破坏了,你最好得先搞清楚某个较有代表性聊天室的ASP代码,对它有一番了解之后,举一反三,自行发挥了。
另一方面是一些包含恶意代码的HTML页面,你有可能在浏览某个页面的时候被人把硬盘格式化了^&^--好夸张哦!
在Windows 95 和Windows 98的网络代码部分存在溢出漏洞。通过使用一个超长的文名,攻击者可以让用户机器崩溃或执行任意代码。这个漏洞可以通过web页或HTML邮件来加以利用,在用户用浏览器打开此页面或打开邮件时进行攻击。此检验程序只在日文Windows 98\IE4\IE5环境下测试。在VC下编译后可以得到一个 ie5filex.exe,直接在DOS下键入ie5filex a,它便会生成一个HTML文件,打开这个文件时会提示错误并且关机,怎么样,有点味道吧!
病毒攻击
病毒是什么就不用我说了吧,它有几个比较让人头疼的特点,破坏、潜伏、自我复制……建议大家开着一个实时监控的软件,而下载软件时最好先扫描一下再行打开。
当然网络上有些破坏者将病毒裹在信息包中,当成一些好玩的东西发送给别人,对这些不请自来的可执行文件、WORD&EXCEL文档,最好先做扫描(我就曾见过有人将CIH裹在他自己写的一个自动生成情书的小程序里寄给别人,而且还会将系统的日期调整到四月十六号……)
WEB欺骗
台湾曾发现一起通过WEB欺骗获取受害人的银行帐号的事件(应该也是在九、十月份发生的吧),操作者将某银行的页面拷贝,然后将该银行的URL改写,于是浏览者便在假的银行页面上进行一系列的数据操作--当然一切都被记录在入侵者的电脑里了,然后的事情不用我说大家应该也知道了吧……这种事情你们可千万不能干呀^&^
攻击的关键在于要将该银行页面上的所有URL都指向入侵者的机器。
假设攻击者的服务器在机器www.hacker.cn上运行,被侵入的银行的URL是www.bank.tw,那么攻击者要在页面上的所有URL前加上自己的URL如下:http://www.hacker.cn/http://www.bank.tw。
当然这种行为要在入侵过的机器上干,要不然很容易就会被人发现你的真实身份,那就逊了^&^
2、针对网络主机
网络主机最经常遇到的就是非法进入了--你得记住这是违反法律的噢!
假定一个黑客要对某网站进行攻击行为,那么他将使用什么手段进入呢……
口令攻击
口令可以说是一个系统的大门,大多数新手开始都是由强攻口令而走上黑客之路的。过去许多系统中都有所谓JOE帐户,既用户名与口令相同的用户--现在相对少了,即便如此,还是有相当多的弱口令,如仅在用户名后简单加个数字之类的,那么一些破解口令的程序可就大显身手了。
扫描 记得似乎是绿色兵团的goodwell说过,好的扫描器千金难买,的确如此,其实扫描器就是将已知的系统漏洞写入程序,运行后它会搜索某一地址的站点,如果该站存在某些已知的漏洞,则扫描器最后的报告中会告知你,那么一名黑客就可以尝试以这些已知的漏洞去进攻--有目标了嘛!当然有些可能已被PATCH上了,可有些则不然,成功与否就看你的功力与运气了。
另一种扫描器是扫描端口的,这也是一种获取主机信息的好方法。比如它能轻易得到运行的操作系统信息以及提供了哪些服务。在UNIX下通常开放许多端口,如13(daytime)\19(chargen)……等等,而NT只提供一些通用服务如PORT21,PORT80,同时还在135、139端口进行监听,而WIN95则只在139进行监听,这样操作系统的判别是不是就非常容易了呢?
缓冲区溢出漏洞
无论是系统提供的一些调用或是用户编写的程序,有时都可能缺乏对要拷贝的字符串长度的检查。当超过缓冲区长度的字符串被送入过小的缓冲区中时,常会将进程中相邻空间覆盖掉。若较严重的话,可能将堆栈破坏,使程序无法执行。
在UNIX中的某些应用程序,如果我们输入三五页的字符作为命令行参数,看程序的动作的话,有时这个程序会出错,同是会有一个CORE的文件出现,里面可能包含一些你想要的东西。也可以用一类精心写出来的代码,得用SUID程序中存在的这种错误可以很轻易地取得系统的超级用户权限。由于缓冲区溢出漏洞牵涉到的程序面相当广,一时很难对这类型的攻击做出有效的杜绝。
一般情况下,黑客会在取得目标机器的信息之后到知名的黑客站点查找该种系统以及其上运行的各种服务是否有漏洞,然后将寻找来的一段程序代码上传编译运行……(文章写到这里真的很累,就不再找具体例子说明了,否则有一大堆的代码要KEYIN,我怎么受得了)
木马
只要是执行用户不知道的任何操作,表面上又仿佛能完成某些正常功能的程序都可称之为木马,它们一般出现在几种时候,一是施放者想借木马夺取某些权限或获取信息时;二是系统被攻破后为方便日后进入而设下各种机关。它可以出现在编译过的程序中,也可以出现在系统管理员需要执行的系统命令中,甚至可以作为消息的一部份发送。比较精彩的是:一些邮件头(mail headers)允许用户退到shell并执行命令,因为这一特性使邮件在被阅读时激活,黑客利用它便能给终端发送特定的消息,在终端在储存一个命令序列并且执行它……听起来很酷吧!
其它(拒绝服务攻击、网络监听)
拒绝服务其实说起来也很容易理解,就是让服务器的CPU过载、磁盘饱和、内存不足……总之你能想到的能让它动弹不得的行动都可以称之拒绝服务,因为这造成了使用该服务器的正式用户的请求被服务器拒绝。
至于网络监听--唉,网络监听!说起来还挺烦,我手真的难受呀,太酸了
,就是--当信息以明文形式在网络上传输时,将网络接口设置在监听模式--别说得这么烦了,就是安个监听的软件,就可以将网上传输的信息截获了,常用的监听软件有运行在Linux\Solaris等平台下的Sniffit以及WIN9X、NT下的NetXRay,大家自己尝试一下吧,我就偷工减料了……