序章:开始学习黑客之前。

第一节、黑客的种类和行为     以我的理解,“黑客”大体上应该分为“正”、“邪”两类,正派黑客依靠自己掌握的知识帮助系统管理员找出系统中的漏洞并加以完善,而邪派黑客则是通过各种黑客技能对系统进行攻击、入侵或者做其他一些有害于网络的事情,因为邪派黑客所从事的事情违背了《黑客守则》,所以他们真正的名字叫“骇客”(Cracker)而非“黑客”(Hacker),也就是我们平时经常听说的“黑客”(Cacker)和“红客”(Hacker)。
    无论那类黑客,他们最初的学习内容都将是本部分所涉及的内容,而且掌握的基本技能也都是一样的。即便日后他们各自走上了不同的道路,但是所做的事情也差不多,只不过出发点和目的不一样而已。
    很多人曾经问我:“做黑客平时都做什么?是不是非常刺激?”也有人对黑客的理解是“天天做无聊且重复的事情”。实际上这些又是一个错误的认识,黑客平时需要用大量的时间学习,我不知道这个过程有没有终点,只知道“多多益善”。由于学习黑客完全出于个人爱好,所以无所谓“无聊”;重复是不可避免的,因为“熟能生巧”,只有经过不断的联系、实践,才可能自己体会出一些只可意会、不可言传的心得。
    在学习之余,黑客应该将自己所掌握的知识应用到实际当中,无论是哪种黑客做出来的事情,根本目的无非是在实际中掌握自己所学习的内容。黑客的行为主要有以下几种: 一、学习技术:     互联网上的新技术一旦出现,黑客就必须立刻学习,并用最短的时间掌握这项技术,这里所说的掌握并不是一般的了解,而是阅读有关的“协议”(rfc)、深入了解此技术的机理,否则一旦停止学习,那么依靠他以前掌握的内容,并不能维持他的“黑客身份”超过一年。
    初级黑客要学习的知识是比较困难的,因为他们没有基础,所以学习起来要接触非常多的基本内容,然而今天的互联网给读者带来了很多的信息,这就需要初级学习者进行选择:太深的内容可能会给学习带来困难;太“花哨”的内容又对学习黑客没有用处。所以初学者不能贪多,应该尽量寻找一本书和自己的完整教材、循序渐进的进行学习。 二、伪装自己:     黑客的一举一动都会被服务器记录下来,所以黑客必须伪装自己使得对方无法辨别其真实身份,这需要有熟练的技巧,用来伪装自己的IP地址、使用跳板逃避跟踪、清理记录扰乱对方线索、巧妙躲开防火墙等。
    伪装是需要非常过硬的基本功才能实现的,这对于初学者来说成的上“大成境界”了,也就是说初学者不可能用短时间学会伪装,所以我并不鼓励初学者利用自己学习的知识对网络进行攻击,否则一旦自己的行迹败露,最终害的害是自己。
    如果有朝一日你成为了真正的黑客,我也同样不赞成你对网络进行攻击,毕竟黑客的成长是一种学习,而不是一种犯罪。 三、发现漏洞:     漏洞对黑客来说是最重要的信息,黑客要经常学习别人发现的漏洞,并努力自己寻找未知漏洞,并从海量的漏洞中寻找有价值的、可被利用的漏洞进行试验,当然他们最终的目的是通过漏洞进行破坏或着修补上这个漏洞。
    黑客对寻找漏洞的执著是常人难以想象的,他们的口号说“打破权威”,从一次又一次的黑客实践中,黑客也用自己的实际行动向世人印证了这一点——世界上没有“不存在漏洞”的程序。在黑客眼中,所谓的“天衣无缝”不过是“没有找到”而已。 四、利用漏洞:     对于正派黑客来说,漏洞要被修补;对于邪派黑客来说,漏洞要用来搞破坏。而他们的基本前提是“利用漏洞”,黑客利用漏洞可以做下面的事情:
    1、获得系统信息:有些漏洞可以泄漏系统信息,暴露敏感资料,从而进一步入侵系统;
    2、入侵系统:通过漏洞进入系统内部,或取得服务器上的内部资料、或完全掌管服务器;
    3、寻找下一个目标:一个胜利意味着下一个目标的出现,黑客应该充分利用自己已经掌管的服务器作为工具,寻找并入侵下一个系统;
    4、做一些好事:正派黑客在完成上面的工作后,就会修复漏洞或者通知系统管理员,做出一些维护网络安全的事情;
    5、做一些坏事:邪派黑客在完成上面的工作后,会判断服务器是否还有利用价值。如果有利用价值,他们会在服务器上植入木马或者后门,便于下一次来访;而对没有利用价值的服务器他们决不留情,系统崩溃会让他们感到无限的快感!

第一章、基本理论和基本知识

