1. 前言
说实话,一直到现在,我都认为绝大多数看我这篇文章的读者最后终究会放弃,原因很简单,自学终究是一种适合于极少数人的学习方法,而且非常非常慢,在这个过程中的变数过大,稍有不慎,就会与当初的理想失之交臂。
文末准备了学习路线。
但是,毕竟有像我当年一样的年轻人,他们有毅力、有理想,他们真的可以坚持十年来学习这门技术,而如果有人稍加指导,就有可能将他的自学时间缩短一倍,甚至更多。因此,本着不漏掉一个人的初心,便有了这篇长文,这篇文章除了提炼了我自己长达十年的自学历程,就我这么多年的经验来看,更多的人之所以没能学好,其实就是内在的东西准备的过于潦草了,希望本文能对想要自学的读者提供力所能及的帮助。
2. 经验
学习十余年的经验,最终我的心得是——决定大多数人是否能够学会这个技术的关键点,是对一些基本问题的理解是否准确。
用人话说就是,用遵循世间规则的智慧(道)去引导内心的冲动与目标(术)的能力决定你这次学习的最终结局(甚至是更大的,这一生的结局)。
下面我就从三个典型的认知谬误分别讲解这个问题:
首先,是终点与成长的博弈。
我曾经问过很多学习黑客技术的初学者为什么要学习这个,我得到的最多答案就是“我要变得很牛逼”,然而至于如何才算牛逼呢,他们的答案是“如果我学会黑客技术,我就_____”,而当你继续问要学习什么才能这么牛逼时,基本上就给问住了。
当然,我这篇文章的目的就是为了解决这个被问住的问题,但是笔者现在的经验毕竟不同于八年前学习的状态,我感觉自己有义务、也有能力给出各位初学者一个更好的,可以受用一生的答案,因此才有了这段废话,但就我个人而言,我认为这才是我的心得的精华之所在。
我相信绝大多数阅读本篇文章的同学都在高中时听到过一句话,那就是“只要如何如何学习,就能考上好大学,就成功了!”这种一劳永逸的想法源自于我们人类千百万年的进化,但是随着近几千年的发展,这种想法逐渐成为了我们的桎梏。而可悲的是,作为新人类的我们,却还要忍受高中教育的这种错误价值观的强化,最终的结果是接受更多教育的我们反而被削弱了自己的价值。
经历过高考的各位同学都应该心有感触:
- 当你在高中时,你被告知必须考上大学才能成功
- 当你在初入大学认为已经成功之时,你被告知必须修够学分拿到毕业证才能成功
- 而当你成功毕业认为已经成功之时,你被告知必须找个好工作才能成功
- 而当你千辛万苦终于找个好工作时,你被告知必须出色完成KPI快速升职加薪才能成功
- 当你使出吃奶的劲儿升职加薪之后,你被告知必须在北京买上几百万的房子才能成功
- ……
而如果你一直以这种思维生活/学习下去,那么你基本上就不会成功,你的每一次目标的达成都会让你多一分怨气,少一分斗志,最后大多数人就局限在这个死循环中被吞没了。而且更加要命的是,由于你过于关注每次达成“成功”的局部,而无法以更大的格局思考问题。
如果你突破不了基因带给你的桎梏,那么你将永远是芸芸众生,而我们都知道芸芸众生中是不可能有黑客这种精英出现的。
因此,在你正式准备学习黑客之前,建议你要先了解一个客观事实,那就是——只有成长才是永恒的主题,过程中的成功仅仅是你成长路上的里程碑而已。
也就是你要搞清楚一件事,所谓的成功只不过是供你意淫的一个小目标,而并非就是终点,如果你认识不到这一点,那么就会出现很严重的问题。
举例来说,如果小明认为“如果我要学会黑客技术,我就可以盗美女的QQ号啦”,那么如果小明是按照一个专业黑客的路线发展的话(无此想法的读者请右上角点击关闭,出门左转各大黑客网站),小明首先需要做的就是要精通C语言。
而学习C语言与盗QQ这种工具流比起来,简直不知道要高级多少倍,因此自然也要更困难些,这样就会导致小明做着一件实际价值很高,但在小明看来却不值一提的事(C语言在小明心里远不及盗QQ高级),这种落差带来的认知失调最终会将你学习黑客技术的激情冲的一干二净。
因此,学习黑客技术的第一条铁律就是不要有终点思维,深刻理解成长才是永恒的主题。
其次,是幻想与价值的博弈。
懒惰是最容易容易让人们产生幻想的行为。因为懒惰,所以不能得到,但是内心又无比渴求,所以只能通过幻想来麻痹自己。这里的幻想可能是自己有意识的幻想,也有可能是无无意识的幻想,甚至自己都不知道正处于幻想中。
但是你大可不必为此而自责,最起码对于我来说,或者我通过观察周围的人而得出的结论,包括我在内的几乎所有人都在无时不刻的与懒惰做着斗争,例如“事情太多”、“这太难了”、“没有灵感”等等都是因懒惰而产生的幻觉。因此,任何一位你眼中的大牛无不是通过了无数次与懒惰的殊死博弈才取得的今天的成就。
因此,你要知道,只有你真正俯下身子去一点点的学习知识,才会使得你离黑客越来越近。但可怕的是,大多数初学者并不懂得这些,他们在内心深处始终都认为有那么一种灵丹妙药可以让他在更短的时间内掌握黑客技术,从而去花费数倍于所谓的“更短时间”的时间去寻求这本就不存在的方法。
因此,学习黑客技术的第二条铁律就是不要抱有任何幻想、任何偷奸取巧,只要你决定这条路是自己去走,那么无论你如何寻找奇技淫巧,最终都不会让你少走半步。
最后,是浮躁与耐心的博弈。
自大、自满、眼高手低皆来源于浮躁,而最致命的是,如今这个社会的整体就是浮躁的。
如果你理解了成长的意义,如果你已坚定信心笃学技术,那么,你还有可能被最后一块石头所绊倒,那就是对自己的耐心。
包括我在内的绝大多数人,在制定目标时都会高估自己的精力、高估自己的效率、高估自己的智商,甚至高估自己对此事的兴趣。
这一系列的高估会在学习后半段严重干扰我们的学习效果,那种现实与理想的差距会导致你对自己能力的认知失调,进而过低的估计自己各方面能力,最终导致失败。
因此,学习黑客技术的第三条铁律就是时刻葆有对低效率的自己的耐心。
3. 要考虑的问题
想要做任何事情之前,一定要想清楚三个问题,分别是你为什么要做,你愿意为此付出什么,你想要的结果是什么。而所谓的智慧,就是一个人通过这种方式不断的调整自己对于各种事情的预期,从而达到一种与外界的平衡。如果将这个思路映射到黑客学习这件事上,大体可以分为如下三个问题。
首先,要考虑清楚你为何要学这个。说白了就是你的动机是什么,如果你的动机是不可持续的,例如盗个扣(甚至是挖个系统级0Day漏洞),那么我建议你将自己的动机修改为可持续的,例如你想保持一项什么记录(甚至是让其他人更加尊敬你),因为这类动机是在不断变换的,只有这类动机才能让你有一个更加长久的动力源泉,才能促使你坚持的更久,也就能取得更大的成就。
其次,要考虑明白你可以付出什么。你要清楚的是,任何事情都是有代价的,而且如果你此时的年龄越小,你那么你对“代价”的理解就越不深刻,这点一定要着重加以注意。
黑客技术是一件非常有魅力、非常有价值,同时也是非常酷的一件事,但是这么有魅力的事情,如果你想要完成它,要么需要极佳的运气,要么就是需要你付出非人的努力。
举例来说,最近我们经常看到媒体在报道时说国内某组织的某黑客在几秒内就攻破了IE浏览器,在几秒内就绕过了XX保护机制。但事实的真相是他们其实就是运行了一个自己准备好的代码而已,而媒体上说的这几秒钟的时间其实是代码的运行时间。据我说知,他们在参赛之前,整个团队为了这几秒钟的ShowTime,需要经历至少十余个甚至数十个不眠之夜,然后才能打造出可能仅有几百个字节的艺术品般的代码(也就是Exploit),最后才能拿去现场过五关斩六将。
如果在这个十三亿人口的国度里最牛逼的黑客都需要如此付出,那么作为目前默默无闻的你来说,想要学会这门技术应该需要多少个不眠之夜呢?
最后,要考虑你的学习方向是什么。信息安全领域的方向太多了,如果最粗旷的分,大致可以分为网络安全、软件安全、基础安全这三类。其中网络安全包括网络渗透、通讯安全、电信安全等,软件安全包括授权控制、漏洞挖掘、加密解密等,基础安全分为理论安全、密码学等。
我收到的最多的、也是令我最郁闷的问题就是“你的那幅图我已经看了,但是我想知道我应该怎么学呢?或是从何处开始呢?”是的,你没看错,纵然我这幅图获得了超乎想象的关注,但是仍有很大一部分人似乎并没有因为这个世界上多出这幅珍贵的图而获得什么,他们仍然是迷茫的,当然,这也并不能全怪他们。
所有人的成长都是从知道自己不需要什么东西开始的,举例来说,几乎95%以上的大学生其实根本就不知道自己想要什么,只知道自己不想要什么,这其实就是不成熟的一种表现,用我们那个方言讲就是“青瓜蛋子”。
那么“青瓜蛋子”们最需要的是什么呢?就是前辈们的指导,告诉他们,他们真正的需求是什么,然后他们恍然大悟,似乎这就真的是他们此时所最需要的东西了。
而就大多数事情而言,根本没那么复杂,随意挑选一个你最感兴趣的方向就好了;如果挑不出来,那就随意挑一个你感觉自己最擅长的;如果还挑不出来,那就挑一个你感觉最顺眼的即可。
学习信息安全技术如同做其他事情一样,最终如果你要想有所成就,必然是登上这个领域数座高峰的强者,然而你一开始并不能做到这一点,因此最简单的方法就是随便挑选一座不是太低的山峰蹬一蹬试试看。因为只要你能登上其中的一座山峰,就能一览众山小,就掌握了快速登顶相邻山峰的方法。
学习信息安全技术同样如此,你应该想找一个不是太浅的方向(例如渗透就有些浅)深入研究下去,等你将这个领域彻底研究明白后,其他方向的技术自然就能触类旁通了。
网络安全学习路线&学习资源
网络安全的知识多而杂,怎么科学合理安排?
下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!
初级网工
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
【“脚本小子”成长进阶资源领取】
7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。
8、超级网工
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。
网络安全工程师企业级学习路线
如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。
一些我自己买的、其他平台白嫖不到的视频教程:
需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。
结语
网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。
特别声明:
此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!
版权归原作者 爱吃小石榴16 所有, 如有侵权,请联系我们删除。