细说渗透测试:阶段、流程、工具和自动化开源方案

不知有多少“曾梦想仗剑走天涯”的网络与信息安全从业者,是因为渗透测试的初心而步入这个行业的。不过,您是否对渗透测试及其漏洞扫描的相关概念感到既熟悉又陌生呢?您是否觉得自己还停留在从工作实践中积累的感性认识呢?下面,我们将为您梳理渗透测试的各个实施阶段,流程示例,典型工具,以及自动化开源方案。

渗透测试的阶段

从概念上说,渗透测试是一种通过模拟“友好的”黑客,来识别和利用安全漏洞的过程。作为一种标准化的系统性方法,它旨在提高目标系统与组织的安全态势。如下图所示,渗透测试往往从规划和收集信息开始,根据目标需求的不同,或是以报告发现到的漏洞、或是以保持访问控制作为结束。

渗透测试的各个阶段

规划与侦察

计划阶段旨在获取目标的所有相关信息,例如通过网络钓鱼攻击捕获详细的技术数据。这些细节方面的信息,对于后续过程的开展,起到了至关重要的影响。

而侦察阶段主要是通过主动和被动两种基本方法,收集大量的基本数据。其中,主动侦查很容易引起目标组织的注意;而被动侦察则以更加隐蔽、难以识别的方式间接收集信息。不过,相比被动方法的复杂与耗时,主动方法虽不够细致,但效率更高。

扫描

扫描阶段的主要目的是以最小的被发现代价,深入挖掘目标,收集有价值的信息,如同从一堆乱七八糟的物品中筛选出隐藏的宝石。例如,针对Web应用,我们可以扫描CSRF潜在漏洞和XSS端点等。定位入侵点后,我们便可以调查该端口上运行的服务类型,进而判定其是否存在防火墙或WAF。下图展示了可开展的多种扫描类型。

各种扫描类型

作为渗透测试的重要一环,漏洞扫描往往被细化为分析评估数据,通过逆向工程研究漏洞和错误的成因。通常,漏洞扫描与评估需要我们投入大量的时间和精力,以了解不同信息之间的相互关系,进而准确地发现可能被利用的入侵点。当然,像exploit-db之类的在线数据库,可以为我们提供针对CVE的可利用漏洞列表,以及相关的PoC代码及其详细信息。

利用和获取访问

一旦发现可被利用的漏洞,攻击者需要尽快谨慎地利用漏洞,对目标系统予以非法访问。其中,最常见的莫过于使用远程代码执行(RCE)和后门。作为最危险的漏洞类型,RCE漏洞往往表现对输入与输出缺乏检查,以及存在可被篡改的代码逻辑。后门则有两类:自定义后门通常与欺骗目标下载恶意文件有关,而错误配置的后门则开放了开发者的隐蔽访问模式。

报告和控制

作为一名道德黑客,渗透测试的最后往往是撰写报告。在报告中,您需要阐述采取的步骤、发现的问题、可利用的漏洞、面临风险的资产、以及取得的成果等。这些有价值的信息可以协助组织确定针对攻击预防的优先级,从而有的放矢。

渗透测试的流程

在不断变化的网络威胁领域,我们有必要根据上述不同的实施阶段,为渗透测试创建一套能够轻松集成各种工具的工作流程。例如,我们可以首先使用Amass收集Web应用系统的子域地址,接着利用DnsDumpster提取IP地址,或使用regex来提取诸如URL、IP、端口等必要的数据,然后通过Nmap进行基于脚本的漏洞分析。下图展示了一个典型的渗透测试流程模型:

流程模型示例

该流程的特点是能够合理地整合各个测试工具之间的关联,让一种工具的输出能够影响另一种工具的配置,从而使得针对Web应用的枚举流程更加流畅和简化。当然,随着时间的推移、威胁的演化、以及Web环境的复杂化,安全专家需要通过持续关注细节和积累实战经验,来不断修订和完善该测试流程。

渗透测试的工具

显然,渗透测试离不开工具的使用。让我们来试想一位安全专家被要求对某个Web应用开展渗透测试。那么他会根据自己的工作经验开展如下工作:

选用Python作为自动化脚本的基础,开发各种工作流。

通过Sublist3r使用开源网络情报(OSINT),来枚举和收集目标Web的子域。

通过Nmap使用Sublist3r的输出结果,对发现的子域进行有针对性的扫描,以了解开放的端口和网络服务等攻击面。

以Nmap扫描结果为基础,配置Burp Suite,查找SQL注入和跨站脚本等常见漏洞。

以Burp Suite扫描到的漏洞为指导,通过Dirb枚举目标应用目录和文件,以查找Web服务器上的隐藏资源。

参照Dirb的发现,使用Nikto进行更全面、更深入的漏洞分析,总结出Web服务器上的已知漏洞、错误配置、以及过时的软件版本,并形成有关安全风险的综合报告。