第一节、网络安全术语解释 一、协议:     网络是一个信息交换的场所,所有接入网络的计算机都可以通过彼此之间的物理连设备行信息交换,这种物理设备包括最常见的电缆、光缆、无线WAP和微波等,但是单纯拥有这些物理设备并不能实现信息的交换,这就好像人类的身体不能缺少大脑的支配一样,信息交换还要具备软件环境,这种“软件环境”是人类实现规定好的一些规则,被称作“协议”,有了协议,不同的电脑可以遵照相同的协议使用物理设备,并且不会造成相互之间的“不理解”。
    这种协议很类似于“摩尔斯电码”,简单的一点一横,经过排列可以有万般变化,但是假如没有“对照表”,谁也无法理解一分杂乱无章的电码所表述的内容是什么。电脑也是一样,它们通过各种预先规定的协议完成不同的使命,例如RFC1459协议可以实现IRC服务器与客户端电脑的通信。因此无论是黑客还是网络管理员,都必须通过学习协议达到了解网络运作机理的目的。
    每一个协议都是经过多年修改延续使用至今的,新产生的协议也大多是在基层协议基础上建立的,因而协议相对来说具有较高的安全机制,黑客很难发现协议中存在的安全问题直接入手进行网络攻击。但是对于某些新型协议,因为出现时间短、考虑欠周到,也可能会因安全问题而被黑客利用。
    对于网络协议的讨论,更多人则认为:现今使用的基层协议在设计之初就存在安全隐患,因而无论网络进行什么样的改动,只要现今这种网络体系不进行根本变革,从根本上就无法杜绝网络黑客的出现。但是这种黑客机能已经超出了本书的范围,因而不在这里详细介绍。 二、服务器与客户端:     最简单的网络服务形式是:若干台电脑做为客户端,使用一台电脑当作服务器,每一个客户端都具有向服务器提出请求的能力,而后由服务器应答并完成请求的动作,最后服务器会将执行结果返回给客户端电脑。这样的协议很多。例如我们平时接触的电子邮件服务器、网站服务器、聊天室服务器等都属于这种类型。另外还有一种连接方式,它不需要服务器的支持,而是直接将两个客户端电脑进行连接,也就是说每一台电脑都既是服务器、又是客户端,它们之间具有相同的功能,对等的完成连接和信息交换工作。例如DCC传输协议即属于此种类型。
    从此看出,客户端和服务器分别是各种协议中规定的请求申请电脑和应答电脑。作为一般的上网用户,都是操作着自己的电脑(客户端),别且向网络服务器发出常规请求完成诸如浏览网页、收发电子邮件等动作的,而对于黑客来说则是通过自己的电脑(客户端)对其他电脑(有可能是客户端,也有可能是服务器)进行攻击,以达到入侵、破坏、窃取信息的目的。 三、系统与系统环境:     电脑要运作必须安装操作系统,如今流行的操作系统主要由UNIX、Linux、Mac、BSD、Windows2000、Windows95/98/Me、Windows NT等,这些操作系统各自独立运行,它们有自己的文件管理、内存管理、进程管理等机制,在网络上,这些不同的操作系统既可以作为服务器、也可以作为客户端被使用者操作,它们之间通过“协议”来完成信息的交换工作。
    不同的操作系统配合不同的应用程序就构成了系统环境,例如Linux系统配合Apache软件可以将电脑构设成一台网站服务器,其他使用客户端的电脑可以使用浏览器来获得网站服务器上供浏览者阅读的文本信息;再如Windows2000配合Ftpd软件可以将电脑构设成一台文件服务器,通过远程ftp登陆可以获得系统上的各种文件资源等。 四、IP地址和端口:     我们上网,可能会同时浏览网页、收发电子邮件、进行语音聊天……如此多的网络服务项目,都是通过不同的协议完成的,然而网络如此之大,我们的电脑怎么能够找到服务项目所需要的电脑?如何在一台电脑上同时完成如此多的工作的呢?这里就要介绍到IP地址了。
    每一台上网的电脑都具有独一无二的IP地址,这个地址类似于生活中人们的家庭地址,通过网络路由器等多种物理设备(无需初级学习者理解),网络可以完成从一个电脑到另一个电脑之间的信息交换工作,因为他们的IP地址不同,所以不会出现找不到目标的混乱局面。但是黑客可以通过特殊的方法伪造自己电脑的IP地址,这样当服务器接受到黑客电脑(伪IP地址)的请求后,服务器会将应答信息传送到伪IP地址上,从而造成网络的混乱。当然,黑客也可以根据IP地址轻易的找到任何上网者或服务器,进而对他们进行攻击(想想现实中的入室抢劫),因而如今我们会看到很多关于《如何隐藏自己IP地址》的文章。
    接下来我解释一下上面提到的第二个问题:一台电脑上为什么能同时使用多种网络服务。这好像北京城有八个城门一样,不同的协议体现在不同的网络服务上,而不同的网络服务则会在客户端电脑上开辟不同的端口(城门)来完成它的信息传送工作。当然,如果一台网络服务器同时开放了多种网络服务,那么它也要开放多个不同的端口(城门)来接纳不同的客户端请求。
    网络上经常听到的“后门”就是这个意思,黑客通过特殊机能在服务器上开辟了一个网络服务,这个服务可以用来专门完成黑客的目的,那么服务器上就会被打开一个新的端口来完成这种服务,因为这个端口是供黑客使用的,因而轻易不会被一般上网用户和网络管理员发现,即“隐藏的端口”,故“后门”。
    每一台电脑都可以打开65535个端口,因而理论上我们可以开发出至少65535种不同的网络服务,然而实际上这个数字非常大,网络经常用到的服务协议不过几十个,例如浏览网页客户端和服务端都使用的是80号端口,进行IRC聊天则在服务端使用6667端口、客户端使用1026端口等。 五、漏洞:     漏洞就是程序中没有考虑到的情况,例如最简单的“弱口令”漏洞是指系统管理员忘记屏蔽某些网络应用程序中的账号;Perl程序漏洞则可能是由于程序员在设计程序的时候考虑情况不完善出现的“让程序执行起来不知所措”的代码段,“溢出”漏洞则属于当初设计系统或者程序的时候,没有预先保留出足够的资源,而在日后使用程序是造成的资源不足;特殊IP包炸弹实际上是程序在分析某些特殊数据的时候出现错误等……
    总而言之,漏洞就是程序设计上的人为疏忽,这在任何程序中都无法绝对避免,黑客也正是利用种种漏洞对网络进行攻击的,本章开始的字眼儿“网络安全”实际就是“漏洞”的意思。黑客利用漏洞完成各种攻击是最终的结果,其实真正对黑客的定义就是“寻找漏洞的人”,他们并不是以网络攻击为乐趣,而是天天沉迷在阅读他人的程序并力图找到其中的漏洞。应该说,从某种程度上讲,黑客都是“好人”,他们为了追求完善、建立安全的互联网才投身此行的,只不过因为有的黑客或者干脆是伪黑客经常利用具有攻击性的漏洞,近些年人们才对黑客有了畏惧和敌视的心理。 六、加密与解密:     在“协议”的讲解中,我提到了“由于网络设计的基层存在问题……”,简单的说这一问题是允许所有上网者参与信息共享,因而对某些商业、个人隐私在网络上的传送,就会暴露在众目睽睽之下,我们的信用卡、个人电子邮件等都可以通过监听或者截获的方式被他人的到,如何才能让这些信息安全呢?读者也许想到了“二战中”的间谍战:参战国家在使用电报的时候,都对代码进行了加密处理,只有知道了“密码薄”的接收者,才可以进行译码工作。正是这种古老的加密方式,在现代化的网络上也依然存在它旺盛的生命力,通过加密处理的信息在网络上传送,无论谁拿到了这份文件,只要没有“密码薄”仍然是白费力气的。
    网络上最长使用的是设置个人密码、使用DES加密锁,这两种加密方式分别可以完成用户登陆系统、网站、电子邮件信箱和保护信息包的工作,而黑客所要进行的工作,就是通过漏洞、暴力猜测、加密算法反向应用等方式获得加密档案的明文,有人把“魔高一尺、道高一仗”用在这里,的确是在恰当不过了!网络上的加密方法和需要验证密码的系统层出不穷,黑客也在寻找破解这些系统的种种办法。
    可以说,“漏洞”和“解密”是两个完全不同的黑客领域,对于不同的学习者对他们的偏好,将会直接影响到今后将会成为的黑客类型,因而在二者之间的选择,应根据个人喜好进行,本书将会侧重学习“漏洞”方面的知识。 七、特洛伊木马:     特洛伊木马是一个程序,这个程序可以做程序设计者有意设计的未出现过的事情。但是对于特洛伊木马所做的操作,不论是否用户了解,都是不被赞同的。根据某些人的认识,病毒是特洛伊木马的一个特例,即:能够传播到其他的程序当中(也就是将这些程序也变成特洛伊木马)。根据另外的人的理解,不是有意造成任何损坏的病毒不是特洛伊木马。最终,不论如何定义,许多人仅仅用“特洛伊木马”来形容不能复制的带有恶意的程序,以便将特洛伊木马与病毒区分开。

第二节、常用黑客软件性质分类 一、扫描类软件:     扫描是黑客的眼睛,通过扫描程序,黑客可以找到攻击目标的IP地址、开放的端口号、服务器运行的版本、程序中可能存在的漏洞等。因而根据不同的扫描目的,扫描类软件又分为地址扫描器、端口扫描器、漏洞扫描器三个类别。在很多人看来,这些扫描器获得的信息大多数都是没有用处的,然而在黑客看来,扫描器好比黑客的眼睛,它可以让黑客清楚的了解目标,有经验的黑客则可以将目标“摸得一清二楚”,这对于攻击来说是至关重要的。同时扫描器也是网络管理员的得力助手,网络管理员可以通过它既是了解自己系统的运行状态和可能存在的漏洞,在黑客“下手”之前将系统中的隐患清除,保证服务器的安全稳定。
    现在网络上很多扫描器在功能上都设计的非常强大,并且综合了各种扫描需要,将各种功能集成于一身。这对于初学网络安全的学习者来说无疑是个福音,因为只要学习者手中具备一款优秀的扫描器,就可以将信息收集工作轻松完成,免去了很多繁琐的工作。但是对于一个高级黑客来说,这些现成的工具是远远不能胜任的,他们使用的程序大多自己编写开发,这样在功能上将会完全符合个人意图,而且可以针对新漏洞既是对扫描器进行修改,在第一时间获得最宝贵的目标资料。本书此部分将会介绍扫描器的具体使用方法,而在第二部分中则会具体讲述如何开发这些扫描器,请读者务必循序渐进,否则将会给自己的学习带来很多不必要的烦恼。 二、远程监控类软件:     远程监控也叫做“木马”,这种程序实际上是在服务器上运行一个客户端软件,而在黑客的电脑中运行一个服务端软件,如此一来,服务器将会变成黑客的服务器的“手下”,也就是说黑客将会利用木马程序在服务器上开一个端口,通过这种特殊的木马功能对服务器进行监视、控制。因此,只要学习者掌握了某个木马的使用和操作方法,就可以轻易接管网络服务器或者其他上网者的电脑。
    在控制了服务器之后,黑客的攻击行动也就接近尾声了,然而在做这件事情之前,黑客必须想办法让服务器运行自己木马的那个“客户端程序”,这就需要利用漏洞或者进行欺骗。欺骗最简单,就是想办法让操作服务器的人(系统管理员之类)运行黑客的客户端程序,而利用漏洞则要初学者阅读完本书后面的内容才能够做到了。 三、病毒和蠕虫:     首先声明一下:编写病毒的做法并不属于黑客。病毒只不过是一种可以隐藏、复制、传播自己的程序,这种程序通常具有破坏作用,虽然病毒可以对互联网造成威胁,然而它并没有试图寻找程序中的漏洞,所以制作病毒还有病毒本身对黑客的学习都没有实际意义。
    之所以提到病毒,是因为蠕虫和病毒有很多相似性,如虫也是一段程序,和病毒一样具有隐藏、复制、船舶自己的功能。不同的是蠕虫程序通常会寻找特定的系统,利用其中的漏洞完成传播自己和破坏系统的作用,另外蠕虫程序可以将收到攻击的系统中的资料传送到黑客手中,这要看蠕虫设计者的意图,因而蠕虫是介于木马和病毒之间的一类程序。
    计算机蠕虫是自包含的程序(或是一套程序),它能传播它自身功能的拷贝或它的某些部分到其他的计算机系统中(通常是经过网络连接)。蠕虫的制造需要精深的网络知识,还要具备高超的编程水平,对于一个初学黑客的学习者来说,蠕虫的制造和使用都是非常难理解的,并且大多数蠕虫攻击的对象是Linux系统,而本书所使用的学习平台是Windows 95/98或Windows NT/2000,因而我同样建议初学者不要过多的涉及这部分内容,有关此部分内容也将会在《攻学兼防》的第二部分中有所介绍。 四、系统攻击和密码破解:     这类软件大多数都是由高级黑客编写出来的,供初级黑客使用的现成软件,软件本身不需要使用者具备太多的知识,使用者只要按照软件的说明操作就可以达到软件的预期目的,因而这类软件不具备学习黑客知识的功效。不过这类软件对于黑客很重要,因为它可以大幅度减小黑客的某些繁琐工作,使用者经过对软件的设置就可以让软件自动完成重复的工作,或者由软件完成大量的猜测工作,充分利用剩余时间继续学习网络知识。
    系统攻击类软件主要分为信息炸弹和破坏炸弹。网络上常见的垃圾电子邮件就是这种软件的“杰作”,还有聊天室中经常看到的“踢人”、“骂人”类软件、论坛的垃圾灌水器、系统蓝屏炸弹也都属于此类软件的变异形式。如果学习者能够认真学习黑客知识,最终可以自己编写类似的工具,但如果某个人天天局限于应用此类软件上,他将永远是一个“伪黑客”。
    密码破解类软件和上面的软件一样,完全依靠它将对学习黑客毫无帮助。对于真正的黑客来说,这种软件可以帮助寻找系统登陆密码,相对于利用漏洞,暴力破解密码要简单许多,但是效率会非常低,但是真正的黑客无论是使用密码破解软件还是利用漏洞进入系统之后,都达到了自己入侵的目的,因此对于如何进入系统,对于某些溺爱系统攻击的黑客来说无关紧要。值得一提的是:真正执著于漏洞分析的黑客是从来不使用这种软件的,而我向来将分析漏洞作为至高无上的工作,所以也尽量不去接触此类软件。 五、监听类软件:     通过监听,黑客可以截获网络的信息包,之后对加密的信息包进行破解,进而分析包内的数据,获得有关系统的信息;也可能截获个人上网的信息包,分析的到上网账号、系统账号、电子邮件账号等个人隐私资料。监听类软件最大的特点在于它是一个亦正亦邪的,因为网络数据大多经过加密,所以用它来获得密码比较艰难,因而在更多的情况下,这类软件是提供给程序开发者或者网络管理员的,他们利用这类软件进行程序的调试或服务器的管理工作。

