金厚钵
“黑客”大体上应该分为“正”“邪”两类,正派黑客依靠自己掌握的知识帮助系统管理员找出系统中的漏洞并加以完善;而邪派黑客则是通过各种黑客技能对系统进行攻击、入侵或者做其他一些有害于网络的事情。因为邪派黑客所从事的事情违背了《黑客守则》,所以他们真正的名字叫“骇客”(Cracker)而非“黑客”(Hacker),也就是我们平时经常听说的“黑客”(Cacker)和“红客”(Hacker)。
黑客的行為主要有以下几种:
学习技术
互联网上的新技术一旦出现,黑客就必须立刻学习,并用最短的时间掌握这项技术,这里所说的掌握并不是一般的了解,而是阅读有关的“协议”(rfc),深入了解此技术的机理,否则一旦停止学习,那么依靠他以前掌握的内容,并不能维持他的“黑客身份”超过一年。
初级黑客要学习的知识比较困难,因为他们没有基础,所以学习起来要接触非常多的基本内容,然而今天的互联网给读者带来了很多信息,这就需要初级学习者进行选择:太深的内容可能会给学习带来困难;太“花哨”的内容又对黑客没有用处。所以初学者不能贪多,应该尽量寻找一本书和适合自己的完整教材,循序渐进地进行学习。
伪装自己
黑客的一举一动都会被服务器记录下来,所以黑客必须伪装自己使对方无法辨别其真实身份,这需要有熟练的技巧,用来伪装自己的IP地址、使用跳板逃避跟踪、清理记录扰乱对方线索以及巧妙躲开防火墙等。
伪装需要非常过硬的基本功才能实现,这对于初学者来说算得上“大成境界”了,也就是说初学者不可能用短时间学会伪装,所以并不鼓励初学者利用自己学习的知识对网络进行攻击,否则一旦自己的行迹败露,最终害的还是自己。
发现漏洞
漏洞对黑客来说是最重要的信息,黑客要经常学习别人发现的漏洞,并自己努力寻找未知漏洞,并从海量的漏洞中寻找有价值的、可被利用的漏洞进行试验,当然他们最终的目的是通过漏洞进行破坏或者修补上这个漏洞。
黑客对寻找漏洞的执着是常人难以想象的,他们的口号是“打破权威”,从一次又一次的黑客实践中,黑客用自己的实际行动向世人印证了这一点,世界上没有“不存在漏洞”的程序。在黑客眼中,所谓的“天衣无缝”不过是“还没找到”而已。
利用漏洞
对于正派黑客来说,漏洞要被修补;对于邪派黑客来说,漏洞要用来搞破坏。而他们的基本前提是“利用漏洞”,黑客利用漏洞可以做以下事情:
1.获得系统信息:有些漏洞可以泄漏系统信息,暴露敏感资料,从而进一步入侵系统;
2.入侵系统:通过漏洞进入系统内部,或取得服务器上的内部资料或完全掌管服务器;
3.寻找下一个目标:一个胜利意味着下一个目标的出现,黑客应该充分利用自己已经掌管的服务器作为工具,寻找并入侵下一个系统。
黑客应掌握的基本技能
从这一节开始,我们就真正踏上学习黑客的道路了,首先要介绍的是作为一名初级黑客所必须掌握的基本技能,通过这一节的阅读了解到黑客并不神秘,而且学习起来很容易上手。为了保证初学者对黑客的兴趣,采取了循环式进度,也就是说每一章节的内容都是独立、全面的,学习者只有完整学习过一章的内容,才能够学习下一章的内容。
1.了解一定量的英文
学习英文对于黑客来说非常重要,因为现在大多数资料和教程都是英文版本,而且有关黑客的新闻也是从国外来的,一个漏洞从发现到出现中文介绍,需要大约一个星期的时间,在这段时间内网络管理员已经有足够的时间修补漏洞,所以当我们看到中文介绍的时候,这个漏洞可能早已经不存在了。因此学习黑客从一开始就要尽量阅读英文资料、使用英文软件并及时关注国外著名的网络安全网站。
2.学会基本软件的使用
这里所说的基本软件是指两个内容:一个是我们日常使用的各种电脑常用命令,例如ftp,ping,net;另一方面还要学会有关黑客工具的使用,这主要包括端口扫描器、漏洞扫描器、信息截获工具和密码破解工具等。因为这些软件品种多,功能各不相同,所以本书在后面将会介绍几款流行的软件使用方法,学习者在掌握其基本原理后,既可以选择适合自己的,也可以在“第二部分”中找到有关软件的开发指南,编写自己的黑客工具。
3.初步了解网络协议和工作原理
所谓“初步了解”就是“按照自己的理解方式”弄明白网络的工作原理,因为协议涉及的知识多且复杂,所以如果在一开始就进行深入研究,势必会大大挫伤学习积极性。在这里我建议学习者初步了解有关TCP/IP协议,尤其是浏览网页时网络是如何传递信息,客户端浏览器如何申请“握手信息”,服务器端如何“应答握手信息”并“接受请求”等内容。
4.熟悉几种流行的编程语言和脚本
如上所述,这里也不要求学习者进行深入学习,只要能够看懂有关语言、知道程序执行结果就可以。建议学习者初步学习C语言、asp和CGI脚本语言,另外对于HTM超文本语言和php,Java等做基本了解,主要学习这些语言中的“变量”“数组”部分,因为语言之间存在内在联系,所以只要熟练掌握其中一门,其他语言也可以一脉相通,建议学习C语言和HTM超文本语言。
基本网络安全术语解释
1.协议
网络是一个信息交换的场所,所有接入网络的计算机都可以通过彼此间的物理连接设备进行信息交换。这种物理设备包括最常见的电缆、光缆、无线WAP和微波等,但是单纯拥有这些物理设备并不能实现信息的交换,这就好像人类的身体不能缺少大脑的支配一样,信息交换还要具备软件环境,这种“软件环境”是人类实现规定好的一些规则,被称作“协议”,有了协议,不同的电脑可以遵照相同的协议使用物理设备,并且不会造成相互之间的“不理解”。
这种协议类似于“摩尔斯电码”,简单的一点一横,经过排列可以有万般变化,但是假如没有“对照表”,谁也无法理解一份杂乱无章的电码所表述的内容是什么。电脑也一样,它们通过各种预先规定的协议完成不同的使命,例如RFC1459协议可以实现IRC服务器与客户端电脑的通信。因此无论是黑客还是网络管理员,都必须通过学习协议达到了解网络运作机理的目的。
每一个协议都是经过多年修改延续使用至今的,新产生的协议也大多是在基层协议基础上建立的,因而协议相对来说具有较高的安全机制,黑客很难发现协议中存在的安全问题直接入手进行网络攻击。但是对于某些新型协议,因为出现时间短、考虑欠周到,也可能会因安全问题而被黑客利用。
2.服务器与客户端
最简单的网络服务形式是:若干台电脑作为客户端,使用一台电脑当作服务器,每一个客户端都具有向服务器提出请求的能力,而后由服务器应答并完成请求的动作,最后服务器会将执行结果返回给客户端电脑。这样的协议很多,例如我们平时接触的电子邮件服务器、网站服务器和聊天室服务器等都属于这种类型。另外还有一种连接方式,它不需要服务器的支持,而是直接将两个客户端电脑进行连接,每一台电脑都既是服务器又是客户端,它们之间具有相同的功能,对等的完成连接和信息交换工作。例如DCC传输协议即属于此种类型。
由此看出,客户端和服务器分别是各种协议中规定的请求申请电脑和应答电脑。作为一般的上网用户,都是操作自己的电脑(客户端),并且向网络服务器发出常规请求完成诸如浏览网页及收发电子邮件等动作;而对于黑客来说则是通过自己的电脑(客户端)对其他电脑(有可能是客户端,也有可能是服务器)进行攻击,以达到入侵、破坏和窃取信息的目的。
3.系统与系统环境
电脑要运行必须安装操作系统,如今流行的操作系统主要由UNIX,Linux,Mac,BSD,Windows系列等,这些操作系统各自独立运行,它们有自己的文件管理、内存管理及进程管理等机制。在网络上,这些不同的操作系统既可以作为服务器、也可以作为客户端被使用者操作,它们之间通过“协议”来完成信息的交换工作。
4. IP地址和端口
上网可能会同时浏览网页、收发电子邮件及进行语音聊天等,如此多的网络服务项目,都是通过不同的协议完成,然而网络如此之大,我们的电脑怎么能够找到服务项目所需要的电脑?如何在一台电脑上同时完成如此多的工作?这里就要介绍到IP地址了。
每一台上网的电脑都具有独一无二的IP地址,这个地址类似于生活中人们的家庭地址,通过网络路由器等多种物理设备(无需初级学习者理解),网络可以完成从一个电脑到另一个电脑之间的信息交换工作,因为他们的IP地址不同,所以不会出现找不到目标的混乱局面。但是黑客可以通过特殊方法伪造自己电脑的IP地址,当服务器接受到黑客电脑(伪IP地址)的请求后,服务器会将应答信息传送到伪IP地址上,从而造成网络混亂。当然,黑客也可以根据IP地址轻易找到任何上网者或服务器,进而对他们进行攻击(想想现实中的入室抢劫),因而如今我们会看到很多关于“如何隐藏自己IP地址”的文章。
接下来解释一下上面提到的第二个问题:一台电脑上为什么能同时使用多种网络服务。这好像北京城有八个城门一样,不同的协议体现在不同的网络服务上,而不同的网络服务会在客户端电脑上开辟不同的端口(城门)来完成它的信息传送工作。当然,如果一台网络服务器同时开放了多种网络服务,那么它也要开放多个不同的端口(城门)来接纳不同的客户端请求。
大家在网络上经常听到的“后门”就是这个意思,黑客通过特殊机能在服务器上开辟了一个网络服务,这个服务可以用来专门完成黑客的目的,服务器上会被打开一个新的端口完成这种服务,因为这个端口是供黑客使用的,因而轻易不会被一般上网用户和网络管理员发现,即“隐藏的端口”,故称“后门”。
每一台电脑都可以打开65 535个端口,因而理论上可以开发出至少65 535种不同的网络服务。然而实际上这个数字非常大,网络经常用到的服务协议不过几十个,例如浏览网页客户端和服务端使用的都是80号端口,进行IRC聊天则在服务端使用6667端口、客户端使用1026端口等。
常用黑客软件用途分类
1.防范
这是从安全角度出发的一类软件,例如防火墙、查病毒软件、系统进程监视器和端口管理程序等都属于此类软件。这类软件可以在最大程度上保证电脑使用者的安全和个人隐私,不被黑客破坏。网络服务器对于此类软件的需要也十分重视,如日志分析软件及系统入侵软件等可以帮助管理员维护服务器并对入侵系统的黑客进行追踪。
2.信息搜集
信息搜集软件种类繁多,包括端口扫描、漏洞扫描及弱口令扫描等扫描类软件;还有监听及截获信息包等间谍类软件,其大多数属于亦正亦邪的软件,也就是说无论正派黑客、邪派黑客、系统管理员还是一般的电脑使用者,都可以使用这类软件完成各自不同的目的。在大多数情况下,黑客使用这类软件的频率更高,因为他们需要依靠此类软件对服务器进行全方位扫描,获得尽可能多的关于服务器的信息,在对服务器有了充分的了解之后,才能进行黑客动作。
3.木马与蠕虫
这是2种类型的软件,不过他们的工作原理大致相同,都具有病毒的隐藏性和破坏性,另外此类软件还可以由拥有控制权的人进行操作,或由事先精心设计的程序完成一定的工作。当然这类软件也可以被系统管理员利用,当作远程管理服务器的工具。
4.洪水
所谓“洪水”即信息垃圾炸弹,通过大量的垃圾请求可以导致目标服务器负载超负荷而崩溃,近年来网络上又开始流行DOS分散式攻击,简单地说也可以将其归入此类软件中。洪水软件还可以用作邮件炸弹或者聊天式炸弹,这些都是经过简化并由网络安全爱好者程序化的“傻瓜式”软件,也是本书一开始指责的“伪黑客”手中经常使用的软件。
5.密码破解
网络安全得以保证的最实用方法是依靠各种加密算法的密码系统,黑客也许可以很容易获得一份暗文密码文件,但是如果没有加密算法,它仍然无法获得真正的密码,因此使用密码破解类软件势在必行,利用电脑的高速计算能力,此类软件可以用密码字典或者穷举等方式还原经过加密的暗文。
6.欺骗
如果希望获得上面提到的明文密码,黑客需要对暗文进行加密算法还原,但如果是一个复杂的密码,破解起来就不是那么简单了。但如果让知道密码的人直接告诉黑客密码的原型,是不是更加方便?欺骗类软件就是为了完成这个目的而设计的。
7.伪装
网络上进行的各种操作都会被ISP、服务器记录下来,如果没有经过很好地伪装就进行黑客动作,很容易会被反跟踪技术追查到黑客的所在,所以伪装自己的IP地址、身份是黑客非常重要的一节必修课,但是伪装技术需要高深的网络知识,一开始没有坚实的基础就要用到这一类软件。
学习黑客的基本环境
1.操作系统的选择
我们经常听说黑客酷爱Linux系统,这是因为Linux相对Windows提供了更加灵活的操作方式以及更加强大的功能。例如对于IP地址的伪造工作,利用Linux系统编写特殊的IP头信息可以轻松完成,然而在Windows系统下却几乎不可能做到。但是Linux也有它不足的一面,这个系统的命令庞杂、操作复杂,并不适合初学者使用,对于个人学习者,并没有过多的人会放弃“舒适”的Windows、放弃精彩的电脑游戏和便捷的操作方式,去全心投入黑客学习中。而且对于初学黑客的学习者来说,大多数网络知识都可以在Windows系统中学习,相对Linux系统,Windows平台下的黑客软件也并不在少数,另外通过安装程序包,Windows系统也可以调试一定量的程序,因此初步学习黑客没有必要从Linux入手。
2.需要的常用软件
如果你的系统是WindowsME,那么告诉你一个好消息———你没有必要安装过多的额外軟件,因为我们接触的黑客知识依靠系统提供的命令和内置软件就足可以完成!除了基本的操作系统以外,学习者还需要安装各类扫描器,之后下载一个比较优秀的木马软件和一个监听类软件,除此以外别无它求。如果有必要,读者可以自行安装本文上述软件,然后学习其用法,但是我要告诉你,对于各类炸弹,还有网络上各式各样的黑客软件,在学习完本书后,你都可以自己制作、自己开发,根本没有必要使用他人编写的软件。
对于扫描器和监听软件,我给出以下建议,并且在本书的后面还会对这几个软件进行详细介绍。
这3个软件都是免费的,而且功能异常强大。像xscanner是国产软件,它集成多种扫描功能于一身,并且同时支持控制台和图形界面2种操作方式,另外提供了详细的漏洞使用说明。对于初学者来说,具备了这2个工具,学习黑客已经绰绰有余。
3.额外的工具
如果可以安装下面的工具,将会对学习黑客有莫大的帮助,当然下面的软件主要是学习额外内容并为“第二部分”学习作铺垫,没有也不会妨碍本书的学习。
拥有某些网络应用的后台服务程序,可以将自己的电脑设置成一个小型服务器,用来学习相应的网络应用,从“内部”了解其运作机理,这将会大大提高自己对服务器的感性认识;同时还能在激活服务器的时候,监测自己服务器上的数据,如果有其它黑客来攻击,则可以清晰记录下对方的攻击过程,从而学习到更多的黑客攻击方法。对于本书而言,主要介绍网站的Perl,ASP等脚本语言漏洞,所以可以安装一个IIS或者HTTPD,然后再安装ActivePerl,使自己的服务器具备编译cgi,pl脚本的能力。使用自己的服务器还有一个好处,可以节省大量的上网时间,将学习、寻找漏洞的过程放到自己的电脑上,既节省了金钱,又不会对网络构成威胁,一举两得。
4. C语言编译平台
今后在学习黑客的路途中,将会遇到很多“属于自己的问题”,这些问题网络上的其他人可能不会注意,所以无法找到相应的程序,这个时候学习者就要自己动手开发有关的工具,安装一个Borland C++将会非常便捷,通过这个编译器,学习者既可以学习C语言,也能够修改本书后面列出的一些小程序,打造一个属于自己的工具库。