第二篇、攻击防御之旅
除了病毒,互联网络上还有一股暗潮——人为攻击。
早期的攻击者大多是技艺高超之辈,他们对服务器的系统、程序相当熟悉,常常通过寻找他人系统中的漏洞来提高自身技术水平,并以此为乐。不过他们的默认准则之一是不攻击普通终端用户、进驻服务器后不改变服务器重要设置。那是一群令人尊敬的人,他们在技/艺的边缘地带行走,以自己独特的方式磨练着自己;独特立行,或许你曾因为各种原因在im软件上,在web论坛中,在irc聊天室里与他们匆匆邂逅又匆匆离别,却茫然不知道他们的真正身份;都是真正意义上的技术好手,对操作系统,网络协议,编程语言都有相当造诣,他们中相当一部分人的正当职业就是高级程序员、系统分析师、网络管理员——这类人,我们尊敬地称他们为“黑客,俗称“黑帽。
到了商业时代,随着金钱利益的驱动,行行色色的各类人进入了互联网。其中有一群被金钱利益驱动着的人,他们也有着不错的技术,却被金钱物欲所俘获,将自己的技术和灵魂出卖给金钱——只要为了经济利益,可以不择手段地进行破坏。他们对没利益的终端个人用户也没有什么兴趣,相比之下服务器更令他们青睐。把攻击得逞的服务器做成肉鸡以备后用是他们的习惯之一。这类人,我们称他们为“骇客,俗称“灰帽。
就如有影就有光一样,网络上也有跟“骇客相反的一类人,他们以研究系统漏洞、帮助企业实施安全方案为职,我们称他们为“安全顾问。他们具有足以和“骇客匹敌的能力,网络上的商业服务器攻防之战大多是在他们与“骇客之间展开,,俗称“白帽。
最后一类,可说是堕落的平庸者。使用着前几类人所开发者的工具,对网络上的机器——不管是终端用户还是服务器进行扫描;看到有漏洞的系统就又使用他人的教程、工具尝试进入,并在进入之后大肆进行破坏;在无法进入的时候,甚至就直接用DDOS攻击了事。他们破坏的理由大多是为了逞一时之愉快或为了炫耀自己而已,这类人没有什么技术可言,行为也无道德可言。他们不具备扎实地技术功底,大多是使用前三类高手所开发的工具,这样的一类人,一般被称为“脚本小子。值得附带一提的是,国内不少所谓“安全站点上驰骋风云、威风八面的“高手也不过就属于这类档次的混混而已——不知天高地厚的自吹自擂也是这类家伙常见的特性之一呢。
对个人用户而言,由于不具备较大的经济利益,因此前三类人一般不会染指用户的计算机。让用户深受其害的,常常是脚本小子的所为。
攻击的六大步骤
首先,让我们看看这类家伙是怎么样一步步发起攻击的,一次典型的正面攻击大概分这么几步来进行,值得一提目前的网络病毒传染方式从实质上来讲也是一种自动攻击,因此下面的步骤对待病毒也是同样适用;
1.利用扫描工具批量ping一个段的地址,判断存活主机;
为了加快感染的速度,常常是ping不通的主机就放弃后续的操作,相当多的病毒均是属于先ping目标主机,再进行感染操作的;
2.扫描所开放端口;
针对常见的默认端口来猜测服务器的性质,如80是web服务器;21是ftp,22是 ssh,25是smtp等等;
3.根据获得的情报,判断主机的操作系统和决定攻击方式;
如果操作系统开了80的,就看看web服务器的信息;如果开了21,就看看ftp服务器的信息——从这些蛛丝马迹中获得资料,如从iis的版本号、ftp服务的欢迎信息来判断所用的程序,以及操作系统可能使用的版本;
4.尝试攻击——在这一步,分为漏洞攻击、溢出攻击、密码破解攻击;
对待网络共享,一般采用利用弱密码漏洞方式进入;对待公共服务,如web、ftp则通过查找该版本的软件漏洞(这个在google上搜索到很容易,甚至有示范代码的)进行溢出攻击;枚举用户帐号,通过挂载密码字典,进行弱密码穷尽猜测攻击等等;
5.进入系统,想办法提升权限;
如果是通过服务漏洞进入,则不少情况下默认就是最高权限了(windows的服务大多默认以administrator权限运行),如果通过其他方式获得帐号密码的,那么还要想办法提升权限,常见的做法有利用重定向方式写系统设置文件、运行有权限执行的高权限程序并造成溢出获得;
6.获得最高权限后进行破坏行为实施;
常见的就是安装木马、设置后门、修改配置、删除文件、复制重要文件等;
应对攻击行为
让我们分析一下以上6步,看看该怎么应对攻击行为。
利用扫描工具批量ping一个段的地址,判断存活主机;
由于无谓的攻击一个不能确定是否开机的ip地址从效率上来说比较低下,在要求快速攻击/感染的情况下,常常会对目标地址进行ping检测——如著名的冲击波病毒等;换句话说,如果能让我们的主机不回应icmp包,则对方无法确定我们的存活,很可能就此放弃攻击。目前不少免费/商业的个人网络防火墙都带了这一功能;
判断主机的操作系统和扫描所开放端口;
个人用户所开主机的服务类端口不多,但由于windows自身的设置问题,例如win98共享漏洞、win2k默认开着telnet服务等原因,让攻击者有多个攻击选择。在这一步,同样可以用防火墙把必要的端口禁止掉——我常用的做法是把135、137、138、139、445端口禁止掉,这能避免很多麻烦,windows的网络共享安全性实在不怎么好,个人推荐用户考虑放弃网络共享,采用ftp等方式进行必要的文件传输;
根据获得的情报,决定攻击方式;
在这一步,攻击者将上一步扫描的资料进行汇总,然后确定攻击方式——因此上一步中,我们如果能将对外的端口开得尽量少,那么攻击者能利用的资源也就越少,出现漏洞攻击的可能行就越小;
尝试攻击——在这一步,分为漏洞攻击、溢出攻击、密码破解攻击;
由于攻击个人用户的家伙大多是属于脚本小子一级的,只会用别人现成工具的居多,因此有了上面的防御后,能让他们利用的漏洞也不是太多了。只要密切注意自己所用操作系统的动态,随时给系统升级补丁,一般来说攻击者已经没折了。
进入系统,想办法提升权限;
进入到系统之后,对其他平台而言,攻击者获得的大多不是root权限,还要进行权限提升的步骤,利用重定向写配置文件、信任欺骗等手段来提升权限;而在windows下,个人用户大多直接以administrator的身份登陆并进行日常使用(值得一提的是天缘看到不少win2k/nt服务器的管理员在进行日常操作的时候也使用administrator帐号,甚至在服务器上浏览不可信任的web页),且windows的后台服务大多直接以administrator身份运行,因此一旦被入侵,直接获得administrator的几率相当高,客观上降低了攻击难度。漏洞多,补丁慢,服务权限设置设置不严格——这就是攻击者更喜欢攻击windows系列操作系统的原因了。
获得最高权限后进行破坏行为实施;
到这一步,基本上用户已经无力阻挡了——最好的做法是立即拔掉网线再谋对策了。
对待上面这样典型的正面攻击行为,有一个好的个人用户防火墙是不错的选择,天网/金山的的偶比较好用,目前我个人的桌面系统使用的是费尔防火墙,它操作上不如天网/金山方便,但可定制性更好一些。普通用户可以下一个天网的防火墙来用,默认的规则已经可以对付上面提到的大部分攻击行为了。
正因为随着个人防火墙的使用,脚本小子进行正面攻击不容易得逞,因此采用欺骗的手段进行攻击成为了更为可取的方式。