在这篇指南,我会尽可能避免使用行业内的术语和一些专业名词,以保证它简单易懂,适合初学者平稳过渡。如果仍然出现了您无法理解的词汇,基本上也仅需通过搜索引擎查询就能清楚得知其含义。对于网络安全学习而言,具备信息搜索能力是最基础也是最重要的。
- 我不得不把这部分放在最前面,以免有人看到才发现为时过晚。
- 首先,不要完全跟着学校的节奏学习。国内绝大部分高校的网络安全教学体系均存在巨大缺陷。
- 其次,绝大多数网安培训班(并非所有)都是坑,即使和学校合作也不例外,报班请慎重。
- 以及,请务必认真学习相关网络安全法规后再开始学习技术。不要觉得是开玩笑——例如本篇文章的作者曾经就去喝过茶。
- 此时你刚踏入新手村,可能是一个刚刚进入大学的网安相关专业学生,或者不小心转错行的开发/网工/运维(真的会有这种吗)
- 接下来,我们假设你有足够的时间学习网络安全。因为网络安全整个内容是纷繁复杂的,覆盖整个IT行业,即使你仅从事以入门简单著称的Web安全岗位,往往也需要掌握五到六种编程语言(
快逃,别学网络安全) - 第一步,打好基础。此时不要急着去学习各种漏洞各种工具,容易踏入弯路。网络安全的知识离开了基础便只是空中楼阁。
- 你需要学习一些基础知识,首先是学会使用你的电脑(这里当然不只是“会用”,而是熟悉它。你需要学会熟练的使用自己的Windows操作系统或者苹果系统,至少知道如何使用浏览器,命令行和任务管理器= =)。
- 然后去下载VMware,它是一款虚拟机软件,其功能是在你的电脑上虚拟出另一台电脑。具体使用方法可以在网络中搜索。接下来,在VMware上安装Linux操作系统,并且试着去学习使用它。掌握基础操作即可。
- 接下来,你已经掌握了Linux操作系统的使用。建议能使用Linux就使用Linux,这是一个良好的习惯。然后去学习编程语言,往往学校会要求你们学习C语言,这是正确的,但是我的建议是不仅学习C语言,同时还简单了解C语言的原理,即,其程序是如何编译、执行的,有助于你宏观认识计算机的运行原理。当然,仅仅学习C语言是不够的,你还应该掌握一门脚本语言,这里推荐Python,它比C简单,开发效率也更高。关于编程的学习资料,我会在文章后半部分提供。
- 现在,你已经能够在Linux操作系统中使用脚本语言编写简单的程序了,看起来会很酷,就像是一个合格的黑客。
- 之后就是基础的最后一部了,去学习Web相关的知识。即使您并不打算成为一个Web安全人员,我仍然建议学习这部分,Web直到2023年仍然可以称之为是每个安全人员的立身之本。
- Web相关的知识:HTTP协议(至少要能明白你访问一个网页之后,你是如何与目标网站通信的。我会附上相关资料。),以及掌握常见的Web编程语言——这里推荐从php开始,以及javascript。学习了html、javascript、php之后,试着编写一个简单的网站,可以是一个朴实无华的个人博客页面。
- 然后就可以正式开始踏上学习之旅了。Happy Hacking~
- 现在你开始成为一个黑客。在此之前我强烈建议学习你所在国家及地区的网络安全相关法律,因为如果不恰当地使用接下来学习的技术,你可能会面临来自当局的一些麻烦。我们对此概不负责。
- 再次强调,请认真学习法律。本项目仅仅是一个相关技术的学习指导,目的是方便更高效率地培养网络安全从业人员。
- 那么,接下来是技术相关内容。
- 有了前面的基础,你可以阅读简单的php代码,此时你可以下载pikachu网络安全靶场,并且利用你前面学到的Web知识将它部署在你的虚拟机上,然后你就可以利用它学习常见的网络安全技术。它集成了各种常见的网络安全漏洞,用来给初学者学习。或许你所在的学校会更加推荐DVWA,实际上DVWA也可以,但是个人更推荐pikachu。
- 试着去把pikachu(或者DVWA)的各项漏洞都成功利用,并且理解它们。如果你无法完全理解它们,试着通过搜索引擎寻找答案和解释。同时,请注意,尽量减少使用工具——理想情况下,你仅需使用Burpsuite即可完成绝大部分的内容。
- 现在你已经掌握了基础的安全技术,有能力渗透进入一些漏洞百出的系统了。
- 现在开始出现分支,有些学习者会选择更偏向技术本身的方向——CTF;有些则选择更偏向实战的方向。如果你需要学习CTF,可以参考探姬师傅的CTF快速入门手册,从而走上CTF的道路,并且最终可能成为一名安全研究人员。
- 如果你选择了偏向实战,请继续往下看。
- 试着去渗透一些更综合的目标,而非单独拎出来的某个漏洞——这里可以使用Vulnhub(具体内容请网络搜索),去寻找简单的靶机打一打。这只是一个短暂的过渡阶段。
- 实战方向又开始出现了分支,你可以选择纯Web或者偏向红队人员,或者极端一些的分支——代码审计。
- 纯Web实战方向:这里你可以通过挖掘SRC来成为职业赏金猎人,赚取收益。很多企业开设自己的SRC,在这里可以提交你挖掘到的属于他们的系统的漏洞,并且赚取对应的赏金。例如百度SRC,阿里SRC,腾讯SRC等(可以参考SRC导航)。关于SRC的学习,你可以网上搜索别人在SRC的挖掘文章,学习经验。
- 红队人员方向:所谓红队是相对于蓝队而言的——红蓝队是来自于红蓝对抗的名词,目前国内在逐渐重视红蓝对抗,即实战化的攻防演习,由红队扮演真实的黑客,而蓝队扮演防守方。相较于传统的渗透测试,红队人员的目标更加明确,更贴近真实的安全事件,造成的杀伤也更加深入(例如在发现一个高危漏洞后,渗透测试的工作往往就基本结束了,但对于红队人员而言这只是一个开始)。红队人员的技术栈可能偏极端,用木桶效应的比喻来看,就是一些标准板和一两块超长的板。这里可以参考b站的Yihsiwei师傅(这位是职业红队),有一些不错的职业指导。对于红队人员,可以选择学习Web渗透(但是更注重一些能拿权限的漏洞,如命令执行和文件上传等;同时学习如何快速针对一个大型目标拿下外围网络的权限,以及代码审计等)、社工钓鱼(这里可以参考本文作者的项目PhishingBook)、内网渗透(对于红队而言基本上是必学的,包括内网信息收集、横向移动、权限维持等)
- 代码审计方向:安全圈的许多大牛,例如p神等,往往属于此类= =。。。。目前的代码审计基本上是php和Java、.NET等,其中又以Java为主,因此可以着重学习Java代码审计。相关的优秀指导项目例如JavaSec、JavaSecurityLearning等(欢迎补充)。