小白如何自学网络安全,零基础入门到精通,看这一篇就够了!
小白人群想学网安但是不知道从哪入手?一篇文章告诉你如何在4个月内吃透网安课程,掌握网安技术
*一、基础阶段*
1.了解网安相关基础知识
了解中华人民共和国网络安全法、熟知网络安全的相关概念:包括信息安全、风险管理、网络攻防原理、认证与加密等基本概念,
*2. Linux操作系统*
Linux操作系统目录结构
Linux命令格式
Linux文件和目录操作命令
Linux用户和用户组操作命令
Linux查看和操作文件内容命令
*3. 计算机网络知识*
包括TCP/IP协议、网络设备、网络拓扑结构等计算机网络基础知识,
*SHELL*
Shell脚本掌握常用的Linux命令能编写简单的Shell脚本,处理些简单的事务。
HTML/CSS
在网络安全领域,了解HTML(超文本标记语言)的目的主要是因为HTML是构建网页内容的基础,而网页是网络活动的中心。其作用如下
- 理解网页结构:了解HTML可以帮助安全专家理解网页是如何构建的,这对于分析网页行为和可能存在的安全隐患至关重要。
- 审查代码:安全专家需要检查HTML代码,以识别潜在的安全风险,例如恶意脚本注入、钓鱼攻击等。
- 验证输入和输出:了解HTML有助于实现有效的输入验证和输出编码,这是预防跨站脚本(XSS)等攻击的关键步骤。
- 构建安全的Web界面:Web开发人员必须了解如何使用HTML构建安全的用户界面,以防止例如点击劫持的攻击。
- 错误处理和响应:了解HTML可以帮助识别和解释错误处理中的信息泄露问题,例如详细的错误消息可能会暴露系统信息。
- 安全测试:在进行网站渗透测试或者安全评估时,对HTML的了解是基础,可以帮助模拟攻击者可能采取的手段。
CSS(Cascading Style Sheets,层叠样式表)是为 web 内容添加样式的代码。学习css有助于理解Web技术栈、前端安全、审计和代码审查
*JavaScript*
JavaScript是一种动态类型、弱类型、基于原型的直译式脚本语言。JS内置支持类型,常用来为网页添加各式各样的动态功能、为用户提供更流畅美观的浏览效果。
作用在于: 检测用户的浏览器信息;处理表单、检验用户输入并提供反馈。我们在某个网页输入密码错误的提醒就是由JS显示的。
使网页具有交互性,响应用户的点击。比如在网页中添加互动组件、滑块等。
根据用户操作,动态地创建页面。
创建修改Cookie(存储浏览器上的临时信息)比如我们访问过的网址,保存的用户名信息等。
*PHP入门*
php 框架,需要掌握基本知识,包括:核心 php 语法、函数和类、oop概念、数据库交互、restful 架构、数据结构、算法和数据结构复杂度分析,以及软件开发工具(如 git、ide、cli)。
它们可以帮助开发者更快地创建和维护 web 应用程序。
PHP的作用在于Web端网站开发、APP后台开发、微信小程序开发、移动端网站开发
*MySQL数据库*
作用:将数据持久化到本地、提供结构化查询功能
*Python*
C语言帮助你理解底层,Python则助你编写网络爬虫、数据处理、图像处理等功能性的软件。是程序员,尤其是黑客们非常钟爱的编程语言不得不学。
C语言(C++可选)C语言适合编写底层软件,还能帮助你理解内存算法、操作系统等计算机知识,建议学一下。
二、渗透阶段
SQL注入的渗透与防御
Xss相关渗透与防御
上传验证渗透与防御
文件包含渗透与防御
CSRF渗透与防御SSRF渗透与防御XXE渗透与防御远程代码执行渗透与反序列化渗透与防御逻辑漏洞
暴力猜解与防御
Redis未授权访问漏洞
AWVS漏洞扫描
Appscan漏洞扫描
Nessus漏洞扫描
MSF-Metasploit Framework
社会工程学
ARP渗透与防御系统权限提升渗透与防御DOS与DDOS渗透与防御内网相关渗透与防御
无线安全相关渗透与防御木马免杀问题与防御vulnhub靶场实战系列Kali高级渗透测试
三、安全管理
渗透报告编写
等级保护2.0
应急响应
代码审计
风险评估安全巡检数据安全
四、提升阶段
密码学
Java
SE入门
C++语吉
CTF夺旗赛
Windows逆向
Android
接下来我将给各位同学划分一张学习计划表!
学习计划
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
阶段一:初级网络安全工程师
接下来我将给大家安排一个为期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】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。
