什么是渗透测试?
渗透测试的实际分析:它是什么、测试流程如何进行,以及它与漏洞扫描的区别。
渗透测试是指在签署协议的前提下,对系统、网络或应用进行模拟真实攻击的实践,目的是在未授权人员发现可利用的弱点之前找到它们。这是一项受控的、限时的工作,以报告结束,而非无限期的黑客活动。
渗透测试与漏洞扫描的区别
Nessus 或 OpenVAS 等漏洞扫描工具会根据已知特征库检查目标,并给出一份潜在问题清单,其中大部分需要手动验证。渗透测试则更进一步:测试人员实际尝试利用发现的问题,将它们串联起来,展示真实影响。扫描会告诉你某个端口开放、某个服务版本看起来过时。渗透测试会告诉你那个过时的服务可以被用来获得 shell,而从那个 shell 可以进入域控制器。
这种区别在报告中也很重要。扫描报告是一份清单。渗透测试报告是一个带证据的故事:截图、命令输出,以及从初始立足点到协议约定的目标(数据访问、域管理员等)的攻击路径演示。
测试范围如何界定
在任何测试开始之前,客户和测试人员需要就测试规则达成一致:哪些在范围内(具体的 IP 段、域名、应用),哪些禁止测试(生产数据库、不属于客户的第三方系统)、测试时间窗口和应急联系方式。这些内容通过签署的授权书或合同记录。没有授权,同样的技术工作在美国《计算机欺诈和滥用法案》或英国《计算机滥用法案》等法律下是犯罪。
测试通常根据测试人员开始时掌握的信息量分类:
- 黑盒测试 — 测试人员只获得目标信息,没有其他资料,模拟外部攻击者零先验知识的场景。
- 灰盒测试 — 测试人员获得一些信息,如用户账户或网络拓扑图,类似恶意内部人员或凭证泄露的场景。
- 白盒测试 — 测试人员拥有源代码、架构文档和凭证的完全访问权,适合深入的应用层级测试。
典型方法论的样子
大多数渗透测试大致遵循 PTES(渗透测试执行标准)或 NIST SP 800-115 中的阶段:
- 信息收集 — 被动和主动信息收集。使用
theHarvester、amass或普通的 Google 搜索技巧来寻找暴露的子域和员工邮箱。 - 扫描和枚举 — 对目标范围运行
nmap -sC -sV,用gobuster或ffuf对网应用进行目录暴力破解,在内部网络上用enum4linux进行 SMB 枚举。 - 利用漏洞 — 使用已知 CVE、错误配置、弱凭证或自定义有效载荷来获得初始访问权。这可能是 Metasploit 模块、精心构造的 SQL 注入有效载荷,或带有恶意宏的钓鱼邮件。
- 后渗透 — 一旦获得立足点,真正的工作开始:提权、横向移动、使用 Mimikatz 或
secretsdump.py等工具进行凭证收集,以及确定访问权限的实际范围。 - 报告 — 撰写包含 CVSS 评分、重现步骤、证据和客户工程团队可以采取行动的补救建议的报告。
常见的渗透测试类型
网络渗透测试针对内部或外部基础设施 — 服务器、防火墙、路由器。Web 应用渗透测试关注 OWASP 十大风险中的内容:注入漏洞、身份验证破缺、不安全反序列化。移动应用渗透测试深入 APK/IPA 文件、API 端点和本地存储。无线渗透测试测试 Wi-Fi 安全性(WPA2/3 握手捕获、恶意接入点)。物理和社会工程渗透测试测试是否有人能够走进建筑或说服员工泄露凭证,不需要任何代码。
为什么公司实际上要为此付费
除了发现漏洞,渗透测试还满足合规要求。PCI DSS 要求任何处理卡数据的企业进行年度渗透测试。SOC 2 和 ISO 27001 审计通常期望看到定期测试的证据。但优秀安全团队委托渗透测试的真实原因不仅仅是出于合规 — 而是自动化扫描器会遗漏业务逻辑缺陷、链式低严重性问题以及熟练的人工测试人员发现的那种创意利用。扫描器不会注意到在 URL 中改变订单 ID 可以查看他人发票。测试人员会。
进入这个领域
如果你把渗透测试作为职业目标,动手实践比单纯获得认证更重要。HackTheBox 和 TryHackMe 等平台能帮你积累经验;OSCP 等认证能验证这种能力。学会阅读源代码,理解 HTTP 在字节层面的实际工作方式,在担心华丽工具之前先熟悉 Linux 终端。
如果这篇文章对你有帮助,Korra Studio 在「进攻」相关课程中有更多内容,涵盖具体的利用技术、工具演示和你可以跟进的基于实验室的练习。
本文由人工智能协助撰写,经 Michal Pilch(CISSP)审核并发布,Korra Studio。
这是来自 Korra Studio 知识库的笔记之一——该平台将每个主题与一对一指导相结合。
免费开始arrow_forward