游客发表
很多人把渗透测试的渗透目标理解成“找到漏洞”,这话对,测试但太糙了。渗透漏洞只是测试中间产物,不是渗透终点。你拿着扫描器跑出一堆CVE编号,测试交给客户,渗透客户只会问你一句:所以呢?测试我到底会不会被黑?
渗透测试真正要做的事,是渗透回答一个业务问题——如果现在有人盯上你,他能走多远。测试
我做过一个电商平台的渗透测试。客户一开始的测试要求很明确:帮我扫一遍,看看有没有高危漏洞。渗透扫完确实有,测试一个SQL注入,渗透在后台的订单导出功能里。按标准流程,提交报告,完事。但那次我多走了一步,用这个注入读到了管理员密码哈希,解出来,登进后台,然后发现后台可以直接修改支付回调地址。也就是说,攻击者能把所有用户的付款引到自己账户上。这个链条走完,客户脸色变了。SQL注入是漏洞,但真正的目标是“钱会不会丢”。
漏洞报告里写“存在XSS”,和写“我可以用这个XSS偷走管理员的会话,然后以管理员身份删除所有商品”,是两回事。前者是技术描述,后者是风险证明。渗透测试的目标之一,就是把技术问题翻译成业务损失。客户不懂CVSS评分,但他懂“用户数据泄露”和“钱被转走”。
我见过太多测试报告,列了三十个漏洞,按严重程度排好,然后没了。客户看完不知道该先修哪个,也不知道不修会怎样。这种测试,目标只完成了一半。
渗透测试不是只测你告诉我的那个网站。有次客户说,测一下我们的App。我测完App,顺手扫了同网段的其他IP,发现一个测试环境没关,里面存着生产数据库的备份。App本身没问题,但边界破了。攻击者不需要正面攻破你的堡垒,他可以从旁边没锁的门进去。
所以目标里必须包含“资产发现”和“横向移动验证”。你永远不知道客户自己都忘了哪些东西还活着。
有些客户买了WAF、EDR、SOC,觉得自己挺安全。渗透测试的另一个目标,就是看看这些防御设备到底有没有在干活。我试过用混淆过的payload绕过WAF,试过用合法进程加载恶意代码绕过EDR。如果绕过了,说明防御策略有盲区;如果没绕过,至少知道钱没白花。
这比单纯找漏洞更有意思。漏洞可能修一个少一个,但防御体系的验证是持续性的。
新人容易陷入一个误区:没拿到域控就算失败。不是的。有时候客户的核心诉求是“我们的开发人员会不会把代码传到GitHub上”,那你测半天内网,方向就偏了。目标要和客户对齐,不是和你自己的技术爽感对齐。
我现在的习惯是,测试开始前先问三个问题:你最怕丢什么?你觉得谁最可能攻击你?如果被攻破了,你多久能发现?这三个答案,基本就决定了这次渗透测试的目标长什么样。
说到底,渗透测试的目标不是“黑进去”,而是“让客户在真实攻击发生前,知道自己有多脆弱”。找到漏洞只是手段,让业务风险变得可见、可理解、可决策,才是终点。
友情链接