网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

关于我

我算是“入行”不久的一个新人安全工作者,为什么是引号呢,因为我是个“半个野路子”出身。早在13年的时候,我在初中时期就已经在90sec、wooyun等社区一直学习、报告漏洞。后来由于升学的压力,我逐渐淡出了安全圈子,也没有继续学习技术。

也因为这个原因,高考选择专业时,对计算机专业情有独钟,因为分数线的原因最后只能选了个通信工程。

大四那年我被骗到了电子厂,无法忍受流水线的工作,愤而撩了挑子。前途一片渺茫的时候,我连夜爬起自学起了网络安全,开启了我的网络安全开发之路。至今已毕业多年,一直在这条热爱的道路上坚持着,快乐、知足、感恩。

接下来给大家详细介绍,我是如何成功入门网络安全,成了一个安服仔的?
网络安全学习路线
(1)基础部分

基础部分需要学习以下内容:

我看的书籍其实书籍是非常系统的,也比较适合入门初学者,这些书可以让我掌握这个领域的基本内容,当然了时效性可能不会很高。我建议选择看哪个方面的书,不要人云亦云,肯定很多人让你学操作系统原理,学算法等等,这其实是不符合学习规律的,学什么就找对应的书籍学习。下面是我当时读的的几本书籍。

(1.1)计算机及系统原理

《编码:隐匿在计算机软硬件背后的语言》 【美】Charles Petzold·

《深入理解计算机系统》【美】Randal E.Bryant·

《深入解析Windows操作系统》【美】Russinovich,M.E.;Solomon,D.A.·

《深入理解Android内核设计思想》林学森·

《Android系统源代码情景分析》罗升阳·

(1.2)计算机网络 :

重点学习 OSI、TCP/IP 模型,网络协议,网络设备工作原理等内容,其他内容快速通读;

(1.3)Linux 系统及命令 :

由于目前市面上的 Web 服务器 7 成都是运行在 Linux 系统之上,如果要学习渗透 Web 系统,最起码还是要对 linux 系统非常熟悉,常见的操作命令需要学会;推荐这本《深入理解Linux内核》 【美】DanielP.Bovet· 《Linux内核设计与实现》【美】Robert Love·

学习建议:学习常见的 10%左右的命令适用于 90%的工作场景,和 office 软件一样,掌握最常用的 10%的功能,基本日常使用没什么问题,遇到不会的,再去找度娘;常见的 linux 命令也就 50-60 个,很多小白囫囵吞枣什么命令都学,发现记不住啊!!!!这个学习方法也是不对的;

(1.4)Web 框架 :

熟悉 web 框架的内容,前端 HTML,JS 等脚本语言了解即可,后端 PHP 语言重点学习,切记不要按照开发的思路去学习语言,php 最低要求会读懂代码即可,当然会写最好,但不是开发,但不是开发,但不是开发,重要的事情说三遍;

(1.5)数据库:

需要学习 SQL 语法,利用常见的数据库 MySQL 学习对应的数据库语法,也是一样,SQL 的一些些高级语法可以了解,如果没有时间完全不学也不影响后续学习,毕竟大家不是做数据库分析师,不需要学太深;

(2)学习一门编程语言

黑客&网络安全工程师的武器也是代码。想要成为黑客或者网络安全工程师,首先要学会一门黑客需要的编程语言。

对于没有代码经验的小白,下面三项,是从事安全行业的从业者都最好能掌握的语言,锤炼一下自己编程的功底。

Shell脚本

掌握常用的Linux命令,能编写简单的Shell脚本,处理一些简单的事务。

C语言(C++可选)

C语言没有复杂的特性,是现代编程语言的祖师爷,适合编写底层软件,还能帮助你理解内存、算法、操作系统等计算机知识,建议学一下。

Python

C语言帮助你理解底层,如果你还不会任何计算机语言,我建议你从Python开始。它设计清晰,文档齐全,对初学者很合适。尽管是一门很好的初级语言,它不仅仅只是个玩具。它非常强大,灵活,也适合做大型项目。

(3)学习网络安全法

《国家网络空间安全战略》、《网络安全法》、《网络安全等级保护3.0》等一系列政策/法规/标准的持续落地,网络安全产业从小众产业逐步发展成为国家战略性新兴产业,与人工智能、大数据、云计算等领域并驾齐驱。

网络安全对于大部分政企单位来说,已经从可选项变成了必选项甚至是强选项,不懂安全不做安全等于违法违规。

我觉得作为一个技术人员了解和学习黑客知识是必要的,因为这样才能在日常工作中应对安全风险,在较高的安全意识上完成编程和运维工作;当然,如果你能成功掌握了一些黑客原理和技术,当你遇到攻击时,也不仅仅是严防死守,而是抓住内鬼,反将一军。

技术本身并不罪恶,滥用技术才会导致罪恶!

(4)安全初体验

有了前面三步的打底,是时候接触一些网络安全的技术了,刚刚开始这个阶段,仍然不要把自己圈起来只学某一个方向的技术。这个阶段,我的建议是:但当涉猎,见往事耳。

网络协议攻击、Web服务攻击、浏览器安全、漏洞攻击、逆向破解、工具开发都去接触一下,知道这是做什么的,在这个过程中去发现自己的兴趣,让自己对网络安全各种领域的技术都有一个初步的认识。以下是常见的web渗透使用工具方法。

①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

(5)明确就业岗位方向