典型工具的综合运用

随着网络安全威胁的不断变化,渗透测试工具也应持续迭代、与时俱进。以Metasploit为代表的漏洞利用平台与框架不但能够提供友好的用户界面,而且可以支持更广泛的漏洞类型,为安全专家提供直观、高效的自动漏洞利用执行流程。目前,整合威胁情报信息已成为一项标准功能。有的工具甚至采用了人工智能和机器学习等技术,来提高对于新型网络威胁和漏洞的识别和排序的精确度和有效性。

自动化开源方案

随着越来越多的组织实现了持续、快速的软件交付,自动化渗透测试方案也在不断与DevOps工作流进行整合。它可以在开发管道的不同阶段引入安全测试。同时,随着无服务器架构在云计算环境的普及,我们也可以通过创建或修改现有的自动化工具,以评估云基础架构的安全性。对此,安全专家可以将如下开源的工具与方案,整合到现有的测试流程中,以免去自己动手编写系统代码和脚本的烦恼:

Rayder:是一款简化的工作流应用,可用于运行复杂的编排映射。该工具通过YAML来映射不同的命令和工具,来运行侦查任务。当然,我们需要使用命令来告知其该如何执行、保存和定位输出。

MetaHub:是一个上下文框架,可根据环境与核心要求,自动编译与上下文相关的资产。该工具主要适用于与云服务和AWS相关的操作。

Vortex:该工具有助于侦查、枚举和开发等多种任务的自动化。

Osmedeus:是一个庞大的框架,几乎涵盖了自动化枚举和侦查的所有要求,可被用于扫描Git存储库、某个子域、以及云服务发行版。

小结

当然,您可以自行在GitHub上搜索可用于持续集成与持续部署的Python软件包。例如,使用GitHub Actions、GitLab CI或Jenkins等工具,可建立持续集成和测试的管道,以确保自动化测试流程的有效性、灵活性。

可以说,渗透测试流程的自动化使得安全团队能够从重复性任务中解脱出来,简化了资源的使用率,缩短了漏洞扫描与评估的时间,进而让组织能够动态地应对不断变化的威胁形势,保护自身的敏感数据和数字资产。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末自行领取】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1541559.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

AI论文写作PPT思维导图PC小程序开发

AI论文写作PPT思维导图PC小程序开发 AI智能PPT功能 一键生成PPT大纲、一键扩写大纲内容、单独扩写某个大纲内容、一键生成内容关键词、单项内容关键词生成、新增大纲项、修改大纲、删除大纲、选择PPT模板、单页模板一键切换、在线编辑模板;支持导出PPTX、JPEG、&am…

Android实战经验之如何使用DiffUtil提升RecyclerView的刷新性能

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 DiffUtil 是一个用于计算两个列表之间差异的实用程序类,它可以帮助 RecyclerView 以更高效的方式更新数据。使用 DiffUtil 可以减少…

《线性代数》笔记

文章目录 1 行列式1.1 克拉默法则1.2 基本性质1.3 余子式 M i j M_{ij} Mij​1.4 代数余子式 A i j ( − 1 ) i j ⋅ M i j A_{ij} (-1)^{ij} \cdot M_{ij} Aij​(−1)ij⋅Mij​1.5 具体型行列式计算(化为基本型)1.5.1 主对角线行列式:主…

[SAP ABAP] 创建数据元素

我们可以使用事务码SE11创建数据元素 输入要创建的数据类型的名称,然后点击创建 选择数据元素并进行确定 输入简短描述并为数据元素分配一个域,会自动带出数据类型以及长度 创建域可参考该篇文章 创建域https://blog.csdn.net/Hudas/article/details/…

【C++】模拟实现二叉搜索(排序)树

🦄个人主页:修修修也 🎏所属专栏:实战项目集 ⚙️操作环境:Visual Studio 2022 目录 一.了解项目功能 二.逐步实现项目功能模块及其逻辑详解 📌实现BSTreeNode类模板 🎏构造BSTreeNode类成员变量 🎏实现BSTreeNode类构…

胤娲科技:马斯克放大招,盲人也能“开眼看世界”你准备好了吗?

导读前沿: 嘿,朋友们,想象一下,你突然发现自己变成了一部老式黑白电视机的观众,屏幕模糊,色彩全无,是不是感觉人生瞬间失去了“高清”模式? 但别急,科技界的“魔术师”马…

CDVAE项目环境配置

CDVAE环境配置 1. 系统环境2. 设置环境变量3. 配置环境变量4. 安装CDVAE虚拟环境5. 资料下载 1. 系统环境 系统环境:Ubuntu22.04GeForce RTX 3090cuda12.6(cuda版本11.1以上均适用)。 2. 设置环境变量 先按照CDVAE中描述的设置环境变量。 …

Ubuntu 20.04 内核升级后网络丢失问题的解决过程

