渗透测试流程与常见漏洞防护
引言
渗透测试本质上是在授权范围内,模拟真实攻击者去看系统哪里会被打穿。它的价值不只是在'找洞',更在于把风险暴露出来:哪些资产对外可见,哪些配置太松,哪些接口默认信任了用户输入。做得好的测试,最后给出的不是一串漏洞名,而是一份能落地的加固清单。
注意: 渗透测试必须在获得明确书面授权的前提下进行,严禁对未授权系统进行任何探测或攻击操作。
一、信息收集阶段
信息收集决定了后面能走多远。这个阶段越扎实,后面的扫描和验证越少走弯路。
1. 域名与 IP 查询
- 域名信息查询:用 WHOIS 看注册信息和 DNS 记录,通常能顺手摸到关联子域。
- IP 信息查询:确认域名实际解析到哪里,判断前面是不是套了 CDN,源站有没有被直接暴露。
- 端口信息查询:用 Nmap 之类的工具扫开放端口。比如 80 端口多半是 Web 服务,3389 往往是 Windows 远程桌面;但端口只说明'可能是什么',还得结合 Banner 和返回内容看。
2. 指纹识别
通过首页内容、源代码、HTTP 响应头去判断技术栈,通常比盲扫更省时间。
- 框架识别:像
wp-admin这类特征路径,基本就能把 WordPress 先圈出来。 - 服务器识别:看
Server响应头,能大致分出 Apache、Nginx 还是 IIS。 - 漏洞线索:目录结构、静态资源路径、暴露的调试信息,常常比'看起来正常的页面'更有用。
二、漏洞扫描阶段
信息摸清楚以后,可以上自动化工具做一轮覆盖面更广的探测。扫描器效率高,但它只是在帮你缩小范围,不是替你下结论。
1. 主机扫描
用 Nessus 这类漏扫工具检查操作系统和中间件层面的已知 CVE,重点看三类东西:没打补丁的组件、默认配置的服务、以及弱口令暴露的入口。
2. Web 扫描
AWVS(Acunetix)这类 Web 扫描器适合做初筛,SQL 注入、XSS、目录遍历之类的问题都能覆盖到一部分。问题是误报也不少,扫出来的结果最好都人工过一遍,不然报告会很花哨,结论却站不住。
风险提示: 扫描器高频请求可能把目标服务打得很慢,重一点的场景甚至会直接影响业务。生产环境上手前,回滚方案和时间窗口都得先确认好。
三、常见漏洞类型与防御策略
下面这些问题在实际测试里出现得很频繁。每一类都不是'知道名字'就够了,真正麻烦的地方在于它们往往藏在默认配置、历史包袱和业务赶工里。
1. 弱口令漏洞
- 漏洞描述:管理后台、数据库、SSH 等服务使用了简单密码或默认账号密码。
- 检测思路:如果没有验证码限制,可以用 Burp Suite 配合字典尝试验证;如果有验证码,就得看它是不是只是摆设,或者能不能被绕过。
- 修复建议:
- 强制密码复杂度策略,长度不小于 8 位,并包含大小写字母、数字和特殊字符。
- 启用多因素认证(MFA)。
- 限制登录尝试次数,并定期更换口令。
2. 文件下载与目录浏览漏洞
- 漏洞描述:权限控制做得太松,导致用户能直接下载源码、配置文件,甚至任意文件。
- 检测思路:试试
/../这类路径穿越,顺手看看.git、.svn这些历史目录有没有被暴露出来。很多时候问题不在'能不能访问',而在'服务端根本没拦'。 - 修复建议:
- 用白名单限制可访问的目录和文件类型。


