渗透测试是一种利用模拟黑客攻击的手段,来评估生产系统的安全性能,用黑客惯用的破坏攻击方式,行的却是维护安全之事,也就是大家所说的白帽黑客。白帽黑客通常受雇于各大公司,是维护网络与计算机安全的主要力量。关于黑客的理解,应该是执着于对计算机技术的研究,并不是去恶意攻击、破坏别人的系统。接下来我简单介绍一下学习路径。
在开始学习渗透测试的时候,需要掌握各种常见的黑客术语,也就是行话。我罗列如下术语,需要逐个学习并掌握相关知识:木马、肉鸡、后门、挂马、弱口令、IPC$、rootkit、shell、默认共享、注入、溢出、端口、加壳、免杀、花指令。术语绝不只有列出的这几个,需要在学习的过程中逐渐积累。
了解好黑客术语后,你还需要阅读一些相关攻防类的书,了解一些渗透技术和技巧。在阅读完一些书籍后,应该对黑客技术和渗透技术有了大致的了解,现在最快的学习捷径就是勤与思。勤就是多加练习,如果通过看书对理论有一定的理解后,但在个人实战中是一种懵的状态,这时就应该边学习边实战,不能光学不练,纸上谈兵。思就是要勤于思考,要对常见的漏洞有自己的见解,不能让自己的思维被现有的技术束缚住。
接下来要开始学习常见渗透工具的使用。需要注意的是这绝不是一些无脑的抓鸡、远控软件的使用方法,使用这些软件充其量是个脚本小子,对自己的技术发展没有任何帮助。所以需要系统的学习,常见的安全工具如下:AWVS、Burp suite、Beef-XSS、Hydra、Medusa、sqlmap、Metasploit、Nessus、wireshark等,这些是比较知名的渗透工具,当学完这些后还要再学习了解其他工具。
接下来应该进入了一个瓶颈,就是Linux。因为大多数工具都是在Linux平台上,所以系统的学习Linux也是必经之路。在系统的选择上有Kali Linux Parrot OS Arch Linux等较知名的一些渗透系统。其中Kali是使用最广泛的一种。Kali Linux是基于Debian的Linux发行版,它的前身是BackTrack。Kali Linux预装了许多渗透测试软件,并且还有基于ARM架构的镜像,可用于树莓派等硬件平台。它还有一些特点,比如单用户root权限方案,允许用户按照各种包,支持大量无线设备等。Linux中要学习的内容是很多的,需要系统的学习,例如基础的Linux命令、编辑器与shell脚本、用户与文件权限、各个服务的搭建与管理Linux网络编程等等,其中有很大的学问,Linux和Windows相比,其底层逻辑有很多是不同的,比如文件系统与权限等细节,学习Linux对理解系统底层逻辑有很大的帮助。在此推荐一本书《Linux就该这么学》,这本书有个非常大的好处就是废话少,技术很实用,并且他是以图文并茂的形式展示出来的,可以让我们很好的跟着书本去进行实操,要知道理论与实际总是会有不小的出入,而这本书便可以帮助我们很好的去完成实操。
当学习完Linux后,便可以开始学习一些编程相关的知识了,因为一个黑客都至少掌握2种或多种编程语言,如果是没有编程基础的话,我推荐通过Python语言来入门。因为Python这个语言代码简短,小白比较容易理解,比如C语言的代码写一个hello world需要5-6行,而Python只需要1行,现阶段各个大学也有把Python作为学生入门语言的趋势。当学完了Python后可以再去学习一下C语言或者Java,你学会了一门语言后是会有基础的,而且语言都是一通互通,所以你学完Python之后再去学C应该不会有多难了,有必要的时候你也可以编写一款自己的黑客或渗透工具。在此基础下,也要学习一定的网络知识,这也是很重要的,渗透过程中必不可少会碰到二层和三层设备,要了解其中的原理。
整套学完后,对渗透测试也算是勉强一入门了,在后期的学习过程中可以学习一些0day挖掘技术,用以提升自己的技能水平,看一些安全书籍,关注安全圈动态,如:Freebuf、tools论坛、看雪论坛等等这些比较著名的技术论坛,学习千万不要闭门造车。有机会的话还可以研究一下对于网站和服务器安全狗、云锁等一些防护软件的绕过,现在市面上有的大多数都被安全狗屏蔽掉了,所以如果自己有充足的时间的话可以自己去研究一下。