渗透测试的八个步骤

2024-02-28 13:58
文章标签 步骤 测试 渗透 八个

本文主要是介绍渗透测试的八个步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

什么是渗透测试?

其实很多安全漏洞都属于Web应用漏洞,这些Web漏洞可以通过渗透测试验证。渗透测试是利用模拟黑客攻击的方式,评估计算机网络系统安全性能的一种方法。这个过程是站在攻击者角度对系统的任何弱点、技术缺陷或漏洞进行主动分析,并且有条件地主动利用安全漏洞。 渗透测试并没有严格的分类方法,即使在软件开发生命周期中,也包含了渗透测试的环节,但是根据实际应用,普遍认为渗透测试分为黑盒测试、白盒测试2类,其中黑盒测试中,渗透者完全处于对系统一无所知的状态,而白盒测试与黑盒测试恰恰相反,渗透者在完全了解程序结构的情况下进行测试。但是不管采用哪种测试方法,渗透测试都具有以下特点。

(1)渗透测试是一个渐进的并且逐步深人的过程。

(2)渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。

渗透测试步骤

渗透测试遵循软件测试的基本流程,但由于其测试过程与目标的特殊性,在具体实现步骤上渗透测试与常见软件测试并不相同。渗透测试流程主要包括8个步骤,如下图所示:

图片来自 黑马程序员官网

下面结合上图介绍每一个步骤所要完成的任务。

(1 )明确目标

当测试人员拿到需要做渗透测试的项目时,首先确定测试需求,如测试是针对业务逻辑漏洞,还是针对人员管理权限漏洞等;然后确定客户要求渗透测试的范围,如IP段、域名、整站渗透或者部分模块渗透等;最后确定渗透测试规则,如能够渗透到什么程度,是确定漏洞为止还是继续利用漏洞进行更进一步的测试,是否允许破坏数据,是否能够提升权限等。 在这一阶段,测试人员主要是对测试项目有一个整体明确的了解,方便测试计划的制订。

(2)收集信息

在信息收集阶段要尽量收集关于项目软件的各种信息。例如,对于一个Web应用程序,要收集脚本类型、服务器类型、数据库类型以及项目所用到的框架、开源软件等。信息收集对于渗透测试来说非常重要,只有掌握目标程序足够多的信息,才能更好地进行漏洞检测。

信息收集的方式可分为以下2种。

①主动收集:通过直接访问、扫描网站等方式收集想要的信息,这种方式可以收集的信 息比较多,但是访问者的操作行为会被目标主机记录。

②被动收集:利用第三方服务对 目标进行了解,如上网搜索相关信息。 这种方式获取的 信息相对较少且不够直接,但目标主机不会发现测试人员的行为。

(3)扫描漏洞

在这一阶段,综合分析收集到的信息,借助扫描工具对目标程序进行扫描,查找存在的安全漏洞。

(4)验证漏洞

在扫描漏洞阶段,测试人员会得到很多关于目标程序的安全漏洞,但这些漏洞有误报,需要测试人员结合实际情况,搭建模拟测试环境对这些安全漏洞进行验证。被确认的安全漏洞才能被利用执行攻击。

(5)分析信息

经过验证的安全漏洞就可以被利用起来向目标程序发起攻击,但是不同的安全漏洞,攻击机制并不相同,针对不同的安全漏洞需要进一步分析,包括安全漏洞原理、可利用的工具、目标程序检测机制、攻击是否可以绕过防火墙等,制订一个详细精密的攻击计划,这样才能保证测试顺利执行。

(6)渗透攻击

渗透攻击就是对目标程序发起真正的攻击,达到测试目的,如获取用户账号密码、截取目标程序传输的数据、控制目标主机等。一般渗透测试是一次性测试,攻击完成之后要执行清理工作,删除系统日志、程序日志等,擦除进人系统的痕迹。

(7)整理信息

渗透攻击完成之后,整理攻击所获得的信息,为后面编写测试报告提供依据。

(8)编写测试报告

测试完成之后要编写测试报告,阐述项目安全测试目标、信息收集方式、漏洞扫描工具以及漏洞情况、攻击计划、实际攻击结果、测试过程中遇到的问题等。此外,还要对目标程序存在的漏洞进行分析,提供安全有效的解决办法。

转自:http://test.itheima.com

这篇关于渗透测试的八个步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/755703

相关文章

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

MySQL设置密码复杂度策略的完整步骤(附代码示例)

《MySQL设置密码复杂度策略的完整步骤(附代码示例)》MySQL密码策略还可能包括密码复杂度的检查,如是否要求密码包含大写字母、小写字母、数字和特殊字符等,:本文主要介绍MySQL设置密码复杂度... 目录前言1. 使用 validate_password 插件1.1 启用 validate_passwo

springboot整合mqtt的步骤示例详解

《springboot整合mqtt的步骤示例详解》MQTT(MessageQueuingTelemetryTransport)是一种轻量级的消息传输协议,适用于物联网设备之间的通信,本文介绍Sprin... 目录1、引入依赖包2、yml配置3、创建配置4、自定义注解6、使用示例使用场景:mqtt可用于消息发

Java实现TXT文件导入功能的详细步骤

《Java实现TXT文件导入功能的详细步骤》在实际开发中,很多应用场景需要将用户上传的TXT文件进行解析,并将文件中的数据导入到数据库或其他存储系统中,本文将演示如何用Java实现一个基本的TXT文件... 目录前言1. 项目需求分析2. 示例文件格式3. 实现步骤3.1. 准备数据库(假设使用 mysql

MySQL进行分片合并的实现步骤

《MySQL进行分片合并的实现步骤》分片合并是指在分布式数据库系统中,将不同分片上的查询结果进行整合,以获得完整的查询结果,下面就来具体介绍一下,感兴趣的可以了解一下... 目录环境准备项目依赖数据源配置分片上下文分片查询和合并代码实现1. 查询单条记录2. 跨分片查询和合并测试结论分片合并(Shardin

MySQL配置多主复制的实现步骤

《MySQL配置多主复制的实现步骤》多主复制是一种允许多个MySQL服务器同时接受写操作的复制方式,本文就来介绍一下MySQL配置多主复制的实现步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 环境准备2. 配置每台服务器2.1 修改每台服务器的配置文件3. 安装和配置插件4. 启动组复制4.