一个完整的渗透学习路线是怎样的?如何成为安全渗透工程师?
Posted 不是程序媛ya
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个完整的渗透学习路线是怎样的?如何成为安全渗透工程师?相关的知识,希望对你有一定的参考价值。
前言
1/我是如何学习黑客和渗透?
我是如何学习黑客和渗透测试的,在这里,我就把我的学习路线写一下,让新手和小白们不再迷茫,少走弯路,拒绝时间上的浪费!
2/学习常见渗透工具的使用
注意: 这里绝对不是说的那些什么抓鸡啊、远控啊一些无脑软件,你觉得你用了那些软件后有什么?一丝虚荣心?还是成就感?
不,你在别人大牛的眼里什么都不是,你还拿着别人玩烂了的东西到处一顿乱扫,所以你需要系统的学习,就算你说你时间不够,但是常见的工具还是要知道的,比如:Hydra、medusa、sqlmap、AWVS、Burpsuite、Beef-XSS、Metasploit、Nessus、wireshark等安全工具,这些是在安全圈和渗透圈比较知名的渗透工具与平台。
3/操作系统(必须)
你现在已经对渗透已经有了了解了,所以大体上算是一个勉勉强强的脚本小子吧。
你现在可以开始学习linux了,因为我可以用一句话来问你:你见过国外网络安全工程师是用Windows的?
你需要学习linux命令、linux网络编程等,VI和VIM是必须要学习的(两种神级编辑器,不需要我多说,会用的都说好)。
4/网络基础
1、计算机基本常识
了解计算机基本常识,常用软件使用。
包括但不仅限于计算机网络基础、html基础、javascript基础、数据库基础等
5/编程:
熟悉完linux后,你现在可以开始学习一些编程相关的知识,因为一个黑客至少都是掌握2种或多种编程语言,你如果没有编程基础的话,我这里推荐Python这个语言。因为Python这个语言代码简短,小白是很容易理解的,比如C语言的代码写一个helloworld需要5-6行,而Python只需要1行,学完了Python后可以再去学习一下C语言或者Java,你学会了一门语言后是会有基础的,而且语言都是一通互通,所以你学完Python之后再去学C应该不会有多难了,有必要的时候你也可以编写一款自己的黑客或渗透工具。
当现有工具满足不了需要,再学。大家日常的操作都有对应的经典工具。这些工具肯定比我们自己编写得好。当这些工具不能满足需要的时候,先去github上找。实在找不到,再考虑自己写。
学什么语言?
有人说一定要用Python。其实不一定。
python相对于小白来说比较容易上手,学完90%Py,再去学习其他编程语言就容易很多,换汤不换药。
当然你面临的问题可能有很多种情况。如果现有工具能完成大部分功能,则最有效的方式往往是在现有工具基础上扩展。大部分工具代码都开放,你只要把缺少的功能补上,就可以了。
这个时候,就要看这个工具用什么语言编写的,或者支持什么语言做插件开发。例如Wireshark的插件用Lua语言,本身用C+ +语言。Fiddler插件用Javascript。Metasploit自身和插件用Ruby。(多学点编程语言总是没有错的,高深技术人员都是会2种以上编程语言)
大约多了6-7个月之后,你也应该算是勉强一个初级安全人员或者小黑客了,你在后期可以学习一些0day挖掘技术提升自己的技能水平,看一些安全书籍,关注安全圈动态,如:先知社区、tools论坛、看雪论坛这些比较著名的技术论坛,然后我贴一下学习图算是指路吧!
1年后:
你现在可以学习一些比较著名的渗透测试系统了,这里我列举了几个:
Kali linux Parrot OS Arch linux等较知名的一些渗透系统,有机会的话还可以研究一下对于网站和服务器安全狗、云锁等一些防护软件的绕过,现在市面上有的大多数都被安全狗屏蔽掉了,所以如果自己有充足的时间的话可以自己去研究一下,毕竟有一句话叫:闷声发大财。
渗透测试介绍
- Kali Linux介绍
- Kali Linux的前世今生
- Linux常用命令介绍
Kali的不同安装方式
Kali的不同安装方式
VMWare安装、启动Kali
Win10启用WSL和获取Kali
kali工具介绍和基本使用
- Kali工具集介绍
- 修改Kali源和更新软件
- Kali常用配置和基本使用
- Kali启动root用户
信息收集概要
- 信息收集的意义
*信息搜集包括哪些信息*信息搜集的流程与方法
通过搜索引李收集信息
- Google Hacking语法
- Github文件泄露搜索语法
- Zoomeye与Fofa
设备发现和端口扫描
- 网络扫描的思路
- Nmap功能介绍
- Nmap扫描网络主机
- 网络扫描的防范
指纹识别
- 指纹识别的意义
- 指纹识别的思路
- 指纹识别的工具
- CMS/NAF/CDN指纹识别实战
目录扫描工具
- 目录扫描的作用与原理
- Dirbuster扫描网站目录
- 御剑扫描网站目录结构
- 网站fuzz测试工具
- 太多了,就不一一列举出来了。完整路线贴在下方了。
6/总结
先想清楚自己对哪个行业更感兴趣,结合自己的兴趣、性格特征、能力强项去寻找适合自己的职业赛道。这个不仅仅是去看网上别人怎么选的,因为每个人的情况毕竟是不一样的,别人的选择不能适用于你。
祝大家学有所成!
网络安全系统教程+渗透测试+学习路线(自学笔记)
一、什么是网络安全
网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。
无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如 Web 安全技术,既有 Web 渗透,也有 Web 防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。
二、怎样规划网络安全
如果你是一个安全行业新人,我建议你先从网络安全或者Web安全/渗透测试这两个方向先学起,一是市场需求量高,二则是发展相对成熟入门比较容易。
值得一提的是,学网络安全,是先网络后安全;学Web安全,也是先Web再有安全。
安全不是独立存在的,而是建立在其他技术基础之上的上层应用技术。脱离了这个基础,就很容易变成纸上谈兵,变成“知其然,不知其所以然”,在安全的职业道路上也很难走远。
- 如果你是原本从事网工运维,那么可以选择网络安全方向入门;
- 如果你原本从事程序开发,推荐选择Web安全/渗透测试方向入门。
当然学到一定程度、或者有了一定工作经验,不同方向的技术耦合会越来越高,各个方向都需要会一点。
根据以上网络安全技能表不难看出,网络安全需要接触的技术还远远很多,
常见的技能需要学习:
- 外围打点能力
- 钓鱼远控能力
- 域渗透能力、
- 流量分析能力
- 漏洞挖掘能力
- 代码审计能力等
【一一帮助安全学习,所有资源一一】
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
【一—评论区留言告诉我即可一一】
三、网络安全的知识多而杂,怎么科学合理安排?
1、基础阶段
- 中华人民共和国网络安全法 (包含18个知识点)
- Linux操作系统 (包含16个知识点)
- 计算机网络 (包含12个知识点)
- SHELL (包含14个知识点)
- HTML/CSS (包含44个知识点)
- JavaScript (包含41个知识点)
- PHP入门 (包含12个知识点)
- MySQL数据库 (包含30个知识点)
- Python (包含18个知识点)
入门的第一步是系统化的学习计算机基础知识,也就是学习以下这几个基础知识模块:操作系统、协议/网络、数据库、开发语言、常用漏洞原理。
前面的基础知识学完之后,就要进行实操了。
因为互联网与信息化的普及网站系统对外的业务比较多,而且程序员的水平参差不齐和运维人员的配置事物,所以需要掌握的内容比较多。
2、渗透阶段
- 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等,以上工具的练习完全可以利用上面的开源靶场去练习,足够了;
3、安全管理(提升)
- 渗透报告编写(包含21个知识点)
- 等级保护2.0(包含50个知识点)
- 应急响应(包含5个知识点)
- 代码审计(包含8个知识点)
- 风险评估(包含11个知识点)
- 安全巡检(包含12个知识点)
- 数据安全(包含25个知识点)
主要包括渗透报告编写、网络安全等级保护的定级、应急响应、代码审计、风险评估、安全巡检、数据安全、法律法规汇编等。
这一阶段主要针对已经从事网络安全相关工作需要提升进阶成管理层的岗位。
如果你只学习参加工程师方面的岗位,这一阶段可学可不学。
4、提升阶段(提升)
- 密码学(包含34个知识点)
- JavaSE入门(包含92个知识点)
- C语言(包含140个知识点)
- C++语言(包含181个知识点)
- Windows逆向(包含46个知识点)
- CTF夺旗赛(包含36个知识点)
- Android逆向(包含40个知识点)
主要包括密码学、JavaSE、C语言、C++、Windows逆向、CTF夺旗赛、Android逆向等。
主要针对已经从事网络安全相关工作需要提升进阶安全架构需要提升的知识。
如果你真的想通过自学的方式入门web安全的话,那建议你看看下面这个学习路线图,具体到每个知识点学多久,怎么学,自学时间共计半年左右,亲测有效(文末有惊喜):
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文档、视频以及相关的课件笔记,我都已经学过了,可以评论区留言告诉我。
给小伙伴们的意见是想清楚,自学网络安全没有捷径,相比而言系统的网络安全是最节省成本的方式,因为能够帮你节省大量的时间和精力成本。
给自学的小伙伴们的意见是坚持住,既然已经走到这条路上,虽然前途看似困难重重,只要咬牙坚持,最终会收到你想要的效果。
以上是关于一个完整的渗透学习路线是怎样的?如何成为安全渗透工程师?的主要内容,如果未能解决你的问题,请参考以下文章