自从《我的黑客世界》系列视频分享以来,陆续收到同学们的私信,请教黑客技术入门需要学习什么语言?学习哪些学科?怎么学等问题,所以,为了解答各位同学心中的疑惑,咱们这一期就做一个答疑视频,向各位同学分享下我的学习路线和学习心得。 我分享的不一定是最高效、最好的学习方法,但是,肯定是我心中最真实的经历和想法。建议大家抱着参考的心态,来观看这一期视频。
话不多说,咱们开始吧!
经验分享
原本打算是自己画图来总结自己的学习路径的,后来在网络上参考资料的时候看到 A1Pass 大佬多年前分享的学习流程图,经过与自己的学习路线对比后,基本上是吻合的。所以,我就以这个流程图为基础,向大家分享下。
黑客技术可以简单分为两个大方向:网络渗透和二进制。如图左边的就是网络渗透方向的学习路线,右边是二进制的学习路线。
网络渗透方向
咱们先来介绍下网络渗透方向的学习:
学习一门技术,最先要学习的就是它们对应的语言了。网络渗透主要涉及对网页、服务器等网络服务进行攻防,所以对于web编程是必不可少的,html+js+css是基础,java、php都是目前比较主流的web开发语言,所以都要熟练掌握,Python脚本语言。
web编程总免不了要和数据库打交道,而且数据库也是网络攻防的重点战场,所以要熟练掌握SQL脚本语言,起码要会写增、删、改、查的SQL语句。
语言入门后,就可以学习掌握各种网络环境的搭建,网络安全策略的配置,例如服务器的搭建、网站的部署、安全策略的配置;熟练掌握Nginx、Apache的使用。
特别,需要熟练计算机网络,报文的抓取、分析,了解各种通信协议。
这些开发基础掌握之后,就可以进入到渗透技巧的学习了:熟练掌握各种攻击工具和攻击技巧原理,例如Nmap、BurpSuit、WireSharp、Metasploit,特别是Metasploit,它是一个非常有用的开源渗透框架,里面内置了很多漏洞利用代码和攻击Payload,很方便你进行实践操作。
渗透方向的入门学习相对来说比较容易一些,一是它主要学习的是脚本语言,学习难度不大;二是在实践时候有很多辅助工具可以利用,自动化程度很高;有的黑客再进行渗透时候,甚至可以不用写一行代码,直接使用工具先进行漏洞扫描,然后再利用工具进行漏洞利用,直接就入侵完成了。
二进制方向
接下来咱们介绍下二进制方向:
相对渗透来说,二进制方向的内容学习会多很多,那是因为二进制的方向涉及的范围实在太广了,只要有软件的地方,就有它的身影。
编程语言上主要学习汇编语言、C、C++,因为逆向反汇编免不了要阅读汇编代码,病毒木马为了文件体积更小、实现更灵活所以在Windows上主要使用C/C++开发;
看过《分析病毒木马的9种工具》、《概括病毒木马的8大功能模块》和《病毒木马迄今最隐蔽的通信方法》这3个视频的同学,就会理解为何要学习TCP/IP协议栈、PE文件结构、Windows编程、内核编程了,因为这是开发、分析病毒木马的必备技术。
大家注意下这里,学习是有先后顺序的:
掌握好C、C++语言后,就可以进行简单的Windows编程,掌握好Windows变成后,就可以开始学习内核编程
掌握好TCP/IP协议栈后,就可以进行通信封包分析了
掌握好汇编和PE结构之后,就可以进行ShellCode的开发和逆向分析了
那剩下的就是积累各种开发技巧、攻击技巧了。
总结
好了,咱们的入门学习就分享到这里。总的来说,就一个字——“练”!计算机的学习很简单,就是动手、踏实地练,坚持一两年,你的技术水平就会脱胎换骨了!追求卓越,成功就会不经意间追上你!
视频链接和公众号
视频链接
https://www.bilibili.com/video/BV1b34y157La