说到黑客,大家心中的形象是不是都是这样的?
是啊。仅仅通过一台电脑就能操纵他人手机,获取全球最高机密,让ATM无限吐钞……实在是太酷了吧。就问哪个程序员没有当黑客的梦呢?
本文呢,就是带各位揭秘黑客究竟是什么,以及想要成为黑客都需要具备哪些能力?
什么是黑客?
站在计算机角度上解释,黑客就是去寻找网站、系统、软件等漏洞,并利用漏洞来取得一些数据或达到控制,让对方程序崩溃等效果。
刚入门的黑客大部分从事渗透工作,而渗透大部分属于web安全方向。因此换个淳朴点的名字称呼他们就是 —— 安全工程师。
是不是一下子就没那么神秘了?
不过,所谓职称仅仅是代号。我认为黑客真正的魅力在于他们对于代码的痴迷与热爱,对自己能力近似于傲慢的自信以及打破陈规的创造力与勇气。
当然不包括触犯法律。
成为一名黑客需要具备哪些能力?
第一点,了解黑客的思维方式
我们生活中用到的网站、软件等,都是由程序员编写的代码构成的。
这些代码在设计的过程中,都是基于一种正向的逻辑进行的,为了实现某个目的,完成某个操作的流程或数据传输逻辑。
而黑客的思维是逆向的,他们会去分析目前这个操作流程或数据传输逻辑中,是否存在一些验证不严谨或者隐秘信息被泄露的风险,并加以利用,从而绕过正常的操作逻辑达到未授权访问或操作的能力。
通俗点说,程序员是造房子的,而黑客则是看看房子是不是哪里漏了个风,缺了个口。翻进去为所欲为;有的甚至直接将房子拆了。
第二点,学习一门编程语言
黑客的武器也是代码。想要成为黑客,首先要学会一门黑客需要的编程语言。
对于没有代码经验的小白,可以从python、PHP或C学起。
第三点,学习网络安全基础知识
前面有提到,黑客其实就是安全工程师。安全工程师也分为几类,每一类的学习路径也有所不同。
这张图非常全面地给出了黑客学习发展的路线,我们可以根据自己想要研究的方向寻找对应的技术学习。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/1e4473779b644d68b55c33c7bd8a169f.png#pic_center)
以Web安全举例。
首先要对Web技术有所了解,比如你想破解一个网站,首先你得会搭建一个网站。所以需要掌握:
通信协议,如TCP、HTTP,操作系统,如Linux、Windows、服务架设:Apache、Nginx等,数据库:MySQL或Oracle,以及编程语言,包括前端和后端语言。
接着对于Web安全技术也需要掌握:后端安全如SQL注入、文件上传、Webshell(木马)等,前端安全如XSS跨站脚本攻击、CSRF跨站请求伪造等。
黑客所涉及到的基础技能点是很多的,大部分人抱着三分钟热度,学着学着就放弃了。所以我们在学习过程中应该先去梳理一份知识图谱,然后进行系统性学习。
第四点,实战操作
如果你成功通过第三点,那么恭喜,你已经是一个初级小黑客了。接下来不如上手实践一下,比如SRC漏洞挖掘,WIFI网络破解,配套靶场练习等等。当然,你也可以尝试破解一下你女朋友的QQ密码。
第五点,懂法律,懂法律,懂法律!
《网络安全法》 第二十七条
任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动;不得提供专门用于从事侵入网络、干扰网络正常功能及防护措施、窃取网络数据等危害网络安全活动的程序、工具;明知他人从事危害网络安全的活动的,不得为其提供技术支持、广告推广、支付结算等帮助。
第四十四条 任何个人和组织不得窃取或者以其他非法方式获取个人信息,不得非法出售或者非法向他人提供个人信息。
《刑法》 第二百八十六条
违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。
不谈技术,单谈品质。恶意侵入其他电脑的系统作出破坏的“Cracker”是非常可耻的。互联网不是法外之地,我向大家科普黑客的知识也绝不是想去助长某些朋友的不良心态。
我觉得作为一个技术人员了解和学习黑客知识是必要的,因为这样才能在日常工作中应对安全风险,在较高的安全意识上完成编程和运维工作;当然,如果你能成功掌握了一些黑客原理和技术,当你遇到攻击时,也不仅仅是严防死守,而是抓住内鬼,反将一军。
技术本身并不罪恶,滥用技术才会导致罪恶!
如何入门学习黑客&网络安全
学习网络安全需要具有一个扎实的计算机基础知识和网络基础知识,如果未来要从事网络安全领域的研发岗位,还需要具有一个扎实的数学基础。由于整体的知识量非常大,所以学习网络安全首先应该有一个自己的学习切入点,对于动手能力比较强的人来说,可以从网络基础知识开始学起,然后逐渐了解各种网络安全设备的相关知识。
路线图
先来看一张整体的路线图,初步了解下这个方向需要学习的知识有哪些
我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣。
来吧,话不多说,一起学起来,见证从青铜变身王者的旅程!
黑铁(练气期)
第一个阶段——石器时代,针对的是纯新手小白刚刚入场。在这个阶段,主要是打基础,需要学习的有五部分内容:
Windows
Windows上基础的一些命令、PowerShell的使用和简单脚本编写,以及Windows以后经常会打交道的几个重要组件的使用:注册表、组策略管理器、任务管理器、事件查看器等。
除此之外,学习在Windows上面搭建虚拟机,学会安装系统,为接下来学习Linux做准备工作。
Linux
网络安全,必然要与Linux经常打交道,我看到很多新人一上来就跟着一些培训班学习Kali,学的云里雾里的。连基本的Linux概念都没建立起来,就急着学Kali,这属于还没学会走路就去学跑步,本末倒置了。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/91e77e6635704f478e3a6b1b878f90b1.png)
在基础阶段,主要以使用为主,学习文本编辑、文件、网络、权限、磁盘、用户等相关的命令,对Linux有一个基本的认知。
计算机网络
网络安全,计算机网络肯定是非常重要的存在。作为基础阶段,这一小节主要从宏观上学习计算机网络,而不是死扣某一个协议的某些字段意义。
首先从局域网出发,了解计算机通信的基本网络——以太网,局域网内是如何通信的?集线器、交换机有什么区别?MAC地址、IP地址、子网、子网掩码分别是做什么用的?
![在这里插入图片描述](https://img-
blog.csdnimg.cn/339da483f4ac4ebea114a9a5e84a096a.png)
随后引出更大的广域网、互联网,什么是网络通信协议,通信协议分层的问题,通过七层和四层模型快速建立起计算机网络的基础概念,各层协议的作用,分别有哪些协议,这些协议在当今的互联网中具体是怎么应用的。
Web基础
网络渗透中非常重要的一个组成部分就是Web安全,要学习Web安全,得先从Web前端基础开始入手。
这一小节非常简单,就是学习最原始的Web前端三板斧:HTML+CSS+JS的开发使用,为将来学习Web相关的安全知识打下基础。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/aad986f568a14b588e39ee23a3f35694.png)
这一小节是相对偏实际动手多一些,需要自己多动手进行一些网页编程,尤其是JavaScript的熟悉掌握,了解Ajax是什么东西,常用的jQuery库也学习一下,这都是Web前端中非常基础和常用的内容。
数据库基础
基础阶段的最后一部分,可以来接触一些数据库的基础知识了。
这个阶段主要学一些理论知识,重点掌握库、表、索引等概念,然后学习SQL的编写,学会增删改查数据。暂时不用编程来操作数据库。
青铜(筑基期)
度过了石器时代,你已经储备了一些计算机的基础知识:操作系统的使用,网络协议,前端基础,数据库初识,但这距离做网络安全还不够,在第二个青铜阶段,你还需要再进一步学习基础,在第一阶段之上,难度会开始慢慢上升。
这一阶段需要学习的知识有:
Web进阶
在前面的石器时代,咱们初步接触了网页编程,了解了网页的基本原理。不过那时候是纯前端的,纯静态的网页,没有接触后端。在这个进阶的阶段,你要开始接触Web后端的内容了。
首先从常用的两大主流Web服务器出发,学习Apache和Linux的基本知识,随后引出动态网页的基本原理,从CGI/Fast-
CGI过渡到后来的ASP/PHP/ASPX/JSP等动态网页技术,了解它们的发展历史,演变过程和基础的工作原理。
最后再学习一些Web开发中的基础知识:表单的操作、Session/Cookie、JWT、LocalStorage等等,了解这些基本的术语都是什么意思,做什么用,解决了什么。
PHP编程
学习Web后端开发,得搭配学习一个后端开发语言才行。在这一小节,选择从PHP入手。
不过要记住,这里选择PHP不是让你以后从事PHP的后端开发,也不是说PHP现在有多流行,而是特定历史背景下,PHP相关的网站安全问题非常具有代表性,选择这门语言更方便我们研究安全问题。
由于学习的目的不同,所以在学习方法上和普通的后端开发就有所不同了。在这里咱们学习一下语法基础,基本的后端请求处理,数据库访问,然后再接触一下常用的ThinkPHP框架即可,当然如果你有兴趣,学的更深入当然更好。
计算机网络进阶
第二阶段需要再充实一下计算机网络的学习。这一次,重点把精力放在HTTP/HTTPS以及抓包分析之上。
Linux上的tcpdump必须掌握,包括常见的参数配置。然后重点学习Wireshark分析数据包,用Fiddler抓取分析加密的HTTPS流量。
通过在抓包软件下查看通信流量,对计算机网络的认识从抽象变得具象。
加解密技术
接着,来了解一些网络安全领域内经常打交道的编解码技术和加解密技术。包括base64编码、对称加密、非对称加密、哈希技术等等。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/31086f1e6a924250afaddeb6c896ce2d.png)
了解它们基础的概念、做什么用的,解决什么问题,最后再了解下工作原理。
推荐书籍:《加密与解密》
白银(结丹期)
现在进入第三个阶段——白银时代,激动人心的时刻就要到来了,在这个阶段,我们开始全面学习真正的网络安全技术了,前面两个阶段打下的基础,在这个阶段,也将派上用场。
这一阶段需要学习的知识有:
Web安全入门
有了前面的Web前端和PHP编程的基础,可以来正式学习Web安全了。Web安全领域内几大典型的攻击手法:SQL注入、XSS、CSRF、各种注入、SSRF、文件上传漏洞等等,每一个都需要详细学习,一边学习理论,一边动手实践。
千万注意别拿互联网上的网站来攻击学习,这是违法的行为。自己可以在虚拟机中搭建一些包含漏洞的网站(网络上有很多可以下载来玩),拿自己建的网站练手。
网络扫描与注入
前面学习了一些Web安全的攻击手法,但光有这些还不够,当我们面对攻击目标后,如何寻找攻击点,获取目标的信息至关重要。
这些信息包括:目标运行了什么操作系统,开放了哪些端口,运行了哪些服务,后端服务是什么类型,版本信息是什么等等,有哪些漏洞可以利用,只有获取到了这些信息,才能有针对性的制定攻击手段,拿下目标。
常见的网络信息扫描包括端口扫描、网站后台扫描、漏洞扫描等等。需要学习常用的扫描工具以及它们的工作原理。
信息搜集 & 社会工程学
除了上面需要扫描的信息,在网络安全中,经常还需要调研很多信息,比如网站的注册信息、相关联的人物、网站内部的内容检索等等。这就需要学习掌握信息搜集和社会工程学的相关技术。
whois信息用来查询域名信息,shodan、zoomeye、fofa等网络空间搜索引擎检索IP、域名、URL等背后的信息,Google
Hacking利用搜索引擎来检索网站内部信息,这些东西都是在网络信息搜集中经常用到的技能。
暴力破解
在网络攻击中,当扫描到目标开放的服务后,最直接的就是想要登录进去。常见的服务有SSH、RDP、MySQL、Redis、Web表单等等。
这个时候,暴力破解通常会派上用场,通过使用各种服务常见用户名密码组成的字典,通过程序暴力破解。
常用的爆破工具有hydra、超级弱口令,另外还有一个mimikatz,常用来获取Windows系统的密码。
黄金(元婴期)
上一个阶段,学习了一些安全攻击技术,在这一个阶段,需要学习一下安全防御和安全检测技术,安全具有攻防两面性,缺一不可。
WAF技术
首先要学习的就是WAF——Web应用防火墙。
Web安全学习的是通过Web技术攻击计算机系统,WAF就是检测和防御这些安全攻击。正所谓知己知彼才能百战百胜,作为攻方,要掌握WAF的工作原理,找到弱点绕过检测,作为守方,需要不断加强安全检测和防御能力,有效的发现和抵御Web攻击。
需要学习当下主流的WAF软件所采用的架构比如openresty、modsecurity,以及主要的几种检测算法:基于特征的、基于行为的、基于机器学习的等等。
网络协议攻击 & 入侵检测
WAF主要针对的是Web相关的安全攻击,到这一小节,将视野进一步拓展到整个网络协议栈,TCP劫持、DNS劫持、DDoS攻击、DNS隧道、ARP欺骗、ARP泛洪等等,需要掌握这些传统经典攻击手段的原理,搭建环境实践,为后续的内网渗透打下基础。
另外作为防守的一方,还需要学习通过网络流量分析技术来进行安全检测,了解常用的网络分析技术,检测框架,规则语法,对以后从事安全相关开发或安全防御工作进行储备。
日志技术
通过日志来发现攻击行为是一种最常见的行为,攻击者的Web请求,系统登录,暴力破解尝试等等都会被系统各种软件记录在案,攻击者得手后也经常会抹除相关的日志记录,所以学习掌握这些日志,是攻防两队的人都需要学习的技能。
常见的日志有系统登录日志(Windows、Linux)、Web服务器日志、数据库日志等等。
Python编程
在这个阶段,是时候来学习一些Python编程开发了。虽然网络安全不用经常做大量的工程开发,但掌握基本的编程能力,可以用来编写爬虫、数据处理、网络扫描工具、漏洞POC等等,都是非常有用的,而众多编程语言中,Python无疑是最适合的。
浏览器安全
这个阶段的最后一部分,来学习了解一些浏览器侧的安全知识,夯实Web安全中与浏览器相关的漏洞攻击。
需要重点掌握IE、Chrome两款最主流的浏览器特性,浏览器的沙盒机制是什么,同源策略和跨域技术等等。
铂金(化神期)
第三方组件漏洞
前面Web安全相关的攻击都是一些很多年的经典手法了,经过多年的发展已经相当成熟,相关的漏洞早已不如以前多,现在很多时候的攻击,都是依靠各种各样的第三方组件漏洞完成的,所以学习研究这些常见第三方组件的漏洞,一方面掌握这些攻击手法用于实战中使用,另一方面触类旁通,对从事漏洞挖掘的工作也是非常有帮助的。
研究的对象主要涵盖目前互联网服务中实际使用的一些工程组件,比如Java技术栈系列Spring全家桶、SSM、Redis、MySQL、Nginx、Tomcat、Docker等等。
内网渗透
网络渗透中,攻下一个点后,只是一个开始,攻入以后如何转移,控制更多的节点,是内网渗透研究学习的范畴。典型的如当年的永恒之蓝病毒,通过SMB协议漏洞,快速扩散传播,造成了大面积的中招。
内网渗透中要学的东西既多且杂,难度要上升不少,但这是做网络渗透的非常重要的一块儿,必须多啃一啃。这一部分理论较少,偏实战性多一些,需要多搭建环境模拟学习。
操作系统安全技术 & 提权技术 & 虚拟化技术
通过web等手段渗透进入计算机后,由于各种限制原因,经常会有提权的需求,还会涉及到许多跟操作系统安全机制紧密相关的内容,所以学习一些操作系统的安全知识也是非常有必要的。
像Windows、Linux上各自的权限管理机制,提权方法和常用的漏洞,工具等等。
最后,再学习一些虚拟化技术相关的知识,应对可能需要从虚拟机中逃逸的场景。
王者(飞升!)
CobalStrike & MetaSploit
搞网络渗透,这两个神器是绝对少不了的。前面学习的信息扫描、漏洞攻击、内网渗透、木马植入、端口反弹等等各种技术,都可以通过这两个神器进行综合运用,融会贯通。同时,这两个也是各大黑客团队经常使用的工具软件。
学习使用这两个神器,将大大提升攻击效率,是网络渗透人员居家旅行必备之选!
其他安全技术拓展
到了网络渗透的后期阶段,想成为一个安全高手,绝不只是固步自封在自己擅长的领域,需要多学习网络安全的其他领域,拓展自己的知识面。
比如二进制漏洞攻击、逆向工程、木马技术、内核安全、移动安全、侧信道攻击等等,当然在学习的时候,不用像专业方向的同学那么深入,但需要涉猎了解,丰富自己的知识面,构建全方位的网路安全知识技能栈。
学习资源分享
如果你想真正在网络安全这个行业深耕下去,简单列举一下书单中的内容,如果大家有什么比较好的想法,欢迎评论区交流!
计算机及系统原理
《编码:隐匿在计算机软硬件背后的语言》 【美】Charles Petzold·
《深入理解计算机系统》【美】Randal E.Bryant·
《深入理解Windows操作系统》【美】Russinovich,M.E.;Solomon,D.A.·
《Linux内核设计与实现》【美】Robert Love·
《深入理解Android内核设计思想》林学森·
《Android系统源代码情景分析》罗升阳·
《深入理解Mac OS X & iOS操作系统》【美】Jonathan Levin·
《深入理解Linux内核》 【美】DanielP.Bovet·
《代码揭秘:从C/C++的角度探秘计算机系统》左飞·
《Android Dalvik虚拟机结构及机制剖析(第1、2卷)》吴艳霞;张国印·
《Android Internals::Power User’s View》【美】Jonathan Levin,中译本
《最强Android书:架构大剖析》
编程开发
系统平台
Windows
《Windows程序设计》【美】Charles Petzold·
《Windows核心编程》【美】Jeffrey Richter·
《Windows环境下32位汇编语言程序设计》罗云彬·
《Windows驱动开发技术详解》张帆
Linux/Unix
《UNIX环境高级编程》【美】W.Richard Stevens;Stephen A.Rago·
《Linux程序设计》【美】Neil Matthew;Richard Stones·
《Linux设备驱动程序》【美】Jonathan Corbet;Alessandro Rubini;Gerg Kroah-Hartman
macOS/iOS
· 《iOS编程》【美】Christian Keur;Aaron Hillegass
· 《OS X与iOS内核编程)【澳】Halvorsen,O.H.;Clarke,D
Android
· 《第一行代码——Android》郭霖
· 《Android编程权威指南》【美】Brian Hardy;BillPhillips
编程语言C
《C语言程序设计》【美】Brian W.Kernighan;Dennis M.Ritchie·
《C Primer Plus》【美】Stephen Prata,入门书籍·
《C和指针》【美】Kenneth A.Reek·
《C陷阱与缺陷》【美】Andrew Koenig·
《C专家编程》【美】Peter van der Linden
C++
· 《C++ Primer Plus》【美】Stephen Prata,入门书籍
· 《C++ Primer》【美】Stanley B.Lippman;Josée Lajoie;Barbara E.Moo,进阶书籍
ASM
· 《Intel汇编语言程序设计》【美】Kip Irvine
· 《Intel开发手册》
· 《汇编语言(第3版)》王爽
· 《x86汇编语言:从实模式到保护模式》李忠
Java
· 《Java核心技术》【美】Cay S.Horstmann;Gary Cornell,入门书籍
· 《Java 编程思想》【美】Bruce eckel,进阶书籍
JavaScript
· 《JavaScript DOM编程艺术》【美】Jeremy Keith;【加】Jeffrey Sambells
· 《JavaScript高级程序设计》【美】Zakas.Bicholas C.
· 《Vue.js项目开发实战》张帆
Python
· 《Python核心编程(第2版)》【美】Wesley J·Chun
Shell
· 《Linux Shell脚本攻略》【印】Sarath Lakshman
调试技术
· 《软件调试》张银奎
· 《Debug Hacks》【日】吉冈弘隆;大和一洋;大岩尚宏;安部东洋;吉田俊辅
· 《格蠹汇编:软件调试案例锦集》张银奎
数据结构与算法
《数据结构与算法分析——C语言描述》【美】Mark Allen Weiss·
《算法导论》【美】Thomas H.Cormen;Chales E.Leiserson;Ronald l.Rivest·
《我的第一本算法书》【日】宫崎修一;石田保辉,入门书籍,无代码进行图解·
《算法图解:像小说一样有趣的算法入门书》【美】Aditya Bhargava
编译原理
· 《编译系统透视:图解编译原理》新设计团队,入门书籍
· 《编译原理》(龙书)【美】Alfered V.Aho;Monica S.Lam;Ravi Sehi;Jeffrey D.Ullmam
· 《编译与反编译技术实战》庞建民
其他
· 《编程高手箴言》梁肇新
· 《代码整洁之道》【美】Robert C.Martin
· 《代码大全》【美】Steve McConnell
· 《重构:改善既有代码的设计》【美】Martin Fowler
网络技术
· 《TCP/IP详解(卷1:协议)》【美】Kevin R.fall;W.Richard Stevens
· 《Wireshark数据包分析实战》【美】Chris Sanders
安全技术
安全开发
《天书夜读:从汇编语言到Windows内核编程》谭文;邵坚磊·
《Rootkit:系统灰色地带的潜伏者》【美】Bill Blunden·
《Rootkits——Windows内核的安全防护》【美】Gerg Hoglund;James Butler·
《BSD ROOTKIT设计——内核黑客指引书》【美】Joseph Kong·
《寒江独钓:Windows内核安全编程》谭文;杨潇;邵坚磊
逆向工程
《加密与解密》段钢·
《恶意软件分析诀窍与工具箱——对抗“流氓”软件的技术与利器》【美】Michael Hale Ligh;Steven Adair·
《C++反汇编与逆向分析技术揭秘》钱林松;赵海旭·
《IDA权威指南》【美】Chris Eagle·
《逆向工程权威指南》【乌克兰】Dennis Yurichev,多平台入门大全·
《Android软件安全与逆向分析》丰生强·
《macOS软件安全与逆向分析》丰生强·
《iOS应用逆向工程(第2版)》沙梓社;吴航
Web安全
《黑客攻防技术宝典:Web实战篇》【美】Marcus Pinto,Dafydd Stuttard·
《白帽子讲Web安全》吴翰清·
《Web安全测试》【美】Paco Hope;Ben Waltber·
《Web前端黑客技术揭秘》钟晨鸣;徐少培·
《精通脚本黑客》曾云好
软件/系统安全
《0day安全:软件漏洞分析技术(第2版)》王清,入门书籍·
《漏洞战争:软件漏洞分析精要》林桠泉,进阶书籍·
《捉虫日记》【德】Tobias Klein,进阶书籍·
《黑客防线2009缓冲区溢出攻击与防范专辑》·
《内核漏洞的利用与防范》【美】Enrico Perla;Massimiliano Oldani·
《Fuzzing for Software Security Testing and Quality Assurance(第2版)》【美】Charlie
Miller,博文视点翻译中·
《iOS Hackers’s Handbook》【美】Charlie Miller,不推荐中文版·
《The Mac Hacker’s Handbook》【美】Charlie Miller·
《Android安全攻防权威指南》【美】Joshua J.Drake;【西】Pau Oliva Fora;【美】Collin Mulliner·
《The Art of Softwar Security Assessment:Identifying and Preventing Software
Vulnerabilities》【美】Mark Dowd·
《Android Security Cookbook》【美】Keith Makan; Scott Alexander-Bown,中译本
《Android安全攻防实战》·
《模糊测试-强制性安全漏洞挖掘》【美】Michael Mutton·
《Exploit编写系列教程》【美】Corelan Team·
《MacOS and iOS Internals,Volume Ⅲ: Security & Insecurity》【美】Jonathan
Levin,博文视点翻译中·
《灰帽黑客:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术》【美】Allen Harper;Shon harris·
《威胁建模:设计和交付更安全的软件》【美】Adam Shostack
无线电安全
《无线电安全攻防大揭秘》杨卿;黄琳
硬件安全
《硬件安全攻防大揭秘》简云定,杨卿
汽车安全
《智能汽车安全攻防大揭秘》李均;杨卿· 《汽车黑客大曝光》【美】Craig Smith
运维
《Docker技术入门与实战》杨保华;戴王剑;曹亚仑·
《鸟哥的Linux私房菜》鸟哥
大部分网络安全学习技术资料已经为大家搜集整理好了,因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
接下来我将给各位同学划分一张学习计划表!
学习计划
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
阶段一:初级网络安全工程师
接下来我将给大家安排一个为期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】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。
学习网络安全技术的方法无非三种:
第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。
第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
第三种就是去找培训。
接下来,我会教你零基础入门快速入门上手网络安全。
网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。
第一阶段:基础准备 4周~6周
这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
第二阶段:web渗透
学习基础 时间:1周 ~ 2周:
① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
配置渗透环境 时间:3周 ~ 4周:
① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。
渗透实战操作 时间:约6周:
① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
以上就是入门阶段
第三阶段:进阶
已经入门并且找到工作之后又该怎么进阶?详情看下图
给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
![](https://img-blog.csdnimg.cn/img_convert/34057e9fbaa6cece948a8e035db5c179.jpeg)