第三节、常用黑客软件用途分类 一、防范:     这是从安全的角度出发涉及的一类软件,例如防火墙、查病毒软件、系统进程监视器、端口管理程序等都属于此类软件。这类软件可以在最大程度上保证电脑使用者的安全和个人隐私,不被黑客破坏。网络服务器对于此类软件的需要也是十分重视的,如日志分析软件、系统入侵软件等可以帮助管理员维护服务器并对入侵系统的黑客进行追踪。 二、信息搜集:     信息搜集软件种类比较多,包括端口扫描、漏洞扫描、弱口令扫描等扫描类软件;还有监听、截获信息包等间谍类软件,其大多数属于亦正亦邪的软件,也就是说无论正派黑客、邪派黑客、系统管理员还是一般的电脑使用者,都可以使用者类软件完成各自不同的目的。在大多数情况下,黑客使用者类软件的频率更高,因为他们需要依靠此类软件对服务器进行全方位的扫描,获得尽可能多的关于服务器的信息,在对服务器有了充分的了解之后,才能进行黑客动作。 三、木马与蠕虫:     这是两种类型的软件,不过他们的工作原理大致相同,都具有病毒的隐藏性和破坏性,另外此类软件还可以由拥有控制权的人进行操作,或由事先精心设计的程序完成一定的工作。当然这类软件也可以被系统管理员利用,当作远程管理服务器的工具。 四、洪水:     所谓“洪水”即信息垃圾炸弹,通过大量的垃圾请求可以导致目标服务器负载超负荷而崩溃,近年来网络上又开始流行DOS分散式攻击,简单地说也可以将其归入此类软件中。洪水软件还可以用作邮件炸弹或者聊天式炸弹,这些都是经过简化并由网络安全爱好者程序化的“傻瓜式”软件,也就是本书一开始指责的“伪黑客”手中经常使用的软件。 五、密码破解:     网络安全得以保证的最实用方法是依靠各种加密算法的密码系统,黑客也许可以很容易获得一份暗文密码文件,但是如果没有加密算法,它仍然无法获得真正的密码,因此使用密码破解类软件势在必行,利用电脑的高速计算能力,此类软件可以用密码字典或者穷举等方式还原经过加密的暗文。 六、欺骗:     如果希望获得上面提到的明文密码,黑客需要对暗文进行加密算法还原,但如果是一个复杂的密码,破解起来就不是那么简单了。但如果让知道密码的人直接告诉黑客密码的原型,是不是更加方便?欺骗类软件就是为了完成这个目的而设计的。 七、伪装:     网络上进行的各种操作都会被ISP、服务器记录下来,如果没有经过很好的伪装就进行黑客动作,很容易就会被反跟踪技术追查到黑客的所在,所以伪装自己的IP地址、身份是黑客非常重要的一节必修课,但是伪装技术需要高深的网络知识,一开始没有坚实的基础就要用到这一类软件了。

第四节、学习黑客的基本环境 一、操作系统的选择:     我们经常听说黑客酷爱Linux系统,这是因为Linux相对Windows提供了更加灵活的操作方式,更加强大的功能。例如对于IP地址的伪造工作,利用Linux系统编写特殊的IP头信息可以轻松完成,然而在Windows系统下却几乎不可能做到。但是Linux也有它不足的一面,这个系统的命令庞杂、操作复杂,并不适合初学者使用,而且对于个人学习者,并没有过多的人会放弃“舒适”的Windows、放弃精彩的电脑游戏和便捷的操作方式,去全心投入黑客学习中。而且对于初学黑客的学习者来说,大多数网络知识都可以在Windows系统中学习,相对Linux系统,Windows平台下的黑客软件也并不在少数,另外通过安装程序包,Windows系统中也可以调试一定量的程序,因此初步学习黑客没有必要从Linux入手。
    本书使用的平台WindowsME,因为对于个人用户来说,NT或者2000多少有些苛刻——系统配置要求太高;然而使用95或者98又缺少某些必要的功能——NET、TELNET命令不完善。但是本书的大部分内容测试漏洞,从远程服务器出发,所以也不是非要WindowsME操作系统进行学习,对于少数系统版本之间的差异,学习者可以和我联系获得相应系统的学习方法。 二、需要的常用软件:     如果你的系统是WindowsME,那么告诉你一个好消息——你没有必要安装过多的额外软件,因为我们接触的黑客知识依靠系统提供给我们的命令和内置软件就足可以完成了!除了基本的操作系统以外,学习者还需要安装各类扫描器,之后下载一个比较优秀的木马软件、一个监听类软件,除此以外别无它求。如果有必要,读者可以自行安装本文上述软件,然后学习其用法,但是我要告诉你,对于各类炸弹、还有网络上各式各样的黑客软件,在学习完本书后,你都可以自己制作、自己开发,根本没有必要使用他人编写的软件。
    对于扫描器和监听软件,我给出以下建议,并且在本书的后面还会对这几个软件进行详细介绍:
    扫描器:x-scanner
    下载地址:http://www.xfocus.org/
    监听软件:analyzer
    下载地址:http://netgroup-serv.polito.it/netgroup/tools.html
    木马:BackOffice
    下载地址:http://www.hack-net.com/
    这三个软件都是免费的,而且功能异常强大。像xscanner是国产软件,他集成了多种扫描功能于一身,并且同时支持控制台和图形界面两种操作方式,另外提供了详细的漏洞使用说明。对于初学者来说,具备了这两个工具,学习黑客已经绰绰有余了。 三、额外的工具:     如果可以安装下面的工具,将会对学习黑客有莫大的帮助,当然下面的软件主要是学习额外内容并为“第二部分”学习作铺垫用的,所以没有也不会妨碍本书的学习。
1、后台服务器:
    拥有某些网络应用的后台服务程序,可以将自己的电脑设置成一个小型服务器,用来学习相应的网络应用,从“内部”了解其运作机理,这将会大大提高自己对服务器的感性认识,同时还能够在激活服务器的时候;监测自己服务器上的数据,如果有其他黑客来攻击,则可以清晰的记录下对方的攻击过程,从而学习到更多的黑客攻击方法。对于本书而言,主要介绍网站的Perl和asp等脚本语言漏洞,所以可以安装一个IIS或者HTTPD。然后在安装ActivePerl,使自己的服务器具备编译cgi和pl脚本的能力。使用自己的服务器还有一个好处,可以节省大量的上网时间,将学习、寻找漏洞的过程放到自己的电脑上,既节省了金钱、有不会对网络构成威胁,一举两得。
2、C语言编译平台:
    今后在学习黑客的路途中,将会遇到很多“属于自己的问题”,这些问题网络上的其他人可能不会注意,所以无法找到相应的程序,这个时候学习者就要自己动手开发有关的工具了,所以安装一个Borland C++将会非常便捷,通过这个编译器,学习者既可以学习C语言,也能够修改本书后面列出的一些小程序,打造一个属于自己的工具库。 四、网络安全软件分类     现在我们来了解一下有关网络安全软件的分类,因为学习黑客知识是两个相互联系的过程:既学习如何黑,还要学会如何防止被黑。
1、防火墙:
    这是网络上最常见的安全机制软件,防火墙有硬件的、也有软件的,大多数读者看到的可能更多都是软件防火墙。其功能主要是过滤垃圾信息(保证系统不会受到炸弹攻击)、防止蠕虫入侵、防止黑客入侵、增加系统隐私性(对敏感数据进行保护)、实时监控系统资源,防止系统崩溃、定期维护数据库,备份主要信息……防火墙可以将系统本身的漏洞修补上,让黑客没有下手的机会。另外对于拥有局域网的企业来说,防火墙可以限制系统端口的开放,禁止某些网络服务(杜绝木马)。
