网络安全系统性学习路线「全文字详细介绍」
一、基础与准备(导图已备好↓)
1. 网络安全行业与法规
想要从事网络安全行业,必然要先对行业建立一个整体的认知,了解网络安全对于国家和社会的作用,避免出现“一叶障目,不见森林”的情况。
2. Linux 操作系统(网安)
很多初学者也常忽略Linux的重要性,认为学习的重头戏在框架等方面,但其实Linux也是重中之重。
3. 计算机网络基础
计算机网络基础是网络/运维工程师都需掌握的知识,但往往会被忽略。但是它是非常重要的。
4. HTML(网安)
作为任何一门编程语言,掌握编程核心总是由浅入深的。通过网页的开发制作过渡成为一个合格的编程者!
5. JavaScript 入门(网安)
6. HTML / CSS
作为任何一门编程语言,掌握编程核心总是由浅入深的。通过网页的开发制作过渡成为一个合格的编程者!
7. JavaScript 入门与程序设计
8. PHP 零基础入门到实战
PHP主要用于开发网站和互联网软件,它安全、简单易学、免费、跨平台、执行速度快,是各IT公司首选的互联网编程语言,目前国内外很多网站都是使用的PHP语言开发的,作为网络安全从业人员,我们会接触到很多PHP语言开发的网站,所以我们必须对PHP语言有一定的了解,为后面PHP漏洞的学习打下基础。
9. MySQL 基础
MySQL数据库是我们学习网络安全必不可少的,以及后面对SQL语句的了解以及可以对SQL注入进行更好的判断。
10. Python 语法
Python作为方便、上手简单的面向对象编程语言,其中存在许多的第三方库供大家使用,还可以使用Python进行网络渗透和使用Python去开发渗透工具都是不错的选择,所以学习Python也是必不可少的。
【环境搭建资料、工具包、全套视频…等籽料】点此聆取
二、渗透与防御
11. SQL 注入的渗透与防御
SQL注入是我们学习渗透测试接触的第一类漏洞,也是web漏洞中最经典的漏洞。SQL注入式攻击技术,一般针对基于Web平台的应用程序,造成SQL注入攻击漏洞的原因,是由于程序员在编写Web程序时,没有对浏览器端提交的参数进行严格的过滤和判断。用户可以修改构造参数,提交SQL查询语句,并传递至服务器端,从而获取想要的敏感信息,甚至执行危险的代码或系统命令。
12. XSS 渗透与防御
XSS漏洞是Web应用程序中最常见的漏洞之一。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。攻击者可以使,用户在浏览器中执行其预定义的恶意脚本,其导致的危害可想而知,如劫持用户会话,插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器、繁殖XSS蠕虫,甚至破坏网站、修改路由器配置信息等。
13. CSRF 漏洞渗透与防御
CSRF:CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。
14. 文件上传漏洞利用与防御
文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。
15. 文件包含漏洞利用与防御
随着网站业务的需求,程序开发人员一般希望代码更灵活,所以将被包 含的文件设置为变量,用来进行动态调用,但是正是这种灵活性通过动态变 量的方式引入需要包含的文件时,用户对这个变量可控而且服务端又没有做 合理的校验或者校验被绕过就造成了文件包含漏洞。
16. SSRF 渗透与防御
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。利用的是服务端的请求伪造。ssrf是利用存在缺陷的web应用作为代理攻击远程和本地的服务器。
17. XXE 渗透与防御
现在许多不同的客户端技术都可以使用XMl向业务应用程序发送消息,为了使应用程序使用自定义的XML消息,应用程序必须先去解析XML文档,并且检查XML格式是否正确。当解析器允许XML外部实体解析时,就会造成XXE漏洞,导致服务器被攻击。
18. 远程代码执行渗透与防御
远程代码执行漏洞,是由用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。
19. PHP 反序列化渗透与防御
序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、持久化。然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式、大数据量系统设计里面更为显著。恰当的序列化协议不仅可以提高系统的通用性、强健性、安全性、优化系统性能,而且会让系统更加易于调试、便于扩展。互联网的产生带来了机器间通讯的需求,而互联通讯的双方需要采用约定的协议,序列化和反序列化属于通讯协议的一部分。因此作为网络安全从业人员,必须了解什么是序列化,什么是反序列化,可能存在的漏洞,以及漏洞的修复方案。
20. Redis 未授权访问漏洞
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、 Key-Value数据库。和Memcached类似,它支持存储的value 类型相对更多,包括 string(字符串)、list ( 链表)、 set(集合)、zset(sorted set – 有序集合)和 hash(哈希类型)。这些数据类型都支持push/pop 、 add/remove 及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上, redis支持各种不同方式的排序。与 memcached 一样,为了保证效率,数据都是缓存在内存中。区别的是 redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了 master-slave ( 主从)同步。
21. 逻辑相关渗透与防御
逻辑漏洞挖掘一直是安全测试中“经久不衰”的话题。相比SQL注入、XSS漏洞等传统安全漏洞,现在的攻击者更倾向于利用业务逻辑层的应用安全问题。之所以称为逻辑漏洞,是因为代码之后是人的逻辑,人更容易犯错,是编写完程序后随着人的思维逻辑产生的不足。sql注入、xss等漏洞可以通过安全框架等避免,这种攻击流量,非法对原始程序进行了破坏,防火墙可以检测,而逻辑漏洞是通过合法合理的方式达到破坏,这类问题往往危害巨大,可能造成了企业的资产损失和名誉受损,并且传统的安全防御设备和措施收效甚微。
22. 密码暴力猜解与防御
暴力破解也叫穷举法,其基本思想是根据题目的部分条件确定答案的大致范围,并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕。若某个情况验证符合题目的全部条件,则为本问题的一个解;若全部情况验证后都不符合题目的全部条件,则本题无解。暴力破解攻击是指攻击者通过系统地组合所有可能性(例如登录时用到的账户名、密码),尝试所有的可能性破解用户的账户名、密码等敏感信息。攻击者会经常使用自动化脚本组合出正确的用户名和密码。对防御者而言,给攻击者留的时间越长,其组合出正确的用户名和密码的可能性就越大。
23. 社会工程学
社会工程学是一种通过人际交流的方式获得信息的非技术渗透手段。不幸的是,这种手段非常有效,而且应用效率极高。事实上,社会工程学已是企业安全最大的威胁之一。你们可能永远都想象不到,对于黑客们来说,通过一个用户名、一串数字、一串英文代码,社会工程师就可以通过这么几条的线索,通过社工攻击手段,加以筛选、整理。就能把你的所有个人情况信息、家庭状况、兴趣爱好、婚姻状况、你在网上留下的一切痕迹等个人信息全部掌握得一清二楚。作为网络安全从业人员,必须了解社会工程学,这是密码猜解,信息收集等常用的一种手段。
24. AWVS 漏洞扫描
AWVS(Acunetix Web Vulnerability Scanner)是一款自动化应用程序安全测试工具,支持windows平台,主要用于扫描web应用程序上的安全问题,如SQL注入,XSS,目录遍历,命令注入等。
25. AppScan 漏洞扫描
AppScan 是IBM 公司出的一款Web 应用安全测试工具,采用黑盒测试的方式,可以扫描常见的web 应用安全漏洞。 AppScan 功能十分齐全,支持登录功能并且拥有十分强大的报表。在扫描结果中,不仅能够看到扫描的漏洞,还提供了详尽的漏洞原理、修改建议、手动验证等功能。
26. Nessus 漏洞扫描
Nessus号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus不同于传统的漏洞扫描软件,Nessus可同时在本机或远端上遥控,进行系统的漏洞分析扫描。Nessus也是渗透测试重要工具之一。
27. MSF-Metasploit Framework
Metasploit Framework(MSF)是一款开源的渗透测试框架平台,到目前为止,msf已经内置了数千个已披露的漏洞相关的模块和渗透测试工具,模块使用ruby语言编写,这使得使用者能够根据需要对模块进行适当修改,甚至是调用自己写的测试模块。选定需要使用的攻击模块之后,你只需要使用简单的命令配置一些参数就能完成针对一个漏洞的测试和利用,将渗透的过程自动化、简单化。
28. Burp Suite 从入门到实战
Burp Suite是一款集成化的渗透测试工具,包含了很多功能,可以帮助我们高效地完成对Web应用程序的渗透测试和攻击.Burp Suite是由Java语言编写,基于Java自身的跨平台性,使这款软件学习和使用起来更方便。Burp Suite不像其他自动化测试工具,它需要手工配置一些参数,触发一些自动化流程,然后才会开始工作。
29. ARP 渗透与防御
ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。
30. DOS与DDOS渗透与防御
DOS(Denial of Service,拒绝服务攻击),它的原理很简单,就是用我们手里的机器去给服务器发请求,如果我们手头的服务器各方面性能都比服务器的主机的性能好,那么当我们发送大量请求给服务器,占用服务器的资源,导致服务器没有能力去处理其他用户请求。DDOS(Distributed Denial of Service,分布式拒绝服务),它是DOS家族里很难防范的一种攻击方式,攻击者首先控制大量肉鸡,然后向目标服务器发送海量请求,导致目标服务器不可用。这里我们不禁要问攻击者是如何获取大量肉鸡的呢?攻击者会对某些APP或网站植入一些恶意代码,如果这款APP或网站的活跃用户数很多,那么这个网站就会受到很多莫名的请求。
31. 内网相关渗透与防御
在我们的渗透过程中,很多大型网络的外部网站或是服务器不一定有用,当然外网也可以作为我们的一个突破口,毕竟没有经过尝试,我们也不知道里面的结构,至 少在外部上我们可以获取一定的信息也说不定,但是对于内网,外网绝对不是我们的主要路径.很多时候我们直接从外网入手,想进入内网,已变得越来越困难.那面对内网,我们应该怎样做呢?
32. 无线安全相关渗透与防御
最近瑞星互联网攻防实验室发布了一份关于wifi安全的报告,报告显示在过去的一年中,全国范围内的无线网络(wifi及随身wifi)遭到攻击的次数呈几何式增长。通过在北京、上海、广东等地的多类公共场所进行实地调查后发现,绝大多数的公共wifi环境缺少甚至毫无安全防护措施。黑客通过wifi给手机、电脑疯狂弹出广告,占用大量流量使网速变慢,给手机推送流氓软件甚至病毒,严重者可盗取网银中的钱财、qq及微信等关键软件的账号密码,给网民隐私信息和经济利益带来严重威胁。据介绍,造成这些问题的原因是由于目前市面上几种比较流行的wifi产品,如d-link、tp-link、cisco等都存在不同数量的漏洞,尽管一些厂商已经在官网发布了修复补丁,但普通用户很少有针对无线wifi产品及时升级补丁的习惯,因此这些漏洞的影响仍在不断扩大。目前我国手机网民总数超过5亿,随着wifi及随身wifi设备漏洞和黑客攻击事件的不断增加,移动安全已经成为我国信息安全中不可忽视的重要问题。
33. 木马免杀问题与防御
免杀技术全称为反杀毒技术Anti Anti-Virus(AV)简称“反杀毒技术”,也就是免杀,它指的是一种能使病毒木马免于被杀毒软件查杀的技术。由于免杀技术的涉猎面非常广,其中包含反汇编、逆向工程、系统漏洞等黑客技术。其内容基本上都是修改病毒、木马的内容改变特征码,从而躲避了杀毒软件的查杀。在实际的渗透过程中,目标机器上一般会有杀毒软件。如Windows Defender、360安全卫士、腾讯电脑管家、卡巴斯基等,并且还会装有各种WAF(安全狗、D盾等)。我们的木马只要一上传到目标机器,就会被杀毒软件给查杀了。所以,木马免杀就是我们需要考虑的一个问题了。包括web端脚本木马的免杀,系统端程序木马的免杀。
34. 渗透报告编写
对目标的攻击并不是最终的目的。正确的做法应该是将发现的问题以报告的形式提交绐客户。让客户能够理解问题的严重性,并对此作出正确的回应,及时进行改正,这才是我们真正应该做的。这一切需要通过沟通才能完成,除了与客户之间的交流之外,还必须向客户提供一份易于理解的书面测试报告。渗透测试的最后一个也是最为重要的一个阶段就是报告编写。渗透测试的最后一个环节里,审计人员要记录、报告并现场演示那些已经识别、验证和利用了的安全漏洞。被测单位的管理和技术团队会检查渗透时使用的方法,并会根据这些文档修补所有存在的安全漏洞。所以从道德角度来看,文档报告的工作十分重要。为了帮助惯例人员和技术人员共同理解、分析当前IT基础架构中的薄弱环节,可能需要给不同的部门撰写不同措辞的书面报告。此外,这些报告还可以用来获取和比较渗透测试前后目标系统的完整性。
35. CVE 漏洞复现
各种CVE漏洞复现,原理分析,防御方法。
36. Kali 高级渗透测试
Kali安装配置:安装安装使用配置kali操作系统,以及渗透测试。
信息收集:信息针对目标如何最大化地收集信息。
漏洞扫描:常见漏洞的类型,以及如何自动化地发现漏洞。
权限提升:怎么利用漏洞获得权限。
网络嗅探:如何监听和分析通信数据。
密码解密:加密的原理,以及常见密码的解密方式。
无线防护:无线密码的破解。
37. vulnhub 靶场实战
38. 挖漏洞项目实战
【环境搭建资料、工具包、全套视频…等籽料】点此聆取
三、安全管理
39. 等级保护
信息安全等级保护,是对信息和信息载体按照重要性等级分级别进行保护的一种工作,在中国、美国等很多国家都存在的一种信息安全领域的工作。
40. 安全巡检
安全巡检是指使用多种手段,对网络设备、服务器、操作系统、应用系统进行周期性的状态检查、安全扫描、日志分析,补丁管理并提交巡检报告及安全建议。安全巡检的目的在于长期和持续地保持IT系统良好的安全状况,定期的安全巡检有助于及时发现长期运行的系统安全隐患、新的安全漏洞,并进行及时修复,能够保障系统、设备的安全和高可用性,能够掌握当前网络、系统的威胁状况,从而采取有针对性的安全措施。
41. 应急响应
第一、未雨绸缪,即在事件发生前事先做好准备,比如风险评估、制定安全计划、安全意识的培训、以发布安全通告的方式进行的预警、以及各种防范措施;
第二、亡羊补牢,即在事件发生后采取的措施,其目的在于把事件造成的损失降到最小。这些行动措施可能来自于人,也可能来自系统,比如发现事件发生后,系统备份、病毒检测、后门检测、清除病毒或后门、隔离、系统恢复、调查与追踪、入侵者取证等一系列操作。
以上两个方面的工作是相互补充的。首先,事前的计划和准备为事件发生后的响应动作提供了指导框架,否则,响应动作将陷入混乱,而这些毫无章法的响应动作有可能造成比事件本身更大的损失;其次,事后的响应可能发现事前计划的不足,吸取教训,从而进一步完善安全计划。因此,这两个方面应该形成一种正反馈的机制,逐步强化组织的安全防范体系。
42. 代码审计
代码审计(Code Audit)是一种以发现安全漏洞、程序错误和程序违规为目标的源代码分析技能。在实践过程中,可通过人工审查或者自动化工具的方式,对程序源代码进行检查和分析,发现这些源代码缺陷引发的安全漏洞,并提供代码修订措施和建议。
43. 数据安全
数据处理的安全是指如何有效的防止数据在录入、处理、统计或打印中由于硬件故障、断电、死机、人为的误操作、程序缺陷、病毒或黑客等造成的数据库损坏或数据丢失现象,某些敏感或保密的数据可能不具备资格的人员或操作员阅读,而造成数据泄密等后果。
四、DevOps
44. Nginx 基础应用
Nginx 是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性:
在连接高并发的情况下,Nginx是Apache服务不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。
45. DevOps 必备之 Git 持续集成工具 CI
46. DevOps 必备之 Tomcat 代码上线流程
47. DevOps 必备之 Jenkins 持续部署工具CD
48. Docker 进阶
49. Kubernetes 进阶
50. kubernetes 实战与源码剖析
第1部分 目的是看k8s组件架构并解析相关源码,目前已完成80小节文档内容
第2部分 容器底层原理,这里需要会加一些docker源码解读
第3部分 k8s 重点资源源码解读,主要是核心资源的控制器源码解读
第4部分 k8s 存储对象源码解读
第5部分 k8s 网络底层原理
第6部分 深入掌握k8s Service
第7部分 k8s 编排管理
第8部分 容器安全
第9部分 K8s crd开发项目, 具体功能还没定好,但是crd开发应该是主流
51. Prometheus 基础入门到源码剖析
五、进阶提升
52. 加密与解密
53. HTML5 + CSS3
54. Shell 编程
55. 汇编语言程序设计
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
56. C 语言编程
57. C++ 编程入门
58. JavaSE 初阶
59. CTF-Web 题型
60. CTF-Crypto 题型
61. Windows 逆向安全进阶
62. Android 逆向
六、备份学习
63. 渗透测试网站开发后端技术PHP
64. 渗透测试网站开发前端技术HTML
65. Python运维自动化
总结:
总共分为65节,这是网络安全的学习路线和简单介绍,根据这个路线学习,你也将会成为一名网络安全大师!!!