给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
网络安全面试题
绿盟护网行动
还有大家最喜欢的黑客技术
网络安全源码合集+工具包
所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
第二节、黑客应掌握的基本技能
从这一节开始,我们就真正踏上学习黑客的道路了,首先要介绍的是作为一名初级黑客所必须掌握的基本技能,学习这可以通过这一节的阅读了解到黑客并不神秘,而且学习起来很容易上手。为了保证初学者对黑客的兴趣,所以本书采取了循环式进度,也就是说每一章节的内容都是独立、全面的,学习者只有完整的学习过一章的内容,才能够进而学习下一章的内容。
一、了解一定量的英文:
学习英文对于黑客来说非常重要,因为现在大多数资料和教程都是英文版本,而且有关黑客的新闻也是从国外过来的,一个漏洞从发现到出现中文介绍,需要大约一个星期的时间,在这段时间内网络管理员就已经有足够的时间修补漏洞了,所以当我们看到中文介绍的时候,这个漏洞可能早就已经不存在了。因此学习黑客从一开始就要尽量阅读英文资料、使用英文软件、并且及时关注国外著名的网络安全网站。
二、学会基本软件的使用:
这里所说的基本软件是指两个内容:一个是我们日常使用的各种电脑常用命令,例如ftp、ping、net等;另一方面还要学会有关黑客工具的使用,这主要包括端口扫描器、漏洞扫描器、信息截获工具和密码破解工具等。因为这些软件品种多,功能各不相同,所以本书在后面将会介绍几款流行的软件使用方法,学习者在掌握其基本原理以后,既可以选择适合自己的,也可以在“第二部分”中找到有关软件的开发指南,编写自己的黑客工具。
三、初步了解网络协议和工作原理:
所谓“初步了解”就是“按照自己的理解方式”弄明白网络的工作原理,因为协议涉及的知识多且复杂,所以如果在一开始就进行深入研究,势必会大大挫伤学习积极性。在这里我建议学习者初步了解有关tcp/ip协议,尤其是浏览网页的时候网络是如何传递信息、客户端浏览器如何申请“握手信息”、服务器端如何“应答握手信息”并“接受请求”等内容,此部分内容将会在后面的章节中进行具体介绍。
四、熟悉几种流行的编程语言和脚本:
同上面所述一样,这里也不要求学习者进行深入学习,只要能够看懂有关语言、知道程序执行结果就可以了。建议学习者初步学习C语言、asp和cgi脚本语言,另外对于htm超文本语言和php、java等做基本了解,主要学习这些语言中的“变量”和“数组”部分,因为语言之间存在内在联系,所以只要熟练掌握其中一们,其他语言也可以一脉相同,建议学习C语言和htm超文本语言。
五、熟悉网络应用程序:
网络应用程序包括各种服务器软件后台程序,例如:wuftp、Apache等服务器后台;还有网上流行的各种论坛、电子社区。有条件的学习者最好将自己的电脑做成服务器,然后安装并运行一些论坛代码,经过一番尝试之后,将会感性的弄清楚网络工作原理,这比依靠理论学习要容易许多,能够达到事半功倍的效果!
第一章、基本理论和基本知识
第一节、网络安全术语解释
一、协议:
网络是一个信息交换的场所,所有接入网络的计算机都可以通过彼此之间的物理连设备行信息交换,这种物理设备包括最常见的电缆、光缆、无线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加密锁,这两种加密方式分别可以完成用户登陆系统、网站、电子邮件信箱和保护信息包的工作,而黑客所要进行的工作,就是通过漏洞、暴力猜测、加密算法反向应用等方式获得加密档案的明文,有人把“魔高一尺、道高一仗”用在这里,的确是在恰当不过了!网络上的加密方法和需要验证密码的系统层出不穷,黑客也在寻找破解这些系统的种种办法。
可以说,“漏洞”和“解密”是两个完全不同的黑客领域,对于不同的学习者对他们的偏好,将会直接影响到今后将会成为的黑客类型,因而在二者之间的选择,应根据个人喜好进行,本书将会侧重学习“漏洞”方面的知识。
七、特洛伊木马:
特洛伊木马是一个程序,这个程序可以做程序设计者有意设计的未出现过的事情。但是对于特洛伊木马所做的操作,不论是否用户了解,都是不被赞同的。根据某些人的认识,病毒是特洛伊木马的一个特例,即:能够传播到其他的程序当中(也就是将这些程序也变成特洛伊木马)。根据另外的人的理解,不是有意造成任何损坏的病毒不是特洛伊木马。最终,不论如何定义,许多人仅仅用“特洛伊木马”来形容不能复制的带有恶意的程序,以便将特洛伊木马与病毒区分开?
第三节、常用黑客软件用途分类
一、防范:
这是从安全的角度出发涉及的一类软件,例如防火墙、查病毒软件、系统进程监视器、端口管理程序等都属于此类软件。这类软件可以在最大程度上保证电脑使用者的安全和个人隐私,不被黑客破坏。网络服务器对于此类软件的需要也是十分重视的,如日志分析软件、系统入侵软件等可以帮助管理员维护服务器并对入侵系统的黑客进行追踪。
二、信息搜集:
信息搜集软件种类比较多,包括端口扫描、漏洞扫描、弱口令扫描等扫描类软件;还有监听、截获信息包等间谍类软件,其大多数属于亦正亦邪的软件,也就是说无论正派黑客、邪派黑客、系统管理员还是一般的电脑使用者,都可以使用者类软件完成各自不同的目的。在大多数情况下,黑客使用者类软件的频率更高,因为他们需要依靠此类软件对服务器进行全方位的扫描,获得尽可能多的关于服务器的信息,在对服务器有了充分的了解之后,才能进行黑客动作。
三、木马与蠕虫:
这是两种类型的软件,不过他们的工作原理大致相同,都具有病毒的隐藏性和破坏性,另外此类软件还可以由拥有控制权的人进行操作,或由事先精心设计的程序完成一定的工作。当然这类软件也可以被系统管理员利用,当作远程管理服务器的工具。
四、洪水:
所谓“洪水”即信息垃圾×××,通过大量的垃圾请求可以导致目标服务器负载超负荷而崩溃,近年来网络上又开始流行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,那么告诉你一个好消息——你没有必要安装过多的额外软件,因为我们接触的黑客知识依靠系统提供给我们的命令和内置软件就足可以完成了!除了基本的操作系统以外,学习者还需要安装各类扫描器,之后下载一个比较优秀的木马软件、一个监听类软件,除此以外别无它求。如果有必要,读者可以自行安装本文上述软件,然后学习其用法,但是我要告诉你,对于各类×××、还有网络上各式各样的黑客软件,在学习完本书后,你都可以自己制作、自己开发,根本没有必要使用他人编写的软件。
对于扫描器和×××,我给出以下建议,并且在本书的后面还会对这几个软件进行详细介绍:
这三个软件都是免费的,而且功能异常强大。像xscanner是国产软件,他集成了多种扫描功能于一身,并且同时支持控制台和图形界面两种操作方式,另外提供了详细的漏洞使用说明。对于初学者来说,具备了这两个工具,学习黑客已经绰绰有余了。
三、额外的工具:
如果可以安装下面的工具,将会对学习黑客有莫大的帮助,当然下面的软件主要是学习额外内容并为“第二部分”学习作铺垫用的,所以没有也不会妨碍本书的学习。
1、后台服务器:
拥有某些网络应用的后台服务程序,可以将自己的电脑设置成一个小型服务器,用来学习相应的网络应用,从“内部”了解其运作机理,这将会大大提高自己对服务器的感性认识,同时还能够在激活服务器的时候;监测自己服务器上的数据,如果有其他黑客来攻击,则可以清晰的记录下对方的攻击过程,从而学习到更多的黑客攻击方法。对于本书而言,主要介绍网站的Perl和asp等脚本语言漏洞,所以可以安装一个IIS或者HTTPD。然后在安装ActivePerl,使自己的服务器具备编译cgi和pl脚本的能力。使用自己的服务器还有一个好处,可以节省大量的上网时间,将学习、寻找漏洞的过程放到自己的电脑上,既节省了金钱、有不会对网络构成威胁,一举两得。
2、C语言编译平台:
今后在学习黑客的路途中,将会遇到很多“属于自己的问题”,这些问题网络上的其他人可能不会注意,所以无法找到相应的程序,这个时候学习者就要自己动手开发有关的工具了,所以安装一个Borland C++将会非常便捷,通过这个编译器,学习者既可以学习C语言,也能够修改本书后面列出的一些小程序,打造一个属于自己的工具库。
四、网络安全软件分类
现在我们来了解一下有关网络安全软件的分类,因为学习黑客知识是两个相互联系的过程:既学习如何黑,还要学会如何防止被黑。
1、防火墙:
学习路线:
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!