最经典的⿊客⼊门教程(安全必备技能)
⽆论那类⿊客,他们最初的学习内容都将是本部分所涉及的内容,⽽且掌握的基本技能也都是⼀样的。即便⽇后他们各⾃⾛上了不同的道路,但是所做的事情也差不多,只不过出发点和⽬的不⼀样⽽已。
很多⼈曾经问我:“做⿊客平时都做什么?是不是⾮常刺激?”也有⼈对⿊客的理解是“天天做⽆聊且重复的事情”。实际上这些⼜是⼀个错误的认识,⿊客平时需要⽤⼤量的时间学习,我不知道这个过程有没有终点,只知道“多多益善”。由于学习⿊客完全出于个⼈爱好,所以⽆所谓“⽆聊”;重复是不可避免的,因为“熟能⽣巧”,只有经过不断的联系、实践,才可能⾃⼰体会出⼀些只可意会、不可⾔传的⼼得。
在学习之余,⿊客应该将⾃⼰所掌握的知识应⽤到实际当中,⽆论是哪种⿊客做出来的事情,根本⽬的⽆⾮是在实际中掌握⾃⼰所学习的内容。
初级⿊客要学习的知识是⽐较困难的,因为他们没有基础,所以学习起来要接触⾮常多的基本内容,然⽽今天的互联⽹给读者带来了很多的信息,这就需要初级学习者进⾏选择:太深的内容可能会给学习带来困难;太“花哨”的内容⼜对学习⿊客没有⽤处。所以初学者不能贪多,应该尽量寻⼀本书和⾃⼰的完整教材、循序渐进的进⾏学习。
⼆、伪装⾃⼰:
⿊客的⼀举⼀动都会被服务器记录下来,所以⿊客必须伪装⾃⼰使得对⽅⽆法辨别其真实⾝份,这需要有熟练的技巧,⽤来伪装⾃⼰的IP地址、使⽤跳板逃避跟踪、清理记录扰乱对⽅线索、巧妙躲开防⽕墙等。
伪装是需要⾮常过硬的基本功才能实现的,这对于初学者来说成的上“⼤成境界”了,也就是说初学者不可能⽤短时间学会伪装,所以我并不⿎励初学者利⽤⾃⼰学习的知识对⽹络进⾏攻击,否则⼀旦⾃⼰的⾏迹败露,最终害的害是⾃⼰。
如果有朝⼀⽇你成为了真正的⿊客,我也同样不赞成你对⽹络进⾏攻击,毕竟⿊客的成长是⼀种学习,⽽不是⼀种犯罪。
三、发现漏洞:
漏洞对⿊客来说是最重要的信息,⿊客要经常学习别⼈发现的漏洞,并努⼒⾃⼰寻未知漏洞,并从海量的漏洞中寻有价值的、可被利⽤的漏洞进⾏试验,当然他们最终的⽬的是通过漏洞进⾏破坏或着修补上这个漏洞。
⿊客对寻漏洞的执著是常⼈难以想象的,他们的⼝号说“打破权威”,从⼀次⼜⼀次的⿊客实践中,⿊客也⽤⾃⼰的实际⾏动向世⼈印证了这⼀点——世界上没有“不存在漏洞”的程序。在⿊客眼中,所谓的“天⾐⽆缝”不过是“没有到”⽽已。
四、利⽤漏洞:
对于正派⿊客来说,漏洞要被修补;对于邪派⿊客来说,漏洞要⽤来搞破坏。⽽他们的基本前提是“利⽤漏洞”,⿊客利⽤漏洞可以做下⾯的事情:
1、获得系统信息:有些漏洞可以泄漏系统信息,暴露敏感资料,从⽽进⼀步⼊侵系统;
2、⼊侵系统:通过漏洞进⼊系统内部,或取得服务器上的内部资料、或完全掌管服务器;
3、寻下⼀个⽬标:⼀个胜利意味着下⼀个⽬标的出现,⿊客应该充分利⽤⾃⼰已经掌管的服务器作为⼯具,寻并⼊侵下⼀个系统;
4、做⼀些好事:正派⿊客在完成上⾯的⼯作后,就会修复漏洞或者通知系统管理员,做出⼀些维护⽹络安全的事情;
5、做⼀些坏事:邪派⿊客在完成上⾯的⼯作后,会判断服务器是否还有利⽤价值。如果有利⽤价值,他们会在服务器上植⼊⽊马或者后门,便于下⼀次来访;⽽对没有利⽤价值的服务器他们决不留情,系统崩溃会让他们感到⽆限的快感!
⼀、了解⼀定量的英⽂:
学习英⽂对于⿊客来说⾮常重要,因为现在⼤多数资料和教程都是英⽂版本,⽽且有关⿊客的新闻也是从国外过来的,⼀个漏洞从发现到出现中⽂介绍,需要⼤约⼀个星期的时间,在这段时间内⽹络管理员就已经有⾜够的时间修补漏洞了,所以当我们看到中⽂介绍的时候,这个漏洞可能早就已经不存在了。因此学习⿊客从⼀开始就要尽量阅读英⽂资料、使⽤英⽂软件、并且及时关注国外著名的⽹络安全⽹站。
⼆、学会基本软件的使⽤:
这⾥所说的基本软件是指两个内容:⼀个是我们⽇常使⽤的各种电脑常⽤命令,例如ftp、ping、net等;另⼀⽅⾯还要学会有关⿊客⼯具的使⽤,这主要包括端⼝扫描器、漏洞扫描器、信息截获⼯具和密码破解⼯具等。因为这些软件品种多,功能各不相同,所以本书在后⾯将会介绍⼏款流⾏的软件使⽤⽅法,学习者在掌握其基本原理以后,既可以选择适合⾃⼰的,也可以在“第⼆部分”中到有关软件的开发指南,编写⾃⼰的⿊客⼯具。
三、初步了解⽹络协议和⼯作原理:
所谓“初步了解”就是“按照⾃⼰的理解⽅式”弄明⽩⽹络的⼯作原理,因为协议涉及的知识多且复杂,所以如果在⼀开始就进⾏深⼊研究,势必会⼤⼤挫伤学习积极性。在这⾥我建议学习者初步了解有关tcp/ip协议,尤其是浏览⽹页的时候⽹络是如何传递信息、客户端浏览器如何申请“握⼿信息”、服务器
端如何“应答握⼿信息”并“接受请求”等内容,此部分内容将会在后⾯的章节中进⾏具体介绍。
四、熟悉⼏种流⾏的编程语⾔和脚本:
同上⾯所述⼀样,这⾥也不要求学习者进⾏深⼊学习,只要能够看懂有关语⾔、知道程序执⾏结果就可以了。建议学习者
初步学习C语⾔、asp和cgi脚本语⾔,另外对于htm超⽂本语⾔和php、java等做基本了解,主要学习这些语⾔中的“变量”和“数组”部分,因为语⾔之间存在内在联系,所以只要熟练掌握其中⼀们,其他语⾔也可以⼀脉相同,建议学习C语⾔和htm超⽂本语⾔。
五、熟悉⽹络应⽤程序:
⽹络应⽤程序包括各种服务器软件后台程序,例如:wuftp、Apache等服务器后台;还有⽹上流⾏的各种论坛、电⼦社区。有条件的学习者最好将⾃⼰的电脑做成服务器,然后安装并运⾏⼀些论坛代码,经过⼀番尝试之后,将会感性的弄清楚⽹络⼯作原理,这⽐依靠理论学习要容易许多,能够达到事半功倍的效果!
这种协议很类似于“摩尔斯电码”,简单的⼀点⼀横,经过排列可以有万般变化,但是假如没有“对照表”,谁也⽆法理解⼀分杂乱⽆章的电码所表述的内容是什么。电脑也是⼀样,它们通过各种预先规定
的协议完成不同的使命,例如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加密锁,这两种加密⽅式分别可以完成⽤户登陆系统、⽹站、电⼦邮件信箱和保护信息包的⼯作,⽽⿊客所要进⾏的⼯作,就是通过漏洞、暴⼒猜测、加密算法反向应⽤等⽅式获得加密档案的明⽂,有⼈把“魔⾼⼀尺、道⾼⼀仗”⽤在这⾥,的确是在恰当不过了!⽹络上的加密⽅法和需要验证密码的系统层出不穷,⿊客也在寻破解这些系统的种种办法。
可以说,“漏洞”和“解密”是两个完全不同的⿊客领域,对于不同的学习者对他们的偏好,将会直接影
perl下载安装教程响到今后将会成为的⿊客类型,因⽽在⼆者之间的选择,应根据个⼈喜好进⾏,本书将会侧重学习“漏洞”⽅⾯的知识。
七、特洛伊⽊马:
特洛伊⽊马是⼀个程序,这个程序可以做程序设计者有意设计的未出现过的事情。但是对于特洛伊⽊马所做的操作,不论是否⽤户了解,都是不被赞同的。根据某些⼈的认识,病毒是特洛伊⽊马的⼀个特例,即:能够传播到其他的程序当中(也就是将这些程序也变成特洛伊⽊马)。根据另外的⼈的理解,不是有意造成任何损坏的病毒不是特洛伊⽊马。最终,不论如何定义,许多⼈仅仅⽤“特洛伊⽊马”来形容不能复制的带有恶意的程序,以便将特洛伊⽊马与病毒区分开?
⼆、信息搜集:
信息搜集软件种类⽐较多,包括端⼝扫描、漏洞扫描、弱⼝令扫描等扫描类软件;还有监听、截获信息包等间谍类软件,其⼤多数属于亦正亦邪的软件,也就是说⽆论正派⿊客、邪派⿊客、系统管理员还是⼀般的电脑使⽤者,都可以使⽤者类软件完成各⾃不同的⽬的。在⼤多数情况下,⿊客使⽤者类软件的频率更⾼,因为他们需要依靠此类软件对服务器进⾏全⽅位的扫描,获得尽可能多的关于服务器的信息,在对服务器有了充分的了解之后,才能进⾏⿊客动作。
三、⽊马与蠕⾍:
这是两种类型的软件,不过他们的⼯作原理⼤致相同,都具有病毒的隐藏性和破坏性,另外此类软件还可以由拥有控制权的⼈进⾏操作,或由事先精⼼设计的程序完成⼀定的⼯作。当然这类软件也可以被系统管理员利⽤,当作远程管理服务器的⼯具。
四、洪⽔:
所谓“洪⽔”即信息垃圾,通过⼤量的垃圾请求可以导致⽬标服务器负载超负荷⽽崩溃,近年来⽹络上⼜开始流⾏DOS 分散式攻击,简单地说也可以将其归⼊此类软件中。洪⽔软件还可以⽤作邮件或者聊天式,这些都是经过简化并由⽹络安全爱好者程序化的“傻⽠式”软件,也就是本书⼀开始指责的“伪⿊客”⼿中经常使⽤的软件。
五、密码破解:
⽹络安全得以保证的最实⽤⽅法是依靠各种加密算法的密码系统,⿊客也许可以很容易获得⼀份暗⽂密码⽂件,但是如果没有加密算法,它仍然⽆法获得真正的密码,因此使⽤密码破解类软件势在必⾏,利⽤电脑的⾼速计算能⼒,此类软件可以⽤密码字典或者穷举等⽅式还原经过加密的暗⽂。
六、欺骗:
如果希望获得上⾯提到的明⽂密码,⿊客需要对暗⽂进⾏加密算法还原,但如果是⼀个复杂的密码,
破解起来就不是那么简单了。但如果让知道密码的⼈直接告诉⿊客密码的原型,是不是更加⽅便?欺骗类软件就是为了完成这个⽬的⽽设计的。
七、伪装:
⽹络上进⾏的各种操作都会被ISP、服务器记录下来,如果没有经过很好的伪装就进⾏⿊客动作,很容易就会被反跟踪技术追查到⿊客的所在,所以伪装⾃⼰的IP地址、⾝份是⿊客⾮常重要的⼀节必修课,但是伪装技术需要⾼深的⽹络知识,⼀开始没有坚实的基础就要⽤到这⼀类软件了。
本书使⽤的平台WindowsME,因为对于个⼈⽤户来说,NT或者2000多少有些苛刻——系统配置要求太⾼;然⽽使⽤95或者98⼜缺少某些必要的功能——NET、TELNET命令不完善。但是本书的⼤部分内容测试漏洞,从远程服务器出发,所以也不是⾮要WindowsME操作系统进⾏学习,对于少数系统版本之间的差异,学习者可以和我联系获得相应系统的学习⽅法。
对于扫描器和,我给出以下建议,并且在本书的后⾯还会对这⼏个软件进⾏详细介绍:
这三个软件都是免费的,⽽且功能异常强⼤。像xscanner是国产软件,他集成了多种扫描功能于⼀⾝,并且同时⽀持控制台和图形界⾯两种操作⽅式,另外提供了详细的漏洞使⽤说明。对于初学者来说,具备了这两个⼯具,学习⿊客已经绰绰有余了。
2、C语⾔编译平台:
今后在学习⿊客的路途中,将会遇到很多“属于⾃⼰的问题”,这些问题⽹络上的其他⼈可能不会注意,所以⽆法到相应的程序,这个时候学习者就要⾃⼰动⼿开发有关的⼯具了,所以安装⼀个Borland C++将会⾮常便捷,通过这个编译器,学习者既可以学习C语⾔,也能够修改本书后⾯列出的⼀些⼩程序,打造⼀个属于⾃⼰的⼯具库。
2、检测软件:
互联⽹上有专门针对某个⿊客程序进⾏清除的⼯具,但是这类软件更多是集成在杀毒软件或者防⽕墙软件内的,对于系统内的⽊马、蠕⾍可以进⾏检测并清除,软件为了保护系统不受侵害,会⾃动保护硬盘数据、⾃动维护注册表⽂件、检测内容可以代码、监测系统端⼝开放状态等。如果⽤户需要,软件还可以编写有关的脚本对指定端⼝进⾏屏蔽(防⽕墙⼀样具备此功能)。
3、备份⼯具:
专门⽤来备份数据的⼯具可以帮助服务器定期备份数据,并在制定时间更新数据,这样即便⿊客破坏了服务器上的数据库,软件也可以在短时间内完全修复收到⼊侵的数据。另外对于个⼈⽤户,这类软件可以对硬盘进⾏完全映像备份,⼀旦系统崩溃,⽤户利⽤这类软件可以将系统恢复到原始状态,例如Ghost就是这类软件中的佼佼者。
4、⽇志纪录、分析⼯具:
对于服务器来说,⽇志⽂件是必不可少的,管理员可以通过⽇志了解服务器的请求类型和请求来源,并且根据⽇志判断系统是否受到⿊客攻击。通过⽇志分析软件,管理员可以轻松的对⼊侵⿊客进⾏反追踪,到⿊客的攻击来源,进⽽抓不⿊客。这也就是为什么⿊客在攻击的时候多采⽤IP地址伪装、服务器跳转,并在⼊侵服务器之后清除⽇志⽂件的原因.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论