网络安全学习路线+自学笔记(超详细)

news2024/11/27 6:20:01

01 什么是网络安全

网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。

无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如 Web 安全技术,既有 Web 渗透,也有 Web 防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。

02 怎样规划网络安全

如果你是一个安全行业新人,我建议你先从网络安全或者Web安全/渗透测试这两个方向先学起,一是市场需求量高,二则是发展相对成熟入门比较容易。

值得一提的是,学网络安全,是先网络后安全;学Web安全,也是先Web再有安全。

安全不是独立存在的,而是建立在其他技术基础之上的上层应用技术。脱离了这个基础,就很容易变成纸上谈兵,变成“知其然,不知其所以然”,在安全的职业道路上也很难走远。

**如果你是原本从事网工运维,那么可以选择网络安全方向入门;如果你原本从事程序开发,推荐选择Web安全/渗透测试方向入门。**当然学到一定程度、或者有了一定工作经验,不同方向的技术耦合会越来越高,各个方向都需要会一点。

根据以上网络安全技能表不难看出,网络安全需要接触的技术还远远很多,常见的技能需要学习:外围打点能力、钓鱼远控能力、域渗透能力、流量分析能力、漏洞挖掘能力、代码审计能力等。

    【一一帮助网络安全学习,所有资源可以关注自取一一】
    ①网络安全学习路线
    ②20份渗透测试电子书
    ③安全攻防357页笔记
    ④50份安全攻防面试指南
    ⑤安全红队渗透工具包
    ⑥网络安全必备书籍
    ⑦100个漏洞实战案例
    ⑧安全大厂内部视频资源
    ⑨历年CTF夺旗赛题解析

03网络安全的知识多而杂,怎么科学合理安排?

一、基础阶段

★中华人民共和国网络安全法 (包含18个知识点)
★Linux操作系统 (包含16个知识点)
★计算机网络 (包含12个知识点)
★SHELL (包含14个知识点)
★HTML/CSS (包含44个知识点)
★JavaScript (包含41个知识点)
★PHP入门 (包含12个知识点)
★MySQL数据库 (包含30个知识点)
★Python (包含18个知识点)
————————————————

入门的第一步是系统化的学习计算机基础知识,也就是学习以下这几个基础知识模块:操作系统、协议/网络、数据库、开发语言、常用漏洞原理。前面的基础知识学完之后,就要进行实操了。

因为互联网与信息化的普及网站系统对外的业务比较多,而且程序员的水平参差不齐和运维人员的配置事物,所以需要掌握的内容比较多。
二、渗透阶段

■SQL注入的渗透与防御(包含36个知识点)
■XSS相关渗透与防御(包含12个知识点)
■上传验证渗透与防御(包含16个知识点)
■|文件包含渗透与防御(包含12个知识点)
■CSRF渗透与防御(包含7个知识点)
■SSRF渗透与防御(包含6个知识点)
■XXE渗透与防御(包含5个知识点)
■远程代码执行渗透与防御(包含7个知识点)
■…(包含…个知识点)
————————————————

掌握常见漏洞的原理、使用、防御等知识。Web渗透阶段还是需要掌握一些必要的工具。 

主要要掌握的工具和平台:burp、AWVS、Appscan、Nessus、sqlmap、nmap、shodan、fofa、代理工具ssrs、hydra、medusa、airspoof等,以上工具的练习完全可以利用上面的开源靶场去练习,足够了;
三、安全管理(提升)

★渗透报告编写(包含21个知识点)
★等级保护2.0(包含50个知识点)
★应急响应(包含5个知识点)
★代码审计(包含8个知识点)
★风险评估(包含11个知识点)
★安全巡检(包含12个知识点)
★数据安全(包含25个知识点)
————————————————

主要包括渗透报告编写、网络安全等级保护的定级、应急响应、代码审计、风险评估、安全巡检、数据安全、法律法规汇编等。

这一阶段主要针对已经从事网络安全相关工作需要提升进阶成管理层的岗位。如果你只学习参加工程师方面的岗位,这一阶段可学可不学。
四、提升阶段(提升)

■密码学(包含34个知识点)
■JavaSE入门(包含92个知识点)
■C语言(包含140个知识点)
■C++语言(包含181个知识点)
■Windows逆向(包含46个知识点)
■CTF夺旗赛(包含36个知识点)
■Android逆向(包含40个知识点)
————————————————

主要包括密码学、JavaSE、C语言、C++、Windows逆向、CTF夺旗赛、Android逆向等。

