网络渗透学习指南
# 网络安全岗位
渗透测试工程师:模拟黑客对目标业务系统进行攻击
安全运维工程师:对企业的安全产品进行运维,分析日志,升级策略。定期检查一下业务系统的安全性,查看一下内网当中有没有威胁。
应急响应工程师:客户业务系统被攻击,快速定位安全问题,快速恢复业务系统,甚至还要取证报警。
等级保护测评师:按照国家要求,重要的业务系统需要按照安全等级进行保护的,目前国家已经发布了等级保护2.0标准,要按照这个标准进行建设。等级保护测评师的工作就是协助客户检查一下业务系统是否满足等级保护的要求,不满足的赶紧整改
安全开发工程师:开发web应用防火墙。
售后工程师:安全产品的售后服务工作,包括安全产品的交付实施、售后支撑、产品调试上架。比如客户购买防火墙产品,需要有人进行安装调试。这是产品工程师或者售后工程师的主要工作内容。
售前工程师:主要是协助销售完成跟单,做技术方案(解决客户的痛点)完成项目。
安全服务工程师:协助客户做好安全工作,具体的内容比如常见的漏洞扫描、基线检测、渗透测试、网络架构梳理、风险评估等工作内容。安全服务几乎涵盖了上述所有岗位的内容。
# 安全领域技术方向分类
网络渗透方向
这个方向更符合于大部分人对“黑客”的认知,他们能够黑手机、黑电脑、黑网站、黑服务器、黑内网,万物皆可黑。
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。
不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多
二进制安全方向
这个方向主要涉及到软件漏洞挖掘、逆向工程、病毒木马分析等工作,涉及操作系统内核分析、调试与反调试、反病毒等技术。因为经常都是与二进制的数据打交道,所以久而久之用二进制安全来统称这个方向。
这个方向的特点是:需要耐得住寂寞。比不上网络渗透方向听起来的狂拽炫酷,这个方向更多时间是在默默的分析和研究。
以漏洞挖掘为例,光是学习五花八门的攻击手法就需要花不少的时间。在这个领域,为了研究一个问题,可能花费数月甚至数年时间,这绝非一般人能坚持下来的。不仅如此,不是勤奋就可以成功,更多还要靠天分。
# 渗透测试学习路线
# 基础
首先,忘了和不会是两码事
线性代数、概率论和离散数学,以及英语这些都是基本功,这些东西没学好,走起路来摇摇晃晃的。
计算机网络,重点学习OSI、TCP/IP模型,网络协议,网络设备工作原理等内容,其他内容快速通读
Linux系统及命令、windows的pe结构,会写指令壳,逆向工程
Web框架,熟悉web框架的内容,前端HTML,JS等脚本语言,后端PHP语言,不要按照开发的思路去学习语言,php最低要求会读懂代码即可。
数据库,需要学习SQL语法,利用常见的数据库MySQL学习对应的数据库语法,SQL的一些些高级语法可以了解,如果没有时间完全不学也不影响后续学习,毕竟不是做数据库分析师,不需要学太深
# web安全
渗透 审计 redteam ctf app 都得会
# web渗透
掌握OWASP排名靠前的10余种常见的Web漏洞的原理、利用、防御等知识点,然后配以一定的靶场练习即可
常见的靶场都可以上github平台搜索,推荐以下靶场DVWA、bWAPP、upload-labs-master、SQL-lib-master、WebBug、pikachu等,有些是综合靶场,有些是专门针对某款漏洞的靶场
# 安全工具
主要要掌握的工具和平台:burp、AWVS、Appscan、Nessus、sqlmap、nmap、shodan、fofa、代理工具ssrs、hydra、medusa、airspoof等,以上工具的练习完全可以利用上面的开源靶场去练习
也可以去SRC平台渗透真实的站点,看看是否有突破,如果涉及到需要绕过WAF的,需要针对绕WAF专门去学习,系统性学习学习,然后多总结经验
# 自动化渗透
自动化渗透需要掌握一门语言,且需要熟练运用,可以是任何一门自己已经掌握得很熟悉得语言,我推荐学习python,学起来简单,模块也比较多,写一些脚本和工具非常方便。学一下python的事件循环,协程和多线程配合,python灰帽子。python的第三方库学白月黑羽,把他的长视频都看完。
学习python不需要掌握很多不需要的模块,也不需要开发成千上万行的代码,仅利用它编写一些工具和脚本,少则10几行代码,多则1-200行代码,一般代码量相对开发人员已经少得不能再少了,例如一个精简得域名爬虫代码核心代码就1-20行而已
学习语言最快的就是写代码,别无他法,接下来可以开始尝试写一些常见得工具,如爬虫、端口探测、数据包核心内容提取、内网活跃主机扫描等,然后再写一些POC和EXP脚本,以靶场为练习即可。
# 代码审计
此处内容要求代码能力比较高,因此如果代码能力较弱,可以先跳过此部分的学习,不影响渗透道路上的学习和发展。
但是如果希望在Web渗透上需要走得再远一些,需要精通一门后台开发语言,推荐php,因为后台采用php开发的网站占据最大,当然你还精通python、asp、java等语言,那恭喜你,你已经具备很好的基础了
代码审计顾名思义,审计别人网站或者系统的源代码,通过审计源代码或者代码环境的方式去审计系统是否存在漏洞(属于白盒测试范畴)
学习的具体内容按照顺序如下
- 掌握php一些危险函数和安全配置
- 熟悉代码审计的流程和方法
- 掌握1-2个代码审计工具,如seay等
- 掌握常见的功能审计法;(推荐审计一下AuditDemo,让你产生自信)
- 常见CMS框架审计(难度大)
CMS框架审计,可以去一些CMS官方网站,下载一些历史存在漏洞的版本去审计,框架的学习利用官方网站的使用手册即可,如ThinkPHP3.2版本是存在一些漏洞,可以尝试读懂代码;但是切记不要一上来就看代码,因为CMS框架的代码量比较大,如果不系统先学习框架,基本属于看不懂状态;学习框架后能够具备写简单的POC,按照代码审计方法结合工具一起审计框架;其实也没有想想中的那么难,如果你是开发人员转行的,恭喜你,你已经具备代码审计的先天性优势。 那有的朋友又问了,我代码很差,不学习代码审计行不行,代码审计不是学习网络安全的必要条件,能够掌握最好,掌握不了也不影响后续的学习和就业,但你需要选择一个阶段,练习得更专业精通一些,如web渗透或者内网渗透,再或者是自动化渗透
# 内网安全
学到这里,就基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位
如果想就业面更宽一些,技术竞争更强一些,需要再学习内网渗透相关知识
内网的知识难度稍微偏大一些,这个和目前市面上的学习资料还有靶场有一定的关系;内网主要学习的内容主要有:内网信息收集、域渗透、代理和转发技术、应用和系统提权、工具学习、免杀技术、APT等等
# 渗透扩展
渗透拓展部分,和具体工作岗位联系也比较紧密,尽量要求掌握,主要有日志分析、安全加固、应急响应、等保测评等内容;其中重点掌握前三部分,这块的资料网络上也不多,也没有多少成型的书籍资料,可通过行业相关的技术群或者行业分享的资料去学习即可,能学到这一步,基本上已经算入门成功,学习日志分析、安全加固、应急响应三部分的知识也相对较为容易
# 最后
要明白,你二倍速看两小时视频也是得学4小时
不要坚持不久,每次都被别的吸引过去了
原谅不完美的自己