在第三步中,慢慢发现自己的兴趣点,是喜欢做各种工具的开发,还是喜欢攻破网站,还是痴迷于主机电脑的攻击···

也可以选择自己工作或者未来从事的岗位方向,以下是常见的安全岗位的工作内容或者职责,

安全岗位的大体工作内容或职责

①售后工程师:安全产品的售后服务工作,包括安全产品的交付实施、售后支撑、产品调试上架。比如客户买了咱们的防火墙,咱们要派人去安装调试吧,总不能让客户自己去安装吧。这是产品工程师或者售后工程师的主要工作内容。

②售前工程师:主要是协助销售完成跟单,说的通俗易懂一点就是跟销售配合,一个做商务关系(吃吃喝喝、送礼请客)一个做技术方案(解决客户的痛点),两个人配合拿下项目。

③渗透测试工程师:这个岗位是大多数人梦寐以求的,展现个人技术的时候到了。主要是模拟黑客对目标业务系统进行攻击,点到为止。

④销售:不再赘述,估计你们年轻的人也不太关心,但是等你成长了,你就会发现,你以前的对销售的认知是多么的扯淡。

⑤安全开发工程师:嗯,就是搞开发,要对安全也要了解,比如开发一个web应用防火墙,连web攻击都不懂,那还开发个啥,闭门造车啊,能防的注吗?

⑥安全运维工程师:一个单位买了那么多安全产品,肯定要有人做运维的,分析一下日志,升级一下策略。定期检查一下业务系统的安全性,查看一下内网当中有没有威胁,这都是安全运维工程师要做的内容。

⑦应急响应工程师:客户业务系统被攻击,要快速定位安全问题,要快速恢复业务系统,有的甚至还要取证报警。(家里如果被偷东西价值太大,你还不报警?心咋这么大)

⑧等级保护测评师:按照国家要求,重要的业务系统需要按照安全等级进行保护的,目前国家已经发布了等级保护2.0标准,要按照这个标准进行建设。等级保护测评师的工作就是协助客户检查一下业务系统是否满足等级保护的要求,不满足的赶紧整改。

⑨安全服务工程师:好多企业把渗透测试工程师也归到安全服务工程师里面,无伤大雅。不懂安全服务,还不懂吃饭的服务员嘛,就是协助客户做好安全工作,具体的内容比如常见的漏洞扫描、基线检测、渗透测试、网络架构梳理、风险评估等工作内容。安全服务的面很大的,几乎涵盖了上述所有岗位的内容。

这个时候就可以思考自己后面的方向,然后精力开始聚焦在这个方向上,通过上面学习路线中各自方向的技术去持续深耕,成为某一个领域的大拿。

(6)学习方法

上面介绍了技术分类和学习路线,这里来谈一下学习方法,看书看视频学习,这是最最基础的。

实际动手,开发路线需要多写代码,阅读优秀开源代码,二进制路线多分析样本,编写EXP等等,渗透测试多拿网站练手(合法方式)等

渗透实战操作

  • 掌握渗透的整个阶段并能够独立渗透小型站点。
  • 网上找渗透视频看并思考其中的思路和原理,关键字(渗透、SQL注入视频、文件上传入侵、数据库备份、dedecms漏洞利用等等);
  • 自己找站点/搭建测试环境进行测试,记住请隐藏好你自己;
  • 思考渗透主要分为几个阶段,每个阶段需要做那些工作,例如这个:PTES渗透测试执行标准;
  • 研究SQL注入的种类、注入原理、手动注入技巧;
  • 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架;
  • 研究XSS形成的原理和种类,具体学习方法可以Google/SecWiki,可以参考:XSS;
  • 研究Windows/Linux提权的方法和具体使用,可以参考:提权;
  • 可以参考: 开源渗透测试脆弱系统;

打CTF,多参与一些网络安全比赛,接近实战的环境下锻炼动手能力

混圈子,多混一些安全大牛出没的社群、社区、论坛,掌握行业信息,了解最新技术变化趋势(高清版思维导图有)。

(7)岗位内推&面试

个人强烈感觉面试因人而异,对于简历上有具体项目经历的同学,个人感觉面试官会着重让你介绍自己的项目,包括但不限于介绍一次真实攻防/渗透/挖洞/CTF/代码审计的经历 => 因此对于自己的项目,面试前建议做一次复盘,最好能用文字描述出细节,在面试时才不会磕磕绊绊、或者忘了一些自己很得意的细节。

面试题会一直更新(大概,直到我毕业或者躺平为止吧…)包括一些身边同学(若他们同意的话)和牛客上扒拉下来的(若有,会贴出链接)还有自己的一些经历

还有一点很想说的,就是面试题/面经,本质上只是一种“见识”,他并不能实质上提升自己的水平,还是希望大家(包括我自己)不要太局限于面经,可以查缺补漏但没必要面经问什么自己就一定要学什么,按自己的节奏学就行了,毕竟每人的技术特点不一样,面试的过程和问题也会不一样。

接下来我将给各位同学划分一张学习计划表!

学习计划

那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:

阶段一:初级网络安全工程师

接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。

综合薪资区间6k~15k

1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?

阶段二:中级or高级网络安全工程师(看自己能力)

综合薪资区间15k~30k

7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。

零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;

Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完

用Python编写漏洞的exp,然后写一个简单的网络爬虫

PHP基本语法学习并书写一个简单的博客系统

熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)

了解Bootstrap的布局或者CSS。

阶段三:顶级网络安全工程师

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

学习资料分享

当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值