主要针对已经从事网络安全相关工作需要提升进阶安全架构需要提升的知识。

1、Web安全相关概念(2周)

  • 熟悉基本概念(SQL注入、上传、XSS、CSRF、一句话木马等)。
  • 通过关键字(SQL注入、上传、XSS、CSRF、一句话木马等)进行Google/SecWiki;
  • 阅读《精通脚本黑客》,虽然很旧也有错误,但是入门还是可以的;
  • 看一些渗透笔记/视频,了解渗透实战的整个过程,可以Google(渗透笔记、渗透过程、入侵过程等);

2、熟悉渗透相关工具(3周)

  • 熟悉AWVS、sqlmap、Burp、nessus、chopper、nmap、Appscan等相关工具的使用。
  • 了解该类工具的用途和使用场景,先用软件名字Google/SecWiki;
  • 下载无后门版的这些软件进行安装;
  • 学习并进行使用,具体教材可以在SecWiki上搜索,例如:Brup的教程、sqlmap;
  • 待常用的这几个软件都学会了可以安装音速启动做一个渗透工具箱;

3、渗透实战操作(5周)

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

4、关注安全圈动态(1周)

  • 关注安全圈的最新漏洞、安全事件与技术文章。
  • 通过SecWiki浏览每日的安全技术文章/事件;
  • 通过Weibo/twitter关注安全圈的从业人员(遇到大牛的关注或者好友果断关注),天天抽时间刷一下;
  • 通过feedly/鲜果订阅国内外安全技术博客(不要仅限于国内,平时多注意积累),没有订阅源的可以看一下SecWiki的聚合栏目;
  • 养成习惯,每天主动提交安全技术文章链接到SecWiki进行积淀;
  • 多关注下最新漏洞列表,推荐几个:exploit-db、CVE中文库、Wooyun等,遇到公开的漏洞都去实践下。
  • 关注国内国际上的安全会议的议题或者录像,推荐SecWiki-Conference。

5、熟悉Windows/Kali Linux(3周)

  • 学习Windows/Kali Linux基本命令、常用工具;
  • 熟悉Windows下的常用的cmd命令,例如:ipconfig,nslookup,tracert,net,tasklist,taskkill等;
  • 熟悉Linux下的常用命令,例如:ifconfig,ls,cp,mv,vi,wget,service,sudo等;
  • 熟悉Kali Linux系统下的常用工具,可以参考SecWiki,《Web Penetration Testing with Kali Linux》、《Hacking with Kali》等;
  • 熟悉metasploit工具,可以参考SecWiki、《Metasploit渗透测试指南》。

6、服务器安全配置(3周)

  • 学习服务器环境配置,并能通过思考发现配置存在的安全问题。
  • Windows2003/2008环境下的IIS配置,特别注意配置安全和运行权限,可以参考:SecWiki-配置;
  • Linux环境下的LAMP的安全配置,主要考虑运行权限、跨目录、文件夹权限等,可以参考:SecWiki-配置;
  • 远程系统加固,限制用户名和口令登陆,通过iptables限制端口;
  • 配置软件Waf加强系统安全,在服务器配置mod_security等系统,参见SecWiki-ModSecurity;
  • 通过Nessus软件对配置环境进行安全检测,发现未知安全威胁。

7、脚本编程学习(4周)

  • 选择脚本语言Perl/Python/PHP/Go/Java中的一种,对常用库进行编程学习。
  • 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime,一些Sublime的技巧:SecWiki-Sublime;
  • Python编程学习,学习内容包含:语法、正则、文件、网络、多线程等常用库,推荐《Python核心编程》,不要看完;
  • 用Python编写漏洞的exp,然后写一个简单的网络爬虫,可参见SecWiki-爬虫、视频;
  • PHP基本语法学习并书写一个简单的博客系统,参见《PHP与MySQL程序设计(第4版)》、视频;
  • 熟悉MVC架构,并试着学习一个PHP框架或者Python框架(可选);
  • 了解Bootstrap的布局或者CSS,可以参考:SecWiki-Bootstrap;

8、源码审计与漏洞分析(3周)

  • 能独立分析脚本源码程序并发现安全问题。
  • 熟悉源码审计的动态和静态方法,并知道如何去分析程序,参见SecWiki-审计;
  • 从Wooyun上寻找开源程序的漏洞进行分析并试着自己分析;
  • 了解Web漏洞的形成原因,然后通过关键字进行查找分析,参见SecWiki-代码审计、高级PHP应用程序漏洞审核技术;
  • 研究Web漏洞形成原理和如何从源码层面避免该类漏洞,并整理成checklist。