在 Ubuntu 系统中,内核升级是一个常见的操作,旨在提升系统性能、安全性和兼容性。然而,有时这一操作可能会带来一些意外的副作用,比如导致网络功能的丧失。 本人本来是想更新 Nvidia 显卡的驱动,使用 ubuntu-drivers …

element-ui 日期选择器禁用某段特定日期

element-ui 日期选择器设置禁用日期 效果图如下: 2024-09-01 到2024-09-18之间的日期都不可选 2024-01-01之前的日期都不可选 官方文档中 picker-options 相关的介绍 实现功能: ​ 某仓库有限制最大可放置资产数量,且资产出借和存放都有记录。由于线下仓库资产出借和购…

c++实现类

Date类的实现-->(里面涉及类,this指针,引用,复用,运算符重载,友元函数,) Date类的实现 本章节我们将根据前面所学过的知识,综合运用来完成一个日期类代码的实现,里面的知识点也能…

yolo自动化项目实例解析(二)ui页面整理 1.78

我们在上一章整理main.py 的if __name__ __main__: 内容还留下面这一段, from PyQt5.QtWidgets import *from lanrenauto.moni.moni import *from PyQt5.QtGui import *app QApplication(sys.argv) # 初始化Qt应用ratio screen_width / 2560 # 分辨率比例# 设…

简单题69.x的平方根 (Java)20240919

问题描述&#xff1a; java代码&#xff1a; class Solution {public int mySqrt(int x) {if (x < 2) {return x; // 0 和 1 的平方根分别是它们自己}int left 2; // 从2开始&#xff0c;因为0和1已经处理了int right x / 2; // 最大可能的平方根不会超过 x / 2int mid;w…

【6DRepNet360全范围头部姿态估计onnxruntime推理】

6DRepNet360全范围头部姿态估计 标题摘要关键词主要贡献方法概述实验结论模型转换和onnxruntime推理模型和代码下载可视化结果代码 这篇论文的核心内容是关于一种用于全范围旋转头部姿态估计的新方法。以下是关键点的总结&#xff1a; 标题 Towards Robust and Unconstrained…

1.Spring-容器-注册

一、Bean和获取Bean &#xff08;1&#xff09;创建IoC容器&#xff1a; SpringApplication.run(类名.class, args); ConfigurableApplicationContext ioc SpringApplication.run(Spring01IocApplication.class, args); &#xff08;2&#xff09;将对象注册到IoC容器中&am…

粘接黑科技标杆专业展会-ASE CHINA 2024 震撼开幕!

2024年9月19日&#xff0c;第27届国际胶粘剂及密封剂展暨第19届国际胶粘带与薄膜展&#xff08;以下简称ASE CHINA 2024&#xff09;在上海新国际博览中心N3-N4-N5馆璀璨揭幕。ASE CHINA作为粘接新材料产业风向标&#xff0c;历经27年的辛苦耕耘&#xff0c;与业界同仁并肩而行…

sql执行流程经典案例分析

现在有联合索引(a,b),select* form tb where b xx group by a执行流程是什么样子的? CREATE TABLE IF NOT EXISTS test(id INT(10) NOT NULL AUTO_INCREMENT COMMENT主键,a INT(10) NULL,b INT(10) NULL,PRIMARY KEY(id),INDEX idx_a_b(a,b))ENGINE INNODB;INSERT INTO test…

828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署Grav内容管理系统

828华为云征文&#xff5c;华为云Flexus云服务器X实例之openEuler系统下部署Grav内容管理系统 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、Grav介绍2.1 CMS介绍2.2 Grav简介2.3 Grav特点2.4 …

Abaqus 2024百度云下载:附中文安装包+教程

正如大家所熟知的&#xff0c;Abaqus是一款有限元分析软件&#xff0c;能够高效的配合工程师完成创作。它可以高精度地实现包括金属、橡胶、高分子材料、复合材料、钢筋混凝土、可压缩超弹性泡沫材料以及土壤和岩石等地质材料的工程仿真计算。 “Abaqus”不仅具有出色的仿真计…

ODrive电机驱动算法VScode环境配置笔记教程

1、ODrive基本介绍 ODrive 是一个开源的优秀电机控制器项目&#xff0c;旨在为各种应用提供高性能、高可靠性的电机控制解决方案。这个项目是专门用于驱动无刷直流电机&#xff08;BLDC&#xff09;和永磁同步电机&#xff08;PMSM&#xff09;的高性能开源伺服控制系统。ODriv…

15_Python中错误和异常处理

在Python编程中&#xff0c;错误&#xff08;Error&#xff09;和异常&#xff08;Exception&#xff09;是两个相关的概念&#xff0c;但它们之间有细微的区别。 错误&#xff08;Error&#xff09; 错误通常是指在执行代码时遇到的问题&#xff0c;这些问题可能会导致程序崩…