Skip to main content

渗透测试基础(从0到1)


什么是渗透测试?

渗透测试就是模拟真实黑客的攻击手法对目标网站或主机进行全面的安全评估,与黑客攻击不一样的是,渗透测试的目的是尽可能多地发现安全漏洞,而真实黑客攻击只要发现一处入侵点即可以进入目标系统。

一名优秀的渗透测试工程师也可以认为是一个厉害的黑客,也可以被称呼为白帽子。

一定要注意的是,在进行渗透测试前,需要获得目标客户的授权,如果未获得授权,千万不要对目标系统进行渗透测试,后果请查看《网络安全法》open in new window。同时要有良好的职业操守,不能干一些违法的事情。

渗透测试的前置技能

学习渗透测试其实最重要的是有兴趣,要有一颗好奇的心,一个对知识渴望的心,以及足够的毅力,这样可以支撑我们在这条道路上不断学习。

当然,学渗透测试还是有点门槛的,如果是计算机专业的人,可以轻松上手,在一两个月内入门。如果是其它专业的,或者是电脑小白,那么还是比较有难度的,但是也不用担心,我身边有很多大牛都是零基础入行的,甚至还有学医的朋友,所以兴趣还是最重要的。

渗透需要的基本前置知识:

网络协议:
HTTP协议基础知识。HTTP协议属于计算机网络的知识,因为渗透测试基本是对网站的请求数据进行修改,查找漏洞,所以了解HTTP协议请求的格式是必不可以的。

Windows 系统:
会使用 cmd 命令行窗口执行一些常见的命令,按 win + R 键,输入 cmd 回车,可以打开cmd 窗口。

Linux 系统:
由于很多渗透获得的目标权限是Linux,所以我们要会使用 Linux 系统,可以通过 VMWare 虚拟机软件安装 Ubuntu linux 虚拟机来练习使用,也可以直接安装 Kali Linux 来练习。

前面说的是一些基本知识,下面是一些可选知识,没有这些知识也可以做渗透测试,只是局限性会比较大。

编程语言:
python 编程语言: 作为一个脚本小子,会 python 语言可以帮助我们开发一些工具减轻平时的工作量,用 python 来做一些重复性的工作,如自动化信息收集,最重要的是可以写一些漏洞利用工具。

Java/PHP 编程语言: 渗透测试大部分时间都是对网站进行操作,这些网站大多数是使用 Java 或 PHP 语言开发的,有些是使用一些开源的系统进行二次开发的,我们可以对这些开源的系统进行代码审计,直接从代码中发现漏洞。

计算机网络基础:
计算机网络的各层 + 其协议的集合,那么对于渗透你应该正确的区分内网外网,以及你在渗透中遇到的各种系统使用的各种协议,了解他们的工作原理,可以让你对相应的漏洞理解的更加深刻。

善于探索+独立思考+智慧提问?

善于探索、独立思考是一种终生学习的态度,是成就自己、推动社会进步的重要能力。希望每个人都能在日常生活中注重培养这些能力,不断提升自己,成为更加优秀和有影响力的个体。

对于智慧提问:

在技术的世界里,当你拋出一个技术问题时,最终是否能得到有用的回答,往往取决于你所提问和追问的方式。

可以参阅文章:提问的智慧open in new window