9、安全体系设计与开发(5周)

  • 能建立自己的安全体系,并能提出一些安全建议或者系统架构。
  • 开发一些实用的安全小工具并开源,体现个人实力;
  • 建立自己的安全体系,对公司安全有自己的一些认识和见解;
  • 提出或者加入大型安全系统的架构或者开发;
  • 看自己发展咯~
  • 最后

在整理好自己的知识框架,知道该怎么学习之后,下一步就是往框架里面填充内容了。

此时我们的选择也可以很多,比如CSDN,比如知乎,再比如B站,都有很多人在分享自己的学习资料,但我觉得这里存在的很大一个问题就是不连贯、不完善,大部分免费分享的教程,都是东一块西一块,前言不搭后语,学着学着就蒙了,这是我自学之后的亲身感受。

如果你确实想自学的话,我可以把我自己整理收藏的这些教程分享给你,里面不仅有web安全,还有渗透测试等等内容,包含电子书、面试题、pdf文档、视频以及相关的课件笔记,我都已经学过了,可以评论区留言告诉我。

给小伙伴们的意见是想清楚,自学网络安全没有捷径,相比而言系统的网络安全是最节省成本的方式,因为能够帮你节省大量的时间和精力成本。

给自学的小伙伴们的意见是坚持住,既然已经走到这条路上,虽然前途看似困难重重,只要咬牙坚持,最终会收到你想要的效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/651058.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023我的前端面试准备

大厂面试题分享 面试题库 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 前言 回顾过往,至今已有三个年头了,《2023年我的前端面试准备》在小…

我的创作纪念日——创作历程,机缘,与成就

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 目录 写在前面 一.机缘 二.收获 三.日常 四.成就 五.憧憬与规划 六.分享 写在前面 大…

Vivado 下 IP核之FIFO 实验

