1、计算机基本常识
了解计算机基本常识,常用软件使用。
2、C语言基础
学习基础的C语言,不管是否是编程方向,我觉得都有必要了解一些C语言,会编写简单的C程序代码。
3、数据结构
开发方向的同学必学,其他方向的同学也可以适当了解。
在C语言学习到一定阶段后,可以开始了解数据结构,它和C语言相辅相成,可以说在我们学习C语言的后期,很好的对我们C语言知识进行了整理。
4、Web安全基础
了解web应用的各种常见漏洞(知道是什么,如何形成):SQL注入、XSS、CSRF、上传漏洞、解析漏洞、任意文件包含漏洞、 点击劫持、弱口令、cookie欺骗等, 会使用一些常用入侵检测工具和辅助工具,并入侵一些安全系数较低的web应用。了解关于web安全的周边知识。
5、常用Windows命令
做渗透的同学,尤其需要首先学习一些常用的windows命令(最好在实战中边运用边练习),特别是入侵检测是常用命令,如net user、net localgroup、net use、net share、net start、arp、whoami、regedit、tasklist、find、cp、mkdir、del、dir、print……
提高:能写一些批处理脚本,完成一些重复性任务
6、一门脚本语言
对于做渗透测试方向的同学尤为重要,对于做开发的同学也可以学习一门脚本语言。我推荐的是python或php,学习python可以快速开发出一些有针对性的脚本,而学习php可以尝试进行web漏洞的挖掘。
7、Linux使用
学习渗透的同学在这段时间又能分为两条路,一是web安全,二是内网渗透。web安全偏重于web应用漏洞挖掘和利用,内网渗 透偏重于网络环境的分析、内网计算机的漏洞利用。内网中大部分重要计算机属于Linux,所以学会Linux基础的使用,Linux各种服务的搭建、维护、漏洞利用修补是必须的。
8、Windows编程
在数据结构学习完成之后,我觉得就是一个分水岭了。做渗透方向的就不必继续深入Windows编程,大可继续积累网络安全经验,但开发、逆向的同学就需要学习windows编程了。
Windows编程无非就是阅读MSDN,熟悉每个windowsAPI的用法,平时想到的好点子可以尝试写成程序,增加自己的代码量积 累。
9、Web安全积累期
其实积累是一个长期的过程,所以也不分期限的。平时可以在如90、法客、土司、乌云、习科之类的安全社区和大家一起讨论, 多关注最新的技术、漏洞,平时注意搜集每个漏洞的成因、利用方法、修补方法,并尝试在网上寻找实战的机会。这段时间还可以学点脚本语言,当掌握了一门顺手的脚本语言后就能更快速、更便捷地做很多针对性的攻击。
10、汇编语言
汇编也是一门基础课程,对以后的逆向破解、漏洞挖掘、木马免杀的学习都有直接影响,在windows编程的学习期间可以开始学 习汇编。大概了解16位的汇编语言,知道基本语法,重点在32位汇编的学习上。学习汇编语言可以结合自己写的C程序,将自己写好的程 序调试,单步调试每一句汇编语言,不懂就查。
11、逆向破解
在汇编基本语法学习完毕后,可以选择性地开始学习逆向、破解相关操作。在学习逆向的过程中就可以熟悉之前学习的汇编指令的使用
12、木马免杀
在逆向学习完成后,又可以分为几个小方向:深入破解、exploit、木马免杀。能够自己编写木马后,最需要的就是免杀。
如果编写的病毒木马不能运行,也无济于事。免杀成功与否是运气、经验、灵感、技 术、耐心的集合体,缺一不可。所以虽然很多人尝试学习,但最后真正能做到完美的人并不多
13、网络环境利用与Win服务器
网络环境利用与win服务器 在Linux基础学习到一定程度后,可以开始学习网络,如何利用内网内各种计算机开启的各种服务,来达到渗透进目标机器的目 的。当然,同时也要学习Windows服务器的使用,了解什么是域,如何在windows环境下使用各种服务。因为一个大内网下一般个人 机、目标机是windows系统。
14、Exploit二进制漏洞
在逆向学习完成后,又可以分为几个小方向:深入破解、exploit、木马免杀。其中Exploit对技术要求较高,回报也最丰厚,所以是很多大牛集结之地。学习exp需要对C、C++有牢固的基础,并有一双发现问 题的眼睛。在他人眼中可能只是一个软件崩溃或错误信息,在exper眼里就可以是无穷无尽的财富。
15、Windows核心编程
在Windows编程学习到一定程度后就可以开始核心编程,其实二者并无太大区别,只是核心编程更加偏重windows内核的一些机 制。当你的技术不仅限于开发桌面应用以后,木马、病毒这些更接近系统底层的东西既可以满足要求。