拿到一台红方跳板机,基于第一件事不是红方扫端口,是透测看它上面有什么。上次我摸到一台CentOS 7,试及hostname叫“test-jump”,漏洞结果翻/root/.bash_history直接蹦出来几条mysql -h 10.0.3.12 -uroot -p'Admin@123'。修复省了后面所有事。基于这就是红方渗透测试里最朴素的道理——信息收集阶段捡到的碎片,比漏扫跑出来的透测高危列表值钱得多。
红方视角跟常规漏扫是试及两码事。漏扫工具给你的漏洞是一张体检报告,告诉你“这里有个CVE-2021-44228”。修复红方要的基于是攻击路径:从这台跳板机能不能到核心数据库?中间有没有域控?防火墙策略是any-any还是只放了特定端口?我见过太多团队拿Nessus报告当渗透成果交差,实际上那些中危漏洞在真实攻击链里连入口都算不上。红方
具体说个案例。透测某次内部演练,目标是一套Java应用。外网只有一个Nginx反代,后面挂Tomcat。常规思路是打Nginx解析漏洞或者Tomcat弱口令,都试了,没戏。转头去看Nginx配置文件——/etc/nginx/conf.d/app.conf里有一行proxy_pass指向内网10.0.5.20:8080。但真正有意思的是下面还有一段location /debug/ { proxy_pass http://10.0.5.20:8000/; },没加任何auth_basic。直接curl一下/debug/actuator/env,Spring Boot的env端点大剌剌敞着,数据库密码、Redis密码、甚至AWS的access key全在里面。从发现到拿到数据库权限,前后不到二十分钟。
漏洞修复这块,甲方通常有个误区:把所有中高危漏洞都修了就等于安全了。不是。上面那个案例里,/debug/路径的暴露在漏扫报告里可能只是个“信息泄露-中危”,但它比十个XSS都致命。修复优先级应该按“能否被用于横向移动或权限提升”来排,不是按CVSS分数。Spring Boot actuator端点该关就关,management.endpoints.web.exposure.include只留health,别图省事写个*。Nginx的location匹配规则要显式deny,别指望后端应用自己做鉴权。
再讲个修复翻车的。有个客户听了我们的报告,把Tomcat的manager页面从公网摘了,但内网还留着。攻击者从另一台被控机器上照样能访问。修漏洞得看攻击面,不是看网络区域。内网不等于可信,零信任那套东西在红方眼里就是——你信不信我都能打进来。
说回渗透本身。红方最怕的不是目标难打,是目标太“标准”。一套标准化的Spring Cloud微服务,网关、注册中心、配置中心全齐活,反而好打——因为组件版本、默认配置、端口规律全在文档里写着。真正恶心的是那种跑了七八年的老系统,代码是外包写的,中间件版本乱七八糟,配置文件里全是注释掉的旧配置和写死的测试账号。这种系统漏扫跑不出东西,但手工翻配置文件能翻出一堆惊喜。我印象最深的一次,在某台老JBoss的standalone.xml里发现了一个注释掉的datasource,密码是“1qaz2wsx”,试着连了一下,居然还能用——生产库。
所以红方渗透的核心能力不是会用多少工具,是能不能在大量噪声里找到那条最短路径。工具跑出来的东西是线头,你得顺着线头把整件毛衣拆了。修复方也一样,别盯着扫描器报告改,去看看攻击者真正会走的那条路——往往就藏在某个没删的测试接口、某个没关的调试端口、某个配置文件里明文躺着的密码。