入门 Web 安全、安卓安全、二进制安全、工控安全还是智能硬件安全等等,每个不同的领域要掌握的技能也不同。当然入门 Web 安全相对难度较低,也是很多人的首选。主要还是看自己的兴趣方向吧。
本文就以下几个问题来说明网络安全大致学习过程👇
网络安全主要岗位有哪些
安全领域技术方向分类
渗透测试学习路线
小白如何快速入门
一、网络安全里的主要的岗位有哪些:
渗透测试工程师:主要是模拟黑客对目标业务系统进行攻击,点到为止
安全运维工程师:一个单位买了那么多安全产品,肯定要有人做运维的,分析一下日志,升级一下策略。定期检查一下业务系统的安全性,查看一下内网当中有没有威胁,这都是安全运维工程师要做的内容
应急响应工程师:客户业务系统被攻击,要快速定位安全问题,要快速恢复业务系统,有的甚至还要取证报警。(家里如果被偷东西价值太大,你还不报警?心咋这么大)
等级保护测评师:按照国家要求,重要的业务系统需要按照安全等级进行保护的,目前国家已经发布了等级保护 2.0 标准,要按照这个标准进行建设。等级保护测评师的工作就是协助客户检查一下业务系统是否满足等级保护的要求,不满足的赶紧整改
安全开发工程师:嗯,就是搞开发,要对安全也要了解,比如开发一个 web 应用防火墙,连 web 攻击都不懂,那还开发个啥,闭门造车啊,能防的注吗?
售后工程师:安全产品的售后服务工作,包括安全产品的交付实施、售后支撑、产品调试上架。比如客户买了咱们的防火墙,咱们要派人去安装调试吧,总不能让客户自己去安装吧。这是产品工程师或者售后工程师的主要工作内容。
售前工程师:主要是协助销售完成跟单,说的通俗易懂一点就是跟销售配合,一个做商务关系(吃吃喝喝、送礼请客)一个做技术方案(解决客户的痛点),两个人配合拿下项目
安全服务工程师:好多企业把渗透测试工程师也归到安全服务工程师里面,无伤大雅。不懂安全服务,还不懂吃饭的服务员嘛,就是协助客户做好安全工作,具体的内容比如常见的漏洞扫描、基线检测、渗透测试、网络架构梳理、风险评估等工作内容。安全服务的面很大的,几乎涵盖了上述所有岗位的内容
二、而在这个安全领域中,主要有以下两大技术方向:
-
网络渗透方向
-
二进制安全方向
网络渗透方向
这个方向更符合于大部分人对“黑客”的认知,他们能够黑手机、黑电脑、黑网站、黑服务器、黑内网,万物皆可黑(当然是要有授权的,不然进橘子我可不管)
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。
不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多
插播一个初级入门 Web 安全训练营,目的是了解 Web 安全的基础工具应用,如果是大佬,请绕行。全部视频都是实操教学,并且每节课程都配备了相对应的靶场,零基础在学习完理论知识以后去靶场练习,在实战中验证理论、拓展学习。点击初级入门Web安全训练营就可以免费获得
二进制安全方向
这个方向主要涉及到软件漏洞挖掘、逆向工程、病毒木马分析等工作,涉及操作系统内核分析、调试与反调试、反病毒等技术。因为经常都是与二进制的数据打交道,所以久而久之用二进制安全来统称这个方向。
这个方向的特点是:需要耐得住寂寞。比不上网络渗透方向听起来的狂拽炫酷,这个方向更多时间是在默默的分析和研究。
以漏洞挖掘为例,光是学习五花八门的攻击手法就需要花不少的时间。在这个领域,为了研究一个问题,可能花费数月甚至数年时间,这绝非一般人能坚持下来的。不仅如此,不是勤奋就可以成功,更多还要靠天分。
像腾讯几大安全实验室的掌门人,业界知名的 TK 教主、吴石这些人物,他们已经深谙漏洞挖掘的奥义,并将这门绝技融会贯通,做个梦都能想到新的玩法。不过像这样的天才实在是少之又少,绝大多数人都无法企及。
如果说程序员是苦逼的话,那二进制安全研究就是苦逼 Plus
目前市面上最火的就是渗透工程师,也是很多人梦寐以求的。接下来我就以渗透工程师来说一下具体的学习路线
三、渗透测试学习路线
一、基础部分
基础部分需要学习以下内容:
1.计算机网络 :
重点学习 OSI、TCP/IP 模型,网络协议,网络设备工作原理等内容,其他内容快速通读
2.Linux 系统及命令
由于目前市面上的 Web 服务器 7 成都是运行在 Linux 系统之上,如果要学习渗透 Web 系统,最起码还是要对 linux 系统非常熟悉,常见的操作命令需要学会
学习建议:学习常见的 10%左右的命令适用于 90%的工作场景,和 office 软件一样,掌握最常用的 10%的功能,基本日常使用没什么问题,遇到不会的,再去找度娘;常见的 linux 命令也就 50-60 个,很多小白囫囵吞枣什么命令都学,发现记不住啊!!!!这个学习方法也是不对的
3.Web 框架
熟悉 web 框架的内容,前端 HTML,JS 等脚本语言了解即可,后端 PHP 语言重点学习,切记不要按照开发的思路去学习语言,php 最低要求会读懂代码即可,当然会写最好,但不是开发,但不是开发,但不是开发,重要的事情说三遍
4.数据库
需要学习 SQL 语法,利用常见的数据库 MySQL 学习对应的数据库语法,也是一样,SQL 的一些些高级语法可以了解,如果没有时间完全不学也不影响后续学习,毕竟大家不是做数据库分析师,不需要学太深
二、Web 安全
1.Web 渗透
掌握 OWASP 排名靠前的 10 余种常见的 Web 漏洞的原理、利用、防御等知识点,然后配以一定的靶场练习即可
推荐靶场:常见的靶场都可以上 github 平台搜索,推荐以下靶场 DVWA、bWAPP、upload-labs-master、SQL-lib-master、WebBug、pikachu 等,有些是综合靶场,有些是专门针对某款漏洞的靶场
2.安全工具学习
Web 透阶段还是需要掌握一些必要的工具
主要要掌握的工具和平台:burp、AWVS、Appscan、Nessus、sqlmap、nmap、shodan、fofa、代理工具 ssrs、hydra、medusa、airspoof 等,以上工具的练习完全可以利用上面的开源靶场去练习,足够了
练习差不多了,可以去 SRC 平台渗透真实的站点,看看是否有突破,如果涉及到需要绕过 WAF 的,需要针对绕 WAF 专门去学习,姿势也不是特别多,系统性学习学习,然后多总结经验,更上一层楼
3.自动化渗透
自动化渗透需要掌握一门语言,且需要熟练运用,可以是任何一门自己已经掌握得很熟悉得语言,都可以,如果没有一门掌握很好的,那我推荐学习 python,最主要原因是学起来简单,模块也比较多,写一些脚本和工具非常方便
学习 python 不需要掌握很多不需要的模块,也不需要开发成千上万行的代码,仅利用它编写一些工具和脚本,少则 10 几行代码,多则 1-200 行代码,一般代码量相对开发人员已经少得不能再少了,例如一个精简得域名爬虫代码核心代码就 1-20 行而已
花几天时间学习一下 python 的语法,有代码基础得朋友,最快可能一天就可以学习完 python 的语法,因为语言都是相通的,但是学习语言最快的就是写代码,别无他法;接下来可以开始尝试写一些常见得工具,如爬虫、端口探测、数据包核心内容提取、内网活跃主机扫描等,此类代码网上一搜一大把;然后再写一些 POC 和 EXP 脚本,以靶场为练习即可;有的小伙伴可能又要问了,什么是 POC 和 EXP,自己度娘去,养成动手的好习惯
4.代码审计
此处内容要求代码能力比较高,因此如果代码能力较弱,可以先跳过此部分的学习,不影响渗透道路上的学习和发展。
但是如果希望在 Web 渗透上需要走得再远一些,需要精通一门后台开发语言,推荐 php,因为后台采用 php 开发的网站占据最大,当然你还精通 python、asp、java 等语言,那恭喜你,你已经具备很好的基础了
代码审计顾名思义,审计别人网站或者系统的源代码,通过审计源代码或者代码环境的方式去审计系统是否存在漏洞(属于白盒测试范畴)
那具体要怎么学习呢?学习的具体内容按照顺序列举如下:
-
掌握 php 一些危险函数和安全配置
-
熟悉代码审计的流程和方法
-
掌握 1-2 个代码审计工具,如 seay 等
-
掌握常见的功能审计法;(推荐审计一下 AuditDemo,让你产生自信)
-
常见 CMS 框架审计(难度大)
CMS 框架审计,可以去一些 CMS 官方网站,下载一些历史存在漏洞的版本去审计,框架的学习利用官方网站的使用手册即可,如 ThinkPHP3.2 版本是存在一些漏洞,可以尝试读懂代码;但是切记不要一上来就看代码,因为 CMS 框架的代码量比较大,如果不系统先学习框架,基本属于看不懂状态;学习框架后能够具备写简单的 POC,按照代码审计方法结合工具一起审计框架;其实也没有想想中的那么难,如果你是开发人员转行的,恭喜你,你已经具备代码审计的先天性优势。那有的朋友又问了,我代码很差,不学习代码审计行不行,代码审计不是学习网络安全的必要条件,能够掌握最好,掌握不了也不影响后续的学习和就业,但你需要选择一个阶段,练习得更专业精通一些,如 web 渗透或者内网渗透,再或者是自动化渗透
三、内网安全
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位
如果想就业面更宽一些,技术竞争更强一些,需要再学习内网渗透相关知识
内网的知识难度稍微偏大一些,这个和目前市面上的学习资料还有靶场有一定的关系;内网主要学习的内容主要有:内网信息收集、域渗透、代理和转发技术、应用和系统提权、工具学习、免杀技术、APT 等等
四、渗透拓展
渗透拓展部分,和具体工作岗位联系也比较紧密,尽量要求掌握,主要有日志分析、安全加固、应急响应、等保测评等内容;其中重点掌握前三部分,这块的资料网络上也不多,也没有多少成型的书籍资料,可通过行业相关的技术群或者行业分享的资料去学习即可,能学到这一步,基本上已经算入门成功,学习日志分析、安全加固、应急响应三部分的知识也相对较为容易
但是有很多零基础的小白代码基础通常较弱,很多小白会倒在前期学习语言上,所以推荐先学习 web 渗透和工具,也比较有意思,容易保持一个高涨的学习动力和热情。像 php 语言、自动化渗透和代码审计部分内容,可以放在最后,当学习完毕前面知识后,也相当入门后,再来学习语言,相对会容易一些
具体学习内容我就不说了,请参照上面的路线即可!
五、小白如何快速入门学习黑客
如果你问我,小白应该如何有效的快速入门,我会毫不犹豫的告诉你“找个靠谱的入门课程带你入门”比起你看书或者自己一个人慢慢摸索,效率是高很多的!
下面这个课程是我比较推荐的,课程是完全面向零基础的朋友,老师讲的通俗易懂,就算是小白也能完全跟得上,而且每节课程都配备了相对应的靶场练习,这样就可以在实践中印证理论、加深理解、同时继续扩展学习,这对小白来说帮助非常大
这个课程适合零基础入门者,全视频实操教学+配套靶场练习+全套渗透工具,而且课程是 free 的。不仅带你轻松入门学习黑客,还能帮助你培养渗透思维!
感谢大家能够耐心看完!如果觉得有用的话,不妨点赞+收藏+关注!主页也会分享更多渗透技巧
一起加油吧!只要坚持学习,你的收获远远超过你的想象!