渗透测试(PenTest)基础指南
什么是渗透测试?
渗透测试(Penetration Test,简称为 PenTest),是指通过尝试利用漏洞攻击来评估IT基础设施的安全性。这些漏洞可能存在于操作系统、服务和应用程序的缺陷、不当配置或有风险的用户行为中。这种评估也有助于验证防御机制的有效性以及最终用户是否遵守安全政策。
渗透测试通常使用手动或自动技术来系统地破坏服务器、端点、网络应用、无线网络、网络设备、移动设备和其他潜在的暴露点。一旦某个系统的漏洞被成功利用,测试人员会尝试利用被破坏的系统继续攻击其他内部资源,特别是,会通过权限升级逐步获取更高级别的安全许可和对电子虚拟资产和信息的更深入访问。
通过渗透测试成功暴露的任何安全漏洞信息通常会被汇总提交给 IT 和网络系统经理,以帮助这些专业人士做出战略性结论并调整修复工作的优先级。渗透测试的根本目的是衡量系统或终端客户被破坏的可能性,并评估此类事件可能对相关资源或操作产生的任何后果。
把渗透测试看成是试图通过自己动手来确认是否有人能闯入你的房子可能更好理解。渗透测试人员也被称为道德黑客,使用受控环境评估IT基础设施的安全性,以安全地攻击、识别和利用漏洞。区别在于他们不是检查门窗,而是测试服务器、网络、网络应用程序、移动设备和其他潜在的突破口,以发现整套系统的弱点。
渗透测试的5个阶段
渗透测试的整体流程可以分为5个阶段:规划和侦查、扫描、获取访问权限、维持访问权限、分析。
1、 规划和侦查
第一阶段主要包含以下两个内容:
- 定义测试的目标和范围,包括要处理的系统和要使用的测试方法
- 收集情报(例如,网络和域名、邮件服务器)以更好地了解目标的工作方式及其潜在漏洞
2、 扫描
渗透测试人员会使用工具来检测目标网站或系统的弱点,包括开放的服务、应用安全问题以及开源漏洞。渗透测试人员根据他们在侦查和测试期间发现的内容使用各种工具。通常包含以下两类工具:
- 静态分析:检查应用程序的代码,以预估它在运行时的行为方式。这类工具可以一次性扫描整个代码。
- 动态分析:在运行状态下检查应用程序代码。这是一种更实际的扫描方式,因为它可以实时查看应用程序的性能。
3、 获取访问权限
攻击者的动机可能包括窃取、更改或删除数据,转移资金或是损害公司声誉等。因此,这一阶段会使用网络应用攻击,例如跨站脚本攻击、SQL注入和后门等攻击方式,以发现目标漏洞。渗透测试人员会确定最合适的工具和技术来获得对系统的访问,然后利用这些漏洞,以了解她们可能造成的损害。
4、 维持访问
这一阶段的目标是看这些漏洞是否可以在目标系统中保持足够长的时间以达成攻击者的目的。这是为了模拟复杂的持续性威胁,这些威胁通常在系统中停留数月以窃取企业中最敏感的数据。
5、 分析
渗透测试的结果随后会汇编成一份报告,包含以下内容:
- 被利用的具体漏洞
- 被访问的敏感数据
- 渗透测试人员能够留在系统中而不被发现的时间
安全人员对这些信息进行分析,以帮助配置企业的WAF设置和其他应用安全解决方案,以修补漏洞和阻止未来可能产生的攻击。
应该授予渗透测试人员多少权限?
根据渗透测试的目标,测试人员能够获取不同等级的信息或是目标系统的访问权限。在某些情况下,渗透测试团队会在开始时采取某种方法并一直坚持下去。其他时候,随着渗透测试期间对系统认识的深入,测试团队也会迭代其测试策略。因此,有3个层次的渗透测试访问权限:
- Opaque Box:测试团队对目标系统的内部结构毫无了解。他们需要像黑客一样行事,探测可以从外部利用的任何弱点。
- Semi-opaque Box:团队掌握了一套或多套凭证。并且知道目标的内部数据结构、代码和算法。渗透测试人员可能会根据详细的设计文件,如目标系统的架构图,设计测试方案。
- Transparent Box:渗透测试人员拥有访问系统、系统组件(包括源代码、二进制、容器和其他运行在该系统上的服务器)的权限。这种方法可以在最短的时间内为目标系统提供最高级别的保障。
渗透测试的类型
全面的渗透测试对于优化风险管理至关重要,这需要测试你所在环境中的所有区域:
Web App:测试人员检测安全控制的效率并查找隐藏的漏洞、攻击模式以及其他导致 Web App 被破坏的潜在安全缺口。
移动应用:利用自动化和扩展的手动测试,测试人员可以寻找在移动设备上运行的应用程序二进制文件和相应的服务器端功能的漏洞。服务器端的漏洞包括会话管理、加密问题、认证和授权问题以及其他常见的网络服务漏洞。
网络:这种测试可以确定外部网络和系统中的常见漏洞和关键漏洞。专家们会设置一个检查表,其中包括加密传输协议、SSL证书范围问题、管理服务的使用等测试用例。
云:云环境与传统本地环境存在巨大的差异。通常情况下,安全责任是由使用环境的企业和云服务提供商共同承担。正因为如此,渗透测试需要一套专门的技能和经验来仔细检查云的各个环节,如配置、API、各种数据库、加密方式、存储和安全控制。
容器:从 Docker 获得的容器往往存在漏洞,并且可以被大规模利用。错误配置也是与容器及其环境相关的常见风险。以上这两种风险都可以通过专业的渗透测试发现。
嵌入式设备(IoT):嵌入式或物联网设备(如医疗设备、汽车、智能家居、智能手表等)由于其较长的使用周期、电源限制、监管要求以及位置分散等特性,需要独特的软件测试方法。专家们在进行彻底的通信分析的同时,还需要进行客户端/服务器分析,以确定在相关使用场景中是否会出现漏洞。
API:采用自动和手动测试技术力求覆盖 QWASP API 安全 Top 10 名单。测试人员寻找的一些安全风险和漏洞包括 Broken Object Level Authorization(BOLA)、用户认证、过度的数据暴露、缺乏资源/速率限制等等。
CI/CD 流水线:现代 DevSecOps 实践将自动化和智能代码扫描工具整合到 CI/CD 流水线中。除了发现已知漏洞的静态工具外,自动渗透测试工具也可以被集成到 CI/CD 流水线中,以模拟黑客的行为方式来破坏应用程序的安全。自动化的 CI/CD 渗透测试可以发现隐藏的漏洞和攻击模式,这些漏洞和攻击模式在静态代码扫描中是无法发现的。
为什么渗透测试如此重要?
识别并对安全风险进行优先排序
渗透测试评估了企业保护其网络、应用程序、端点和用户的能力,以防止外部或内部试图规避安全策略来获得对敏感数据的访问。
智能管理漏洞
渗透测试会向企业提供关于可利用的安全威胁的实际信息。通过执行渗透测试,你可以主动识别哪些漏洞是致命的,哪些是不太重要的,哪些是假阳性。这使你的组织能够更明智地确定补救措施的有限次序、应用所需的安全补丁,并更有效地分配安全资源,以确保它们发挥最大优势。
识别现有的安全项目是否在正常运行
没有对整个环境的适当可见性就贸然改变安全策略可能会导致你所解决的安全问题都是一些实质上不会造成任何伤害的问题。渗透测试不仅能告诉你组件是否在正常运行,它们还可以进行质量检查,所以通过渗透测试你也会发现什么策略是最有效的,什么工具可以提供最高的投资回报率。
符合监管要求
渗透测试帮助企业解决审计和合规性问题。通过利用企业的基础设施,渗透测试可以准确地证明攻击者是如何获得敏感数据的。随着攻击策略的发展和演变,定期的强制测试可以确保企业在漏洞被利用之前发现并修复安全弱点,从而领先一步。
此外,对于审计人员来说,这些测试还可以验证其他规定的安全措施是否到位或者正常工作。渗透测试所生成的详细报告还可以帮助企业说明其在维护所需的安全控制方面做出了尽职的工作。
渗透测试(PenTest)基础指南相关推荐
- Kali Linux渗透测试——MSF基础篇
笔记内容参考安全牛课堂苑房弘老师的Kali Linux渗透测试教程 Metasploit是目前最流行.最强大.最具扩展性的渗透测试平台,一定程度上统一了渗透测试和漏洞研究的工作环境,使得新的攻击代码比 ...
- Metasploit渗透测试框架基础
Metasploit 简介: Metaspolit是一个渗透测试框架,属于框架,是模块化组成的,是一个免费的可下的框架,通过它可以很容易的获取.开发并对计算机软件漏洞实现 metaspliot时候,计 ...
- 从小白到web渗透工程师——零基础指南(2)sql注入漏洞
hello,各位小伙伴,在看过上一篇文章之后,想必大家伙对于web渗透工程师有了一定的了解,那么,作为一名渗透工程师,挖洞,就是我们的日常工作中必不可少的一部分了.在安全圈中,如果你挖的洞危险系数够高 ...
- 从小白到web渗透工程师——零基础指南(1)web渗透工程师介绍
开篇:web渗透工程师介绍 随着网络的不断发展,高科技技术的应用,我们的网络安全也受到了前所未有的挑战,所以,渗透工程师这个职业应运而生,据统计,现在我国的网络安全人才缺口达到了300万,然而每年的毕 ...
- 渗透测试完全初学者指南pdf_Google Analytics初学者完全指南
Google Analytics是Google官方提供的众多分析工具之一,可帮助人们了解访问者在其网站上的浏览行为和流量数据等.可以说是当前业界最强大的流量分析工具,并且完全免费. 本文是面向初学者的 ...
- 渗透测试实践基础:CORS跨域集成
目录 一.CORS漏洞原理 二. 漏洞挖掘 三. 检测方法 方法一: 方法二:
- 视频教程-Kali Linux渗透测试基础入门到进阶实战全程课-渗透测试
Kali Linux渗透测试基础入门到进阶实战全程课 本人有多年的服务器高级运维与开发经验,擅长计算机与服务器攻防及网络攻防技术!对网络安全领域有持续的关注和研究! 林晓炜 ¥499.00 立即订阅 ...
- 《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》目录—导读
版权声明 BackTrack 5 Cookbook中文版--渗透测试实用技巧荟萃 Copyright @ Packt Publishing 2012. First Published in the E ...
- 渗透测试中信息收集的那些事
渗透测试中信息收集的那些事 转载自:TideSec(知名安全团队)--VllTomFord(大佬)------https://www.cnblogs.com/OpenCyberSec/p/107941 ...
- Android渗透测试Android渗透测试入门教程大学霸
Android渗透测试Android渗透测试入门教程大学霸 第1章 Android渗透测试 Android是一种基于Linux的自由及开放源代码的操作系统,主要用于移动设备,如智能手机.平板等.目前 ...
最新文章
- JVM基础系列第7讲:JVM 类加载机制
- vue手机端回退_华为官方教程:以 P40 为例,鸿蒙 OS 2.0 Beta 版本回退到 EMUI 11 稳定版...
- string:值类型?引用类型?[转]
- c++深拷贝和浅拷贝的区别?
- RS-485中继器的多种使用方法
- leetcode(977)有序数组的平方
- leetcode912. 排序数组 有范围的排序统统用桶排序
- kali安装nessus_漏洞扫描工具Nessus指南
- 12864液晶中文资料JHD529m1
- 用Python学《微积分B》(微积分应用)
- Cameralink转万兆光纤视频模块
- 用计算机制作动画的方法,电脑怎么制作flash动画?电脑制作flash动画的方法
- excel 文件过大 瘦身
- 应对新《劳动合同法》 万名华为员工自选去留
- 用stlstack实现深搜_同心筑共未来,深信服是认真的
- python模拟登录qq邮箱爬取_python模拟登录qq邮箱
- 腾讯微博android版本,腾讯微博 Android版
- 分布式文件系统—FastDFS-6.0.6搭建使用
- Python PymySQl 下载安装配置
- Duilib版视频监控客户端(简易版)
热门文章
- 快递单中抽取关键信息【一】----基于BiGRU+CR+预训练的词向量优化
- 2019 年我是怎么熬过来的?
- python源代码怎么用_Python写完代码怎么用
- 恒河aq7275测试软件,横河-AQ7275OTDR测试培训技巧.ppt
- 飞思卡尔mc9s08烧录方法_飞思卡尔单片机烧写程序方法(量产).pdf
- STEP 7-MicroWIN SMART 上传时搜索不到PLC
- scratch---迷宫夺宝游戏实现,完整代码分享,多种地图与角色特效都有素材包!
- 制作一个简单HTML个人网页网页(HTML+CSS)web前端大作业
- linux优化ssd磁盘,Ubuntu下针对ssd硬盘优化
- MySQL与Navicat安装及配置