2、检测软件:
    互联网上有专门针对某个黑客程序进行清除的工具,但是这类软件更多是集成在杀毒软件或者防火墙软件内的,对于系统内的木马、蠕虫可以进行检测并清除,软件为了保护系统不受侵害,会自动保护硬盘数据、自动维护注册表文件、检测内容可以代码、监测系统端口开放状态等。如果用户需要,软件还可以编写有关的脚本对指定端口进行屏蔽(防火墙一样具备此功能)。
3、备份工具:
    专门用来备份数据的工具可以帮助服务器定期备份数据,并在制定时间更新数据,这样即便黑客破坏了服务器上的数据库,软件也可以在短时间内完全修复收到入侵的数据。另外对于个人用户,这类软件可以对硬盘进行完全映像备份,一旦系统崩溃,用户利用这类软件可以将系统恢复到原始状态,例如Ghost就是这类软件中的佼佼者。
4、日志纪录、分析工具:
    对于服务器来说,日志文件是必不可少的,管理员可以通过日志了解服务器的请求类型和请求来源,并且根据日志判断系统是否受到黑客攻击。通过日志分析软件,管理员可以轻松的对入侵黑客进行反追踪,找到黑客的攻击来源,进而抓不黑客。这也就是为什么黑客在攻击的时候多采用IP地址伪装、服务器跳转,并在入侵服务器之后清除日志文件的原因。

第五节、网络流行黑客软件简介 一、国产软件简介 溯雪
密码探测器:利用溯雪可以轻松的完成基于web形式的各种密码猜测工作,例如email、forum中的注册用户密码等。软件采取多线程编写,除了支持字典和穷举以外,软件最大的特色是可以自己编写猜测规则,例如可以按照中文拼音或者英文单词拼写规则随机组合出字典文件,最大程度上保证了猜测的准确性。
软件下载地址:http://www.netxeyes.com/dansnowb7setup.exe
乱刀
密码破解:乱刀可以破解unix系统中的密码暗文,对于取得了etc/passwd文件的黑客来说这是必不可少的。
软件下载地址:http://www.netxeyes.com/bladese.exe
天网
防火墙软件:中国第一套通过公安部认证的软硬件集成防火墙,能有效的防止黑客入侵,抵御来自外部网络的攻击,保证内部系统的资料不被盗取,它根据系统管理者设定的安全规则把守企业网络,提供强大的访问控制、身份认证、应用选通、网络地址转换、信息过滤、虚拟专网、流量控制、虚拟网桥等功能。
软件下载地址:http://sky.net.cn/files/skynet2.43.exe
冰河
木马类软件:国内响当当的木马软件,知名度绝不亚于BO,主要用于远程监控。自动跟踪屏幕变化、记录各种口令信息、获取系统信息、限制系统功能、任意操作文件及注册表、远程关机、发送信息等多种监控功能。此软件的一大特色是可以由使用者自己设置需要占用的端口,如此一来监控类软件就很难从端口号上直接判断系统是否存在冰河了。
软件下载地址:http://www.newhua.com.cn/down/glacier.zip
绿色警戒
防火墙软件:绿色警戒是中联绿盟信息技术公司开发的Win2000下个人防火墙软件,具有可靠的稳定性,能够对发送和接收信息进行分析过滤、能够编写规则防止系统受到攻击。
软件下载地址:http://etrade.nsfocus.com/introduce/Nsfocus_FW2000.zip
小分析家
监测类软件:免费网络协议分析工具,这个工具的特点是界面简单实用,与国外的一些sniffer产品相比,如Netxray,结果更为直观。此软件为免费版本,只能运行在NT系统下,同时编写此软件的公司还提供了软件的商业版本“网警“。
软件下载地址:http://www.cnns.net/freetools/nt/analyze.zip
网络精灵
木马类软件:最具威力的远程控制软件之一。中国木马软件的开山鼻祖。国内用户最多、使用范围最广的国产远程控制软件。自从1998年初NetSpy1.0版发布以来,历经多次升级和完善,已经成为非常成熟、稳定的远程控制软件。
软件下载地址:http://www.siriusoft.net/software/netspy30.zip
快速搜索
端口扫描器:快速搜索是一个在网络上搜索服务器的软件,可以根据给定的地址和端口号查找机器。具有多线程同时搜索技术,可以将搜索速度提高到单线程的十倍以上。
软件下载地址:http://www.siriusoft.net/software/findhost.zip
二、常见网络安全软件简介 Local Port Scanner
本地端口扫描器:通过这个软件可以监测本地电脑被打开的端口。此软件可以监测大多数黑客入侵或者木马占用的端口,它有五种不同的扫描方式并可以获得有关端口的详细扫描信息。
软件下载地址:http://24.8.193.241/1515/Anti-Hacker/lps.exe
A-spy
系统进程察看器:A-spy可以监测Windows系统启动过程中调用的所有程序、执行的进程,并将结果保存在日志文件中。这个软件的用途是检察系统是否被安置了木马程序,同时软件还可以对系统启动需要调用的程序进行增加、删除和编辑等操作,改变调用程序之间的先后顺序,软件支持包括NT、2000在内的所有Windows平台,具有17种方式清楚木马程序。
软件下载地址:http://24.8.193.241/1515/Anti-Hacker/aspy32.zip
Netmon
图形化Netstat命令:Netmon是图形化的Netstat命令,它运行在Windows系统中,可以察看系统的TCP、UDP连接状态,同时此软件提供了一份完整的木马、蠕虫占用端口清单,可以快速了解系统是否存在安全问题。
软件下载地址:http://24.8.193.241/1515/Anti-Hacker/netmon153.exe
LANguard Network Scanner
局域网资料收集器:LANguard允许使用者扫描局域网内部的搜索电脑,搜集他们的netbios信息、打开端口、共享情况和其他相关资料,这些资料及可以被黑客利用进行攻击,也可以被管理员利用进行安全维护,通过它可以强行关闭指定端口和共享目录。
软件下载地址:http://24.8.193.241/1515/Anti-Hacker/lannetscan.exe
Leechsoft's NetMonitor
TCP/IP状态分析程序:这个软件使用于系统安全管理员、网络程序开发员、一般的拥护。此工具可以显示电脑在上网状态下存在的TCP/IP连接,同时还能分析是否有其他人正在监视上网者电脑中的某个端口,同时此工具内部还有一个功能强大的端口扫描程序。
软件下载地址:http://24.8.193.241/1515/Anti-Hacker/netmon2beta.exe
Win Trinoo Server Sniper
清除Win.Trinoo Server程序:Win.Trinoo是一个类似DOS攻击的木马程序,被植入它的电脑将变成一台Win.Trinoo Server,黑客通过这个Server能够“借刀杀人”攻击其他电脑系统。Win Trinoo Server Sniper可以高速的监测电脑是否存在此问题。
软件下载地址:http://24.8.193.241/1515/Anti-Hacker/trinooss.zip
SubSeven Server Sniper
清除SubSeven Server程序:同上面的工具一样,SubSeven也是一个木马程序,而SubSeven Server Sniper则是用来检测并清除SubSeven而设计的。不同的是,这个软件不但可以清楚SubSeven,而且还能搜集攻击者在您电脑中留下的蛛丝马迹,找到攻击者的ICQ号码、email地址等内容,从而为反跟踪提供了详尽的信息。
软件下载地址:http://24.8.193.241/1515/Anti-Hacker/s7sniper.zip
Attacker
端口监听程序:这是一个TCP/UDP端口监听程序,它可以常驻系统并在危险端口打开的时候发出警告信息,保证个人上网隐私的安全性。
软件下载地址:http://24.8.193.241/1515/Anti-Hacker/attacker.zip
ICEWatch
BlackICE插件:这个插件可以完善BlackICE的结果列表,让列表更加详尽,同时该插件还提供了更好的结果分类查询功能,并且可以对结果进行复制、编辑等操作。另外此插件为BlackICE提供了声音,可以设置软件使用过程中的提醒、警告的音效。
软件下载地址:http://24.8.193.241/1515/Anti-Hacker/icewatch2.zip
StartupMonitor
系统进程监视程序:这个程序在系统启动的时候自动执行,可以实时监视系统注册表的更新情况,防止了类似Netbus、BackOrifice等木马程序的入侵行为。软件环境系统:Windows98或更高版本。
软件下载地址:http://24.8.193.241/1515/Anti-Hacker/StartupMonitor.zip
Isecure IP Scanner
netbios共享扫描器:黑客利用netbios的共享可以进入存在问题的电脑并对硬盘进行操作,同时还可以获得入侵电脑上的隐私资料。这个扫描器就是专门为防止此类事件发生开发的,运行软件会自动扫描目标并报告有关资料。
软件下载地址:http://24.8.193.241/1515/Anti-Hacker/isis.exe
AnalogX Port Blocker
端口屏蔽程序:当使用者的电脑上开放某个端口的时候,任何人都可以通过其开放端口访问相应资源,而AnalogX Port Blocker可以屏蔽某个端口,或者设置特殊IP地址禁止对指定端口的请求,这从一定程度上方便了程序调试人员为在本地系统上从事软件的测试工作。
软件下载地址:http://24.8.193.241/1515/Anti-Hacker/pblocki.exe
Tambu Dummy Server
端口屏蔽程序:这个工具同上面一个程序的功能是一样的,不过不同的是,这个工具是基于控制台模式,更加适合于高手。
软件下载地址:http://24.8.193.241/1515/Anti-Hacker/tambu_dummy_server.zip
Tambu Registry Edit
注册表修改程序:该程序可以让使用者手动修改系统注册表中的各项键值,从而改变系统的性能,同时软件中保存了网络上常见的具有破坏性程序的资料,可以迅速确定系统注册表中是否有可疑程序,并提供了清除和备份等功能。
软件下载地址:http://24.8.193.241/1515/Anti-Hacker/Tam-registry.exe

