昨晚上真的给我气孕了。
对于一直以来对网络安全兴趣很大,想以此作为以后的职业方向的人群。
不用担心,你可以选择兼顾工作和学习,以步步为营的方式尝试转行到网络安全领域。
那么,网络安全到底要学些什么呢?
(1)基础部分
基础部分需要学习以下内容:
(1.1)计算机网络:
重点学习 OSI、TCP/IP 模型,网络协议,网络设备工作原理等内容,其他内容快速通读;
(1.2)Linux 系统及命令 :
由于目前市面上的 Web 服务器 7 成都是运行在 Linux 系统之上,如果要学习渗透 Web 系统,最起码还是要对 linux 系统非常熟悉,常见的操作命令需要学会;
学习建议:学习常见的 10%左右的命令适用于 90%的工作场景,和 office 软件一样,掌握最常用的 10%的功能,基本日常使用没什么问题,遇到不会的,再去找度娘;常见的 linux 命令也就 50-60 个,很多小白囫囵吞枣什么命令都学,发现记不住啊!!!!这个学习方法也是不对的;
(1.3)Web 框架 :
熟悉 web 框架的内容,前端 HTML,JS 等脚本语言了解即可,后端 PHP 语言重点学习,切记不要按照开发的思路去学习语言,php 最低要求会读懂代码即可,当然会写最好,但不是开发,但不是开发,但不是开发,重要的事情说三遍;
(1.4)数据库:
需要学习 SQL 语法,利用常见的数据库 MySQL 学习对应的数据库语法,也是一样,SQL 的一些些高级语法可以了解,如果没有时间完全不学也不影响后续学习,毕竟大家不是做数据库分析师,不需要学太深;
(2)Web 安全
(2.1)Web 渗透
掌握 OWASP 排名靠前的 10 余种常见的 Web 漏洞的原理、利用、防御等知识点,然后配以一定的靶场练习即可;有的小白可能会问,去哪里找资料,建议可以直接买一本较为权威的书籍,配合 b 站的免费视频系统学习,然后利用开源的靶场辅助练习即可;
【推荐靶场】常见的靶场都可以上 github 平台搜索,推荐以下靶场 DVWA、bWAPP、upload-labs-master、SQL-lib-master、WebBug、pikachu 等,有些是综合靶场,有些是专门针对某款漏洞的靶场;
(2.2)工具学习
Web 渗透阶段还是需要掌握一些必要的工具,工具的学习 b 站上的视频比较多,挑选一些讲解得不错的视频看看,不要一个工具看很多视频,大多数视频是重复的,且很浪费时间;
主要要掌握的工具和平台:**burp、AWVS、Appscan、Nessus、sqlmap、nmap、shodan、fofa、代理工具 ssrs、hydra、medusa、airspoof 等,以上工具的练习完全可以利用上面的开源靶场去练习,足够了。
练习差不多了,可以去 SRC 平台渗透真实的站点,看看是否有突破,如果涉及到需要绕过 WAF 的,需要针对绕 WAF 专门去学习,姿势也不是特别多,系统性学习学习,然后多总结经验,更上一层楼。
(2.2)自动化渗透
自动化渗透需要掌握一门语言,且需要熟练运用,可以是任何一门自己已经掌握得很熟悉得语言,都可以,如果没有一门掌握很好的,那我推荐学习 python,最主要原因是学起来简单,模块也比较多,写一些脚本和工具非常方便;
什么鬼?又要学习编程,刚才不是说了编程不是学习网络安全的必要条件,不懂自动化渗透也不影响入门和就业,但是会影响职业的发展,且学习 python 不需要掌握很多不需要的模块,也不需要开发成千上万行的代码,仅利用它编写一些工具和脚本,少则 10 几行代码,多则 1-200 行代码,一般代码量相对开发人员已经少得不能再少了,例如一个精简得域名爬虫代码核心代码就 1-20 行而已;
有的小伙伴可能又急了,那到底需要怎么学嘛?
几天时间学习一下 python 的语法,有代码基础得小哥哥和小姐姐,最快可能一天就可以学习完 python 的语法,因为语言都是相通的,但是学习语言最快的就是写代码,别无他法;接下来可以开始尝试写一些常见得工具,如爬虫、端口探测、数据包核心内容提取、内网活跃主机扫描等,此类代码网上一搜一大把;然后再写一些 POC 和 EXP 脚本,以靶场为练习即可;有的小伙伴可能又要问了,什么是 POC 和 EXP,自己度娘去,养成动手的好习惯;
(2.3)代码审计
什么鬼?又要看代码。此处内容要求代码能力比较高,因此如果代码能力较弱,可以先跳过此部分的学习,不影响渗透道路上的学习和发展。
但是如果希望在 Web 渗透上需要走得再远一些,需要精通一门后台开发语言,推荐 php,因为后台采用 php 开发的网站占据最大,当然你还精通 python、asp、java 等语言,那恭喜你,你已经具备很好的基础了;
代码审计顾名思义,审计别人网站或者系统的源代码,通过审计源代码或者代码环境的方式去审计系统是否存在漏洞(属于白盒测试范畴);
那具体要怎么学习呢?学习的具体内容按照顺序列举如下:
掌握 php 一些危险函数和安全配置;
熟悉代码审计的流程和方法;
掌握 1-2 个代码审计工具,如 seay 等;
掌握常见的功能审计法
;(推荐审计一下 AuditDemo,让你产生自信)
常见 CMS 框架审计(难度大);
【推荐书籍】代码审计有一本国外的书籍《代码审计:企业级 Web 代码安全架构》,当然有空的时候可以去翻翻,建议还是在 b 站上找一套系统介绍的课程去学习;github 上找到 AuditDemo,下载源码,搭建在本地虚拟机,然后利用工具和审计方法,审计 AuditDemo 中存在的 10 个漏洞,难度分布符合正态分布,可以挑战一下;
至于 CMS 框架审计,可以去一些 CMS 官方网站,下载一些历史存在漏洞的版本去审计,框架的学习利用官方网站的使用手册即可,如 ThinkPHP3.2 版本是存在一些漏洞,可以尝试读懂代码;但是切记不要一上来就看代码,因为 CMS 框架的代码量比较大,如果不系统先学习框架,基本属于看不懂状态;学习框架后能够具备写简单的 POC,按照代码审计方法结合工具一起审计框架;其实也没有想想中的那么难,如果你是开发人员转行的,恭喜你,你已经具备代码审计的先天性优势。
那有的小伙伴又问了,我代码很差,不学习代码审计行不行,代码审计不是学习网络安全的必要条件,能够掌握最好,掌握不了也不影响后续的学习和就业,但你需要选择一个阶段,练习得更专业精通一些,如 web 渗透或者内网渗透,再或者是自动化渗透;
(3)内网安全
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;
如果想就业面更宽一些,技术竞争更强一些,需要再学习内网渗透相关知识;
内网的知识难度稍微偏大一些,这个和目前市面上的学习资料还有靶场有一定的关系;内网主要学习的内容主要有:内网信息收集、域渗透、代理和转发技术、应用和系统提权、工具学习、免杀技术、APT 等等;
不要和我说专业名词,叭叭叭叭叭叭!具体要怎么学?
【推荐书籍】这个问题有点大,呃呃呃呃呃呃!可以看《内网安全攻防:渗透测试实战指南》,这本书写得还不错,国内为数不多讲内网的书籍,以书籍目录为主线,然后配合工具和靶场去练习即可;
那小伙伴又要问了,那去哪里可以下载到内网靶场!呃呃呃呃呃!这个难倒我了,如果你能力够强,电脑配置高,可以自己利用虚拟机搭建内网环境,一般需要 3 台以上的虚拟机;你也可以到国外找一些内网靶场使用,有一些收费的靶场还可以;
(4)渗透拓展
渗透拓展部分,和具体工作岗位联系也比较紧密,尽量要求掌握,主要有日志分析、安全加固、应急响应、等保测评等内容;其中重点掌握前三部分,这块的资料网络上也不多,也没有多少成型的书籍资料,可通过行业相关的技术群或者行业分享的资料去学习即可,能学到这一步,基本上已经算入门成功,学习日志分析、安全加固、应急响应三部分的知识也相对较为容易。
方法 2:先学习 Web 渗透及工具,然后再学习编程
适用人群:代码能力很弱,或者根本没有什么代码能力,其他基础也比较差的小伙伴
那有的小伙伴就会问了,那你基础都不打好,怎么学习 Web 渗透?
基础部分还是要学习的,比如 linux 系统、计算机网络、一点点的 Web 框架、数据库还是需要提前掌握;
那像 php 语言、自动化渗透和代码审计部分内容,可以放在最后,当学习完毕前面知识后,也相当入门后,再来学习语言,相对会容易一些;
【优先推荐】方法 2,对于小白来说,代码基础通常较弱,很多很多小白会倒在前期学习语言上,所以推荐方法 2 的学习,先学习 web 渗透和工具,也比较有意思,容易保持一个高涨的学习动力和热情,具体学习内容我就不说了,请小伙伴们参照方法 1 即可。
最后
网络安全是一个广泛的领域,需要的技能和知识非常多,可以通过结合上述的学习建议,在转行的过程中锻炼自己的实践操作能力,为自己在网络安全领域获得更好的发展奠定基础。总之,想要转行做网络安全需要具备良好的自学能力和学习态度,加上充分的实践经验,可以通过不断学习和自我提升,逐步掌握网络安全领域的技术和知识。
从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。
因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。