目录 Vivado 下 IP核之FIFO 实验 1、FIFO IP 核简介 2、实验任务 3、程序设计 3.1、FIFO IP 核配置 3.1.1、“Basic” 选项卡下各参数配置 3.1.2、“Native Ports”选项卡下各参数配置 3.1.3、“Status Flags” 选项卡下各参数配置 3.1.4、“Data Counts(数…

私域开始收费后,还值得做吗?

这些年&#xff0c;私域成为不少企业挖掘增量的新阵地。 私域指品牌自有的可随时、重复、低成本触达用户的场域。《2023私域运营趋势白皮书》&#xff08;后称<白皮书>&#xff09;显示&#xff0c;接受调研的企业中有70%将私域运营阵地放在腾讯旗下的企业微信。 不过&…

美的中间件面试(部分)

用redis有遇到过大key问题吗&#xff0c;怎么解决 我介绍项目中用异步解耦的思路来从mysql同步数据到redis&#xff0c;具体就是binlogkafaka。面试官问读的主mysql的binlog,还是从的binlog。A&#xff1a;主mysql。Q&#xff1a;可以用什么中间件读binlog。A&#xff1a;可以…

高效操作!linux在终端里快速跳转到文件管理器对应的目录下

在linux下&#xff0c;可能会有一个经常的操作&#xff0c;是在终端下&#xff0c;进入某个文件夹&#xff0c;用vim修改了某些操作&#xff0c;比如修改了一个html文件&#xff1b; 然后你想用chrome打开这个html文件&#xff0c;那么你可能需要打开文件管理器&#xff0c;切…

第五章 模型篇: 模型保存与加载

参考教程&#xff1a; https://pytorch.org/tutorials/beginner/basics/saveloadrun_tutorial.html 文章目录 pytorch中的保存与加载torch.save()torch.load()代码示例 模型的保存与加载保存 state_dict()nn.Module().load_state_dict()加载模型参数保存模型本身加载模型本身 c…

C语言编程语法—排序算法

一、冒泡排序 冒泡排序&#xff08;英语&#xff1a;Bubble Sort&#xff09;是一种简单的排序算法。它重复地走访过要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果他们的顺序&#xff08;如从大到小、首字母从A到Z&#xff09;错误就把他们交换过来。 过程演示&…

ansible playbook脚本,安装LAMP套件

yum 集中式安装lamp --- - name: LAMP installhosts: dbserverstasks:- name: disable firewalldservice:name: firewalldenabled: nostate: stopped- name: disabled selinuxshell: "sudo sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config"shell:…

Random random = SecureRandom.getInstanceStrong();堵塞线程问题解决

sonar扫描到使用Random随机函数不安全, 推荐使用SecureRandom替换&#xff0c;就是他–》【SecureRandom.getInstanceStrong()】&#xff0c;分别在本地&#xff0c;测试环境测过没问题上生产&#xff0c;但是运行了一段时间突然报错&#xff01;&#xff01;&#xff01; 然后…

简要介绍 | 基于双风机振动的燕麦清选与筛选

注1&#xff1a;本文系“简要介绍”系列之一&#xff0c;仅从概念上对基于双风机振动的燕麦清选和筛选装置设计与仿真进行非常简要的介绍&#xff0c;不适合用于深入和详细的了解。 注2&#xff1a;"简要介绍"系列的所有创作均使用了AIGC工具辅助 基于双风机振动的燕…

37 # commonjs 规范流程梳理

require 源码大致过程 mod.require 会默认调用 require 语法Module.prototype.require 模块的原型上有 require 方法Module._load 调用模块的加载方法&#xff0c;最终返回的是 module.exportsModule._resolveFilename 解析文件名&#xff0c;将文件名变成绝对路径&#xff0c…

EndNote下载安装与引用

哎&#xff01;写论文这个事真是没有头绪啊&#xff0c;今天研究一下参考文献怎么搞&#xff0c;发现了EndNote&#xff0c;但是这玩意感觉写中文的论文用还可以&#xff0c;英文的不太会用。这里记录一下安装使用过程&#xff0c;方便以后查阅。 EndNote下载安装与引用 EndNot…

React学习[一]

React学习[一] React概述React特点声明式基于组件学习一次&#xff0c;随处可用 React基本使用React使用方法说明 React脚手架意义脚手架初始化项目npx命令介绍 在脚手架中使用react JSXJSX的基本使用JSX使用步骤 JSX中使用JavaScript表达式嵌入式JS表达式 JSX的条件渲染JSX的列…

Model Checking(模型检测)

1. Definition 给定一个系统和一个我们期待拥有的属性P&#xff0c; Model checking 会探索这个系统的每个状态&#xff0c;验证系统是否满足定义的性质。如果满足直接返回True,否则会给出一个反例(counter example)。如果系统被证明是正确的&#xff0c;说明该系统的所有的行…

H3C-HCL模拟器-STP生成树协议实验

一、实验拓扑图 二、实验步骤 1&#xff09;CRT连接并重命名 若遇到连接失败&#xff0c;先在HCL中启动命令行配置 2&#xff09;启动所有设备 3&#xff09;4台交换机重新命令 4&#xff09;查看信息 ① SW1的MAC地址&#xff1a;SW1是根桥 为什么SW1是根桥&#xff1f; HC…

图像坐标转换:一个点绕着另一个点逆时针旋转角度平移后的坐标

图像坐标系&#xff1a;x向右增大&#xff0c; y向下增大。 点A在图像中的坐标&#xff08;x1, y1&#xff09; 点B在图像中的坐标&#xff08;x2, y2&#xff09; 点B绕着点A逆时针旋转a弧度&#xff0c;旋转后的点B坐标为{x (x2 - x1)*cos(a) (y2 - y1)*sin(a) x1&#xf…

java基础——有多少是你不知道的?

java基础——有多少是你不知道的&#xff1f; 一、&&和||二、Integer和int三、String、StringBuffer、StringBuilder的区别四、i1<i居然是成立的&#xff1f;五、一脸懵逼的null问题六、整数除法向上取整你知道多少种&#xff1f;七、这也能运行&#xff1f; 一、&a…

QML 与 Python 交互

在 Qt 中&#xff0c;C 和 QML 交互一般有如下三种方法 上下文属性&#xff1a;setContextProperty( )向引擎注册类型&#xff1a;调用 qmlRegisterType( )QML 扩展插件&#xff1a;虽然有很大的灵活性&#xff0c;但是用 Python 创建 QML 插件比较麻烦&#xff0c;所以这种方法…

【补充:CAN卡通信的下位机-STM32cubeIDE-hal库+STMF1xx+数据发送和接收+中断接收方式+基础样例3】

【CAN卡通信的下位机-STM32cubeIDE-hal库STMF4xx数据发送和接收中断接收方式基础样例3】 1、概述2、实验环境3、问题描述4、大佬指点与解决问题5、实验效果截图6、代码连接7、细节部分8、总结 ) 1、概述 从第一篇F1和F4上采用轮询的方式调试can&#xff0c; 【CAN卡通信的下位…