第二章:工具的使用

第一节、常用系统命令 一、ping命令     在Windows的控制窗口中(Windows 95/98/ME的command解释器、Windows NT/2000的cmd解释器),运行ping可以看到这个命令的说明,它是一个探测本地电脑和远程电脑之间信息传送速度的命令,这个命令需要TCP/IP协议的支持,ping将会计算一条信息从本地发送到远程再返回所需要的时间,黑客使用这个命令决定是否对服务器进行攻击,因为连接速度过慢会浪费时间、花费过多的上网费用。
    另外这个命令还可以透过域名找到对方服务器的IP地址,我们知道域名只是提供给浏览网页用的,当我们看到一个不错的域名地址后,要想通过telnet连接它,就必须知道对方的IP地址,这里也要使用ping命令的。
    这个命令的基本使用格式可以通过直接运行ping获得,现在假设目标是http://www.abc.com/,则可以在控制台下输入ping www.abc.com,经过等待会得到如下信息:
        Pinging www.abc.com [204.202.136.32] with 32 bytes of data:
        Reply from 204.202.136.32: bytes=32 time=302ms TTL=240
        Reply from 204.202.136.32: bytes=32 time=357ms TTL=240
        Reply from 204.202.136.32: bytes=32 time=288ms TTL=240
        Reply from 204.202.136.32: bytes=32 time=274ms TTL=240
        Ping statistics for 204.202.136.32:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
        Approximate round trip times in milli-seconds:
        Minimum = 274ms, Maximum = 357ms, Average = 305ms
    这些信息的意思是:www.abc.com的IP地址是204.202.136.32,对他发送了四次数据包,数据包的大小是32字节,每一次返回的时间分别是302ms、357ms、288ms、274ms。综合看,发送了四个数据包全部返回,最小时间是274ms,最大时间357ms,他们的平均时间是305ms。
    这样黑客就了解了连接对方服务器使用的时间。另外这个命令还有一些特殊的用法,例如可以通过IP地址反查服务器的NetBIOS名,现在以211.100.8.87为例,使用ping配合“-a”,在控制台下输入命令ping -a 211.100.8.87,它的返回结果是:
        Pinging POPNET-FBZ9JDFV [211.100.8.87] with 32 bytes of data:
        Reply from 211.100.8.87: bytes=32 time=96ms TTL=120
        Reply from 211.100.8.87: bytes=32 time=110ms TTL=120
        Reply from 211.100.8.87: bytes=32 time=110ms TTL=120
        Reply from 211.100.8.87: bytes=32 time=109ms TTL=120
        Ping statistics for 211.100.8.87:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
        Approximate round trip times in milli-seconds:
        Minimum = 96ms, Maximum = 110ms, Average = 106ms
    从这个结果会知道服务器的NetBIOS名称是POPNET-FBZ9JDFV。另外在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,例如上面的www.abc.com返回的TTL是240,对方的系统很可能是Linux,而第二个目标的TTL是120,那么说明它使用的系统也许是Windows。
    另外ping还有很多灵活的应用,我不在这里过多的介绍,读者请另行查阅此命令相关帮助文件。 二、net命令:     NET命令是很多网络命令的集合,在Windows ME/NT/2000内,很多网络功能都是以net命令为开始的,通过net help可以看到这些命令的详细介绍:
    NET CONFIG 显示系统网络设置
    NET DIAG 运行MS的DIAGNOSTICS程序显示网络的DIAGNOSTIC信息
    NET HELP 显示帮助信息
    NET INIT 不通过绑定来加载协议或网卡驱动
    NET LOGOFF 断开连接的共享资源
    NET LOGON 在WORKGROUP中登陆
    NET PASSWORD 改变系统登陆密码
    NET PRINT 显示或控制打印作业及打印队列
    NET START 启动服务,或显示已启动服务的列表
    NET STOP 停止网络服务
    NET TIME 使计算机的时钟与另一台计算机或域的时间同步
    NET USE 连接计算机或断开计算机与共享资源的连接,或显示计算机的连接信息
    NET VER 显示局域网内正在使用的网络连接类型和信息
    NET VIEW 显示域列表、计算机列表或指定计算机的共享资源列表
    这些命令在Win95/98中支持的比较少,只有几个基本常见的,而在NT或者2000中又元元多于上面的介绍,不过大多数对于初学者也没有必要掌握,所以我选择了WindowsME进行介绍,其中最常用到的是NET VIEW和NET USE,通过者两个命令,学习者可以连接网络上开放了远程共享的系统,并且获得资料。这种远程共享本来是为便捷操作设计的,但是很多网络管理员忽视了它的安全性,所以造成了很多不应该共享的信息的暴露,对于学习者来说,则可以轻易获得它人电脑上的隐私资料。
    例如在控制台下输入net view //202.96.50.24则可以获得对应IP的系统共享目录,进而找到他们的共享文件,当然这需要202.96.50.24系统的确存在共享目录,具体如何找到这些存在共享的系统,我将会在后面的文章中进行介绍。 三、telnet和ftp命令:     这两个命令分别可以远程对系统进行telnet登陆和ftp登陆,两种登陆使用的不同的协议,分别属于两种不同的网络服务,ftp是远程文件共享服务,也就是说学习者可以将自己的资料上传、下载,但是它并没有过多的权利,无法在远程电脑上执行上传的文件;而telnet则属于远程登陆服务,也就是说可以登陆到远程系统上,并获得一个解释器权限,拥有解释器就意味着拥有了一定的权限,这种权限可能是基本的文件操作、也可能是可以控制系统的管理员权限。 四、netstat命令:     这个程序有助于我们了解网络的整体使用情况。它可以显示当前正在活动的网络连接的详细信息,如采用的协议类型、当前主机与远端相连主机(一个或多个)的IP地址以及它们之间的连接状态等。 使用netstat ?可以显示它的命令格式和参数说明:
    netstat [-a] [-e] [-n] [-s] [-p proto] [-r] [interval] 其中的参数说明如下:
    -a 显示所有主机的端口号;
    -e 显示以太网统计信息;
    -n 以数字表格形式显示地址和端口;
    -p proto 显示特定的协议的具体使用信息;
    -r 显示本机路由表的内容;
    -s 显示每个协议的使用状态(包括TCP、UDP、IP);
    interval 重新显示所选的状态,每次显示之间的间隔数(单位秒)。
    netstat命令的主要用途是检测本地系统开放的端口,这样做可以了解自己的系统开放了什么服务、还可以初步推断系统是否存在木马,因为常见的网络服务开放的默认端口轻易不会被木马占用,例如:用于FTP(文件传输协议)的端口是21;用于TELNET(远程登录协议)的端口是23;用于SMTP(邮件传输协议)的端口是25;用于DNS(域名服务,即域名与IP之间的转换)的端口是53;用于HTTP(超文本传输协议)的端口是80;用于POP3(电子邮件的一种接收协议)的端口是110;WINDOWS中开放的端口是139,除此以外,如果系统中还有其他陌生的到口,就可能是木马程序使用的了。通过netstat或者netstat -a可以观察开放的端口,如果发现下面的端口,就说明已经有木马程序在系统中存在:
    31337号端口是BackOffice木马的默认端口;1999是Yai木马程序;2140或者3150都是DEEP THROAT木马使用的端口;还有NETBUS、冰河或者SUB7等木马程序都可以自定义端口,因此发现了陌生端口一定要提高警惕,使用防火墙或者查病毒软件进行检测。 五、tracert命令:     这个命令的功能是判定数据包到达目的主机所经过的路径、显示数据包经过的中继节点清单和到达时间。tracert命令的格式如下:
    tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name
    命令行中的参数-d是要求tracert不对主机名进行解析,-h是指定搜索到目的地址的最大轮数,-j的功能是沿着主机列表释放源路由,-w用来设置超时时间间隔。
    通过tracert可以判断一个服务器是属于国内还是国际(网络服务器的物理未知不能依靠域名进行判断),根据路由路经可以判断信息从自己的系统发送到网络上,先后经过了哪些IP到大对方服务器,这就好像乘公共汽车的时候从起点出发到达终点站的时候,中途会出现很多路牌一个道理,我们清楚了自己的信息的传送路径,才能够更清晰的了解网络、对服务器进行攻击。 六、winipcfg:     winipcfg和ipconfig都是用来显示主机内IP协议的配置信息。只是winipcfg适用于Windows 95/98,而ipconfig适用于Windows NT。winipcfg不使用参数,直接运行它,它就会采用Windows窗口的形式显示具体信息。这些信息包括:网络适配器的物理地址、主机的IP地址、子网掩码以及默认网关等,点击其中的“其他信息”,还可以查看主机的相关信息如:主机名、DNS服务器、节点类型等。其中网络适配器的物理地址在检测网络错误时非常有用。
    ipconfig的命令格式如下:ipconfig [/? | /all | /release [adapter] | /renew [adapter]]
    其中的参数说明如下:
    使用不带参数的ipconfig命令可以得到以下信息:IP地址、子网掩码、默认网关。而使用ipconfig
    /? 显示ipconfig的格式和参数的英文说明;
    /all 显示所有的配置信息;
    /release 为指定的适配器(或全部适配器)释放IP地址(只适用于DHCP);
    /renew 为指定的适配器(或全部适配器)更新IP地址(只适用于DHCP)。
    /all,则可以得到更多的信息:主机名、DNS服务器、节点类型、网络适配器的物理地址、主机的IP地址、子网掩码以及默认网关等。

第二节、扫描器 一、扫描器的使用:     这里我使用x-scanner作为介绍对象,原因是x-scanner集成了多种扫描功能于一身,它可以采用多线程方式对指定IP地址段(或独立IP地址)进行安全漏洞扫描,提供了图形界面和命令行两种操作方式,扫描内容包括:标准端口状态及端口banner信息、CGI漏洞、RPC漏洞、SQL-SERVER默认帐户、FTP弱口令,NT主机共享信息、用户信息、组信息、NT主机弱口令用户等。扫描结果保存在/log/目录中,index_*.htm为扫描结果索引文件。对于一些已知的CGI和RPC漏洞,x-scanner给出了相应的漏洞描述、利用程序及解决方案,节省了查找漏洞介绍的时间。
    首先x-scanner包括了两个运行程序:xscann.exe和xscan_gui.exe,这两个程序分别是扫描器的控制台版本和窗口版本,作为初学者可能更容易接受窗口版本的扫描软件,因为毕竟初学者使用最多的还是“应用程序”,无论运行那一个版本,他们的功能都是一样的。首先让我们运行窗口版本看看:窗口分为左右两部分,左面是进行扫描的类型,这包括前面提到的漏洞扫描、端口扫描等基本内容;另一部分是有关扫描范围的设定,xscanner可以支持对多个IP地址的扫描,也就是说使用者可以利用xscanner成批扫描多个IP地址,例如在IP地址范围内输入211.100.8.1-211.100.8.255就会扫描整个C类的255台服务器(如果存在的话),这样黑客可以针对某一个漏洞进行搜索,找到大范围内所有存在某个漏洞的服务器。当然如果只输入一个IP地址,扫描程序将针对单独IP进行扫描。
    剩下的端口设定在前面已经介绍过,一般对于网站服务器,这个端口选取80或者8080,对于某些特殊的服务器也许还有特殊的端口号,那需要通过端口扫描进行寻找。多线程扫描是这个扫描器的一大特色,所谓多线程就是说同时在本地系统开辟多个socket连接,在同一时间内扫描多个服务器,这样做的好处是提高了扫描速度,节省时间,根据系统的资源配置高低,线程数字也可以自行设定(设定太高容易造成系统崩溃)。
    在图形界面下我们看到了程序连接地址“./xscan.exe”,这实际上就是xscanner的控制台程序,也就是说图形窗口只是将控制台扫描器的有关参数设置做了“傻瓜化”处理,程序运行真正执行的还是控制台程序。因此学习控制台是黑客所必需的,而且使用控制台模式的程序也是真正黑客喜爱的操作方式。
    现在我们进行一个简单的cgi漏洞扫描,这次演练是在控制台模式下进行的:xscan 211.100.8.87 -port
    这个命令的意思是让xscanner扫描服务器211.100.8.87的开放端口,扫描器不会对65535个端口全部进行扫描(太慢),它只会检测网络上最常用的几百个端口,而且每一个端口对应的网络服务在扫描器中都已经做过定义,从最后返回的结果很容易了解服务器运行了什么网络服务。扫描结果显示如下:
        Initialize dynamic library succeed.
        Scanning 211.100.8.87 ......
        [211.100.8.87]: Scaning port state ...
        [211.100.8.87]: Port 21 is listening!!!
        [211.100.8.87]: Port 25 is listening!!!
        [211.100.8.87]: Port 53 is listening!!!
        [211.100.8.87]: Port 79 is listening!!!
        [211.100.8.87]: Port 80 is listening!!!
        [211.100.8.87]: Port 110 is listening!!!
        [211.100.8.87]: Port 3389 is listening!!!
        [211.100.8.87]: Port scan completed, found 7.
        [211.100.8.87]: All done.
    这个结果还会同时在log目录下生成一个html文档,阅读文档可以了解发放的端口对应的服务项目。从结果中看到,这台服务器公开放了七个端口,主要有21端口用于文件传输、80端口用于网页浏览、还有110端口用于pop3电子邮件,如此一来,我们就可以进行有关服务的漏洞扫描了。
    然后可以使用浏览看看这个服务器到底是做什么的,通过浏览发现原来这是一家报社的电子版面,这样黑客可以继续对服务器进行漏洞扫描查找服务器上是否存在perl漏洞,之后进行进一步进攻。
    漏洞扫描的道理和端口扫描基本上类似,例如我们可以通过扫描器查找61.135.50.1到61.135.50.255这255台服务器上所有开放了80端口的服务器上是否存在漏洞,并且找到存在什么漏洞,则可以使用xscan 61.135.50.1-61.135.50.255 -cgi进行扫描,因为结果比较多,通过控制台很难阅读,这个时候xscanner会在log下生成多个html的中文说明,进行阅读这些文档比较方便。 二、扫描器使用问题:     载使用漏洞扫描器的过程中,学习者可能会经常遇到一些问题,这里给出有关问题产生的原因和解决办法。扫描器的使用并不是真正黑客生涯的开始,但它是学习黑客的基础,所以学习者应该多加练习,熟练掌握手中使用的扫描器,了解扫描器的工作原理和问题的解决办法。
    1、为什么我找不到扫描器报告的漏洞?
    扫描器报告服务器上存在某个存在漏洞的文件,是发送一个GET请求并接收服务器返回值来判断文件是否存在,这个返回值在HTTP的协议中有详细的说明,一般情况下“200”是文件存在,而“404”是没有找到文件,所以造成上面现象的具体原因就暴露出来了。
    造成这个问题的原因可能有两种:第一种可能性是您的扫描器版本比较低,扫描器本身存在“千年虫”问题,对于返回的信息扫描器在判断的时候,会错误的以为时间信息2000年x月x日中的200是“文件存在”标志,这样就会造成误报;
    另外一种可能性是服务器本身对“文件不存在”返回的头部信息进行了更改,如果GET申请的文件不存在,服务器会自动指向一个“没有找到页面”的文档,所以无论文件是否存在,都不会将“404”返回,而是仍然返回成功信息,这样做是为了迷惑漏洞扫描器,让攻击者不能真正判断究竟那个漏洞存在于服务器上。
    这一问题的解决办法也要分情况讨论,一般说来第一种情况比较容易解决,直接升级漏洞扫描器就可以了,对于第二种情况需要使用者对网络比较熟悉,有能力的话可以自己编写一个漏洞扫描器,自己编写的扫描器可以针对返回文件的大小进行判断,这样就可以真正确定文件是否存在,但这种方法对使用者的能力要求较高。
    2、我使用的扫描器速度和网络速度有关系嘛?
    关系不大。扫描器发送和接收的信息都很小,就算是同时发送上百个GET请求一般的电话上网用户也完全可以做得到,影响扫描器速度的主要因素是服务器的应答速度,这取决于被扫描服务器的系统运行速度。如果使用者希望提高自己的扫描速度,可以使用支持多线程的扫描器,但是因为使用者本地电脑档次问题,也不可能将线程设置到上百个,那样的话会造成本地系统瘫痪,一般使用30个线程左右比较合适。
    另外对于很多网络服务器来说,为了防止黑客的扫描行为,可能会在防火墙上设置同一IP的单位时间GET申请数量,这样做目的就是避免黑客的扫描和攻击,所以在提高本地扫描速度之前,应该先确认服务器没有相应的过滤功能之后再使用。
    3、扫描器报告给我的漏洞无法利用是什么原因?
    确切地说扫描器报告的不是“找到的漏洞”,而是找到了一个可能存在漏洞的文件,各种网络应用程序都可能存在漏洞,但是在更新版本的过程中,老版本的漏洞会被修补上,被扫描器找到的文件应该经过手工操作确认其是否是存在漏洞的版本,这可以通过阅读网络安全网站的“安全公告”获得相应知识。
    对于已经修补上漏洞的文件来说,也不代表它一定不再存有漏洞,而只能说在一定程度上没有漏洞了,也许在明天,这个新版本的文件中又会被发现还存在其他漏洞,因此这需要网络安全爱好者时刻关注安全公告。当然如果攻击者或者网络管理员对编程比较熟悉,也可以自己阅读程序并力图自己找到可能的安全隐患,很多世界著名的黑客都是不依靠他人,而是自己寻找漏洞进行攻击的。
    4、扫描器版本比较新,然而却从来没有找到过漏洞是什么原因?
    有一些扫描器专门设计了“等待时间”,经过设置可以对等待返回信息的时间进行调整,这就是说在“网络连接超时”的情况下,扫描器不会傻傻的一直等待下去。但如果你的网络速度比较慢,有可能造成扫描器没有来得及接收返回信息就被认为“超时”而越了过去继续下面的扫描,这样当然是什么也找不到啦。
    如果问题真的如此,可以将等待时间设置的长一些,或者换个ISP拨号连接。
    5、扫描器报告服务器没有提供HTTP服务?
    网络上大多数HTTP服务器和漏洞扫描器的默认端口都是80,而有少量的HTTP服务器并不是使用80端口提供服务的,在确认服务器的确开通了网站服务的情况下,可以用端口扫描器察看一下对方究竟使用什么端口进行的HTTP服务,网络上常见的端口还有8080和81。
    另外这种情况还有一种可能性,也许是使用者对扫描器的参数设置不正确造成的,很多扫描器的功能不仅仅是漏洞扫描,有可能还提供了rpc扫描、ftp默认口令扫描和NT弱口令扫描等多种功能,因此在使用每一款扫描器之前,都应该自己阅读有关的帮助说明,确保问题不是出在自己身上。
    6、扫描器使用过程中突然停止响应是为什么?
    扫描器停止响应是很正常的,有可能是因为使用者连接的线程过多,本地系统资源不足而造成系统瘫痪、也可能是因为对方服务器的响应比较慢,依次发送出去的请求被同时反送回来而造成信息阻塞、还有可能是服务器安装了比较恶毒的防火墙,一旦察觉有人扫描就发送特殊的数据报回来造成系统瘫痪……
    因此扫描器停止响应不能简单的说是为什么,也没有一个比较全面的解决方案,不过一般情况下遇到这种问题,我建议你可以更换其他扫描器、扫描另外一些服务器试试,如果问题还没有解决,就可能是因为扫描器与你所使用的系统不兼容造成的,大多数基于微软视窗的漏洞扫描器都是运行在Windows9X下的,如果是Win2000或者NT也有可能造成扫描器无法正常工作。
    7、下载回来的扫描器里面怎么没有可执行文件?
    扫描器不一定非要是可执行的exe文件,其他例如perl、cgi脚本语言也可以编写扫描器,因此没有可执行文件的扫描器也许是运行在网络服务器上的,这种扫描器可以被植入到网络上的其它系统中,不需要使用者上网就能够24小时不停的进行大面积地址扫描,并将结果整理、分析,最后通过Email发送到指定的电子信箱中,因此这是一种比较高级的扫描器,初学者不适合使用。
    另外注意载下在扫描器的时候注意压缩报文件的扩展名,如果是tar为扩展名,那么这个扫描器是运行在Linux系统下的,这种其它操作平台的扫描器无法在视窗平台下应用,文件格式也和FAT32不一样。
    8、扫描器只报告漏洞名称,不报告具体文件怎么办?
    只要漏洞被发现,网络安全组织即会为漏洞命名,因此漏洞名称对应的文件在相当广泛的范围内都是统一的,只要知道了漏洞的名称,黑客就可以通过专门的漏洞搜索引擎进行查找,并且学习到与找到漏洞相关的详细信息。这种“漏洞搜索引擎”在网络上非常多,例如我国“绿盟”提供的全中文漏洞搜索引擎就是比较理想的一个。

第三节、木马与后门     现在我们来看看木马在黑客学习中的作用。首先学习者要明确木马究竟是什么,同时还要搞清楚木马的类型,并且学习一些流行的木马程序的用法,这是一个相辅相成的学习进程,当黑客利用漏洞进入服务器之后,就可以选择两条路:一、破坏系统、获得资料、显示自己;二、利用木马为自己开辟一个合法的登录账号、掌管系统、利用被入侵系统作为跳板继续攻击其他系统。
    由此看来,木马程序是为第二种情况涉及的一种可以远程控制系统的程序,根据实现木马程序的目的,可以知道这种程序应该具有以下性质:
    1、伪装性:程序将自己的服务端伪装成合法程序,并且具有诱惑力的让被攻击者执行,在程序被激活后,木马代码会在未经授权的情况下运行并装载到系统开始运行进程中;
    2、隐藏性:木马程序通病毒程序一样,不会暴露在系统进程管理器内,也不会让使用者察觉到木马的存在,它的所有动作都是伴随其他程序的运行进行的,因此在一般情况下使用者很难发现系统中木马的存在;
    3、破坏性:通过远程控制,黑客可以通过木马程序对系统中的文件进行删除、编辑操作,还可以进行诸如格式化硬盘、改变系统启动参数等恶性破坏操作;
    4、窃密性:木马程序最大的特点就是可以窥视被入侵电脑上的所有资料,这不仅包括硬盘上的文件,还包括显示器画面、使用者在操作电脑过程中在硬盘上输入的所有命令等。
    看了上面的介绍,学习者应该对木马程序的用途有了一个初步了解,并且区分清除木马程序和病毒之间的相同点和不同点,由于黑客手段的日益增多,许多新出现的黑客手段(例如 D.O.S)经常会让学习者思维混乱,但实际上这些新出现的黑客手段都是从最开始的溢出、木马演变出来的,因而对于初学者来说,并不需要急于接触过多的新技术,而是要对最基本的也是最有效的黑客技术进行深入学习。 一、木马的原理:     大多数木马程序的基本原理都是一样的,他们是由两个程序配合使用——被安装在入侵系统内的Server程序;另一个是对Server其控制作用的Client程序。学习者已经了解了木马和病毒的区别,大多数Server程序不会像病毒一样主动传播,而是潜伏在一些合法程序内部,然后由目标操作者亲手将其安装到系统中,虽然这一切都是没有经过目标操作者授权的,然而从某种程度上说,这的确是在经过诱惑后目标“心甘情愿”接收木马的,当Server安装成功后,黑客就可以通过Client控制程序对Server端进行各种操作了。
    木马程序的Server端为了隐藏自己,必须在设计中做到不让自己显示到任务栏或者系统进程控制器中,同时还不会影响其他程序的正常运行,当使用者电脑处于断线状态下,Server段不会发送任何信息到预设的端口上,而会自动检测网络状态直到网络连接好,Server会通过email或者其他形式将Server端系统资料通知Client端,同时接收Client发送出来的请求。 二、BackOffice使用说明:     1、BackOffice简介:
    Back Orifice(以下简称BO)是一个客户机、服务器(Client/Server)木马应用程序,其客户机程序可以用于监视、管理和使用其他网络中运行服务器程序所在的网络资源。要与BO服务器连接,基于文本或图形方式的BO客户机需要运行在微软视窗系统中。
    2、服务器端程序的安装:
    在安装BO以前,先要对有关服务器端程序进行一些参数设置:如安装后的BO文件名、监听端口、加密密码,这些设置可以使用boconfig.exe工具。在不进行上述设置的情况下,BO缺省是监听31337端口、不使用加密密码。
    配置完毕后,将BO服务端交给目标系统并想办法让服务端程序在目标系统中执行,BO就可以自动进行安装了,并且会在安装完毕删除服务端程序,这样做有助于黑客,因为黑客入侵系统并将BO服务端上传完毕后,并不用考虑有关运行和删除服务端程序的问题,只要将这个程序上传到视窗系统的startup目录中就可以了,系统会在启动的时候自动执行startup目录中的程序,BO服务端安装完毕,相关程序会驻留在系统内部,所以即便删除了服务端程序,也不会将BO从系统中清除。安装好BO服务端之后,BO会在系统每次启动的时候自动执行,此操作既不需要黑客考虑,也不会引起使用者的注意。
    如果黑客需要远程更新BO服务端的版本,可以再一次将新版本的BO服务端上传到服务器上,然后利用手中的客户端使用Process spawn命令,BO会自动覆盖原系统中的老版本服务端程序。
    3、客户端程序的使用:
    BO客户端与服务端程序之间的信息是经过加密的UDP包,使用客户端确定目标的IP地址和端口,然后发送连接请求并验证密码,确认无误后就可以利用客户端对服务端系统进行控制了。BO的客户端程序分为图形界面和控制台界面两种操作方式,无论哪一种都可以实现其提供的所有功能。当试图进行连接的时候,控制台模式需要使用“-p”参数设置服务端程序端口。
    如果入侵系统安装了防火墙,可能会屏蔽某些常见的木马占用端口,这就需要在开始设置时改变端口为一个防火墙没有屏蔽的端口,这一步是否能成功关键取决于黑客经验的多少。
    输入对方的IP地址有两种情况:如果服务端系统拥有静态IP地址,可以在每次运行BO客户端时直接输入对方地址,并通过sweep或者ping命令进行连接申请;如果对方使用的是动态IP地址,需要在开始设置服务端时要求BO服务端在每次系统上网时将分配到的IP地址通过email方式传送到指定信箱中,然后由黑客到信箱中接收最新的服务器端系统的IP地址。
    4、常用的BO命令和说明:
    App add/appadd - 在TCP端口输出一个基于文本的应用程序。
    App del/appdel - 从监听的连接中关闭一个应用程序。
    Apps list/applist - 列出当前监听的连接中的应用程序。
    Directory create/md - 创建目录。
    Directory remove/rd - 删除目录。
    Directory list/dir - 列出文件和目录,支持使用通配符。
    Export add/shareadd - 在BO服务器上创建一个共享目录。
    Export delete/sharedel - 删除一个共享目录。
    Exports list/sharelist - 列出当前共享驱动器、目录、权限和密码等信息。
    File copy/copy - 复制文件。
    File delete/del - 删除文件。
    File find/find - 在目录中查找符合条件的文件。
    File view/view - 查看文件内容。
    HTTP Disable/httpoff - 使HTTP服务器失效。
    HTTP Enable/httpon - 使HTTP服务器有效。
    Keylog begin/keylog - 记录服务器上的键盘操作。
    Keylog end - 停止击键记录。基于文本的BO客户机使用“keylog stop”命令。
    Net connections/netlist - 列出当前接入和接出的连接。
    Net delete/netdisconnect - 断开BO服务器的一个网络资源连接。
    Net use/netconnect - 把BO服务器连接到一个网络资源。
    Net view/netview - 查看所有的网络接口、域名、服务器和可见的共享目录。
    Ping host/ping - Ping主机,返回主机名和BO版本。
    Process kill/prockill - 终止一个进程。
    Process list/proclist - 列出运行中的进程。
    Redir add/rediradd - 重定向接入的TCP连接或UDP数据包到另一个IP地址。
    Redir del/redirdel - 停止端口重定向。
    Redir list/redirlist - 列出激活的端口重定向。
    Resolve host/resolve - 解析BO服务器主机名的IP地址,主机名可能是一个Internet主机名或本地网络机器名。
    System info/info - 显示BO服务器上的系统信息,包括机器名、当前用户、CPU类型、内存容量及可用内存、Windows版本、驱动器信息。
    System lockup/lockup - 锁住BO服务器机器。
    System passwords/passes - 显示缓存中的用户密码和屏幕保护密码。
    System reboot/reboot - 关闭BO服务器主机并重启动。
    TCP file receive/tcprecv - 将BO服务器主机连接到一个特定的IP地址和端口,并保存所接收到的数据到特定文件中。
    TCP file send/tcpsend - 将BO服务器主机连接到一个特定的IP地址和端口,发送特定文件中的内容,然后断开此连接。 三、有争议的程序:     可以肯定木马程序是专门为黑客开发的,随着时间的推移一些功能象大的木马程序也被用来当作远程管理工具,然而这些木马程序都是“明目张胆”出现在我们面前的,另外还有一些隐藏的非常巧妙的类木马程序,他们的发现给网络带来了不小的争议,这是些正常的、无破坏性的电脑软件,而且这些软件中的大多数都是免费软件,软件作者为了获得收入,在开发软件的时候在程序中加入了收集使用者电脑信息的代码,也就是说当使用者运行这些软件的时候,软件会自动为使用者进行“注册”,将系统中的各种个人信息发送给软件作者,然后再由软件作者将这些资料出卖给第三方人员,以此赚取收入。
    这种作为免费使用软件所应该付出的回报的做法并无可厚非,但是问题出现在软件究竟从使用者电脑上获得了那些资料?如果单纯是电脑的类型、硬件配置等也还能够让人接受,但如果是关于个人信用卡或者个人email地址等隐私性问题,这种软件是否构成了木马的性质就很难说清楚了,当然这是否称得上侵犯个人隐私也还是一个悬而未决的问题。

黑客攻学兼防(固顶)相关推荐

  1. 包含锚点平滑滚动效果/解决锚点链接碰到固定定位问题/导航选中背景变色/固顶/返回顶部效果全...

    <script type="text/javascript">$(function() {//锚点平滑滚动效果 $('a[href*=#],area[href*=#]' ...

  2. animate用法 js原生_用 原生Javascript 创建带动画的固顶导航菜单

    当我们在网页中加入一个导航菜单的时候,需要考虑很多因素.如何确定它的位置?如何定义样式?还需要保证它具有良好的响应性.又或者你想为它添加一些炫酷的动画.这时你可能会对 jQuery 感兴趣,因为它会帮 ...

  3. 黑客必学之社会工程学

    2019独角兽企业重金招聘Python工程师标准>>> 黑客必学之社会工程学什么是社会工程学? 总体上来说,社会工程学就是使人们顺从你的意愿.满足你的欲望的一门艺术与学问.它并不单纯 ...

  4. 4.7W防削顶单声道D类音频功率放大器HT6872介绍

    HT6872简介 HT6872是一款低EMI,防削顶失真,单声道免滤波D类音频功率放大器.在6.5V电源,10%THD+N,4Ω负载条件下,输出4.71W功率,在各类音频终端应用中维持高效率并提供AB ...

  5. Fireeye前副总裁卜峥 :不知攻焉知防,打造“3C的安全体系结构”

    一年一度的阿里安全峰会创立于 2014 年,今年已是第三届,于7月13-14日在北京国家会议中心举办.峰会旨在促进亚太区信息安全行业发展,为本地区信息安全组织.信息安全专业人士和决策者搭建一个信息交流 ...

  6. python语言怎么学-Py列为黑客应该学的四种编程语言之一 新手该怎么学

    在开始前先简单和大家说一说:Python是什么.呢? 也许最初设计Python这种语言的人都没有想到今天Python会在工业和科研上获得如此广泛的使用.著名的自由软件作者Eric Raymond在他的 ...

  7. 学黑客要学什么编程语言

    基本黑客技术 黑客态度是重要的,但技术更加重要.态度无法替代技术,在你被别的黑客称为黑客之前,有一套基本的技术你必须掌握. 这套基本技术随着新技术的出现和老技术的过时也随时间在缓慢改变.例如,过去包括 ...

  8. 黑客攻入卡巴斯基 杀毒软件遭质疑

    据国外媒体报道,一名黑客称其成功攻入杀毒软件厂商卡巴斯基的一个包括敏感信息的数据库,获取了包括用户名单和卡巴产品bug等资料在内的大量敏感信息. 该黑客称自己使用简单的SQL注入命令就成功攻入此数据库 ...

  9. 如何成为一名黑客需要学什么,黑客入门必学的7个基本技术

    首先要明白啊,我们现在说的黑客不是那种窃取别人信息.攻击别人系统的黑客,说的是调试和分析计算机安全系统的网络安全工程师. 如果你是要学前者,别来找我,找我我也不教,学后者的话请用心听了. 黑客技术的核 ...

最新文章

  1. 随机森林(Random Forest)为什么是森林?到底随机在哪里?行采样和列采样又是什么东西?
  2. 如何优化 Java 性能?
  3. 【无标题】科大星云诗社动态20220109
  4. boost::gil::detail::convolve_2d用法的测试程序
  5. 一致性哈希算法原理、避免数据热点方法及Java实现
  6. 无网络访问权限怎么办_老司机教你IPV4无网络访问权限怎么办
  7. 基于R-Net、QA-Net和BiDAF实现中文观点型问题机器阅读理解
  8. RuntimeError: Python is not installed as a framework 错误解决方案
  9. 公众号内打开提示404_微信公众号文章内如何插入视频?
  10. Enterprise Library - Security Application Block 学习手册(最新版) Part 1
  11. 蓝桥杯2016年第七届C/C++省赛B组第二题-生日蜡烛
  12. Android四大组件的作用
  13. php10充电宝拆解,【变废为宝拆解】拆解一个正品的小米移动电源10400mAh版
  14. 开源代码检测FOSSID
  15. python opencv 裁剪图片_python通过opencv实现图片裁剪原理解析
  16. 【django】class='btn' btn按钮样式
  17. 如何开一场高效的迭代排期会 | 敏捷开发落地指南
  18. 我是K哥,大厂高管,抓住过几次风口,交个朋友吧
  19. Composing Photos Like a Photographer_2021_CVPR论文笔记
  20. Java项目:药店信息管理系统(java+SSM+JSP+layui+maven+mysql)——计算机毕业设计

热门文章

  1. 浙大计算机学院多厉害,一张图,就能告诉你浙大到底有多牛!
  2. wireshark常用过滤条件
  3. 宸展光电拟与宸鸿科技集团合资;Tableau承诺未来五年培养1000万名数据学员 | 全球TMT...
  4. CDH大数据平台 Error while compiling statement: FAILED: SemanticException No valid privileges User tianlin
  5. MongoDB复制集原理和配置
  6. Rocket MQ(四)Topic,Topic分片和Queue
  7. python爬取国家男女比例_用python爬取3万多条评论,看韩国人如何评价韩国电影《寄生虫》?...
  8. 奇虎360运维工程师招聘测试题
  9. 游戏自评——英雄无敌手游
  10. 一入爬虫深似海,从此“节操”是路人!熬夜总结的python爬虫资料