渗透测试介绍
渗透测试就是模拟攻击者入侵系统,对系统进行一步步地渗透,发现系统的脆弱环节和隐藏风险。最后形成测试报告提供给系统所有者。系统所有者可根据该测试报告对系统进行加固,提升系统的安全性,防止真正的攻击者入侵。
渗透测试的前提一定是得经过系统所有者的授权!未经过授权的渗透测试,就是违法行为!
渗透测试意义
信息安全评估的重要方法,有利于掌握系统整体安全强度。
模拟黑客攻击和思维,评估计算机潜在风险。
发现系统薄弱环节和可能利用的路径,提前防范。
有授权,不存在入侵风险。
渗透测试方法
- 白盒测试:在知道目标整体信息和源码的情况下进行渗透,类似于代码审计。
- 黑盒测试:仅知道目标,其余信息均不知道,完全模拟黑客入侵。
- 灰盒测试:知道目标部分信息,例如架构和网络拓扑,进行渗透的方式。
(若按照其他方式还可分为人工测试和自动化测试)
渗透测试一般流程
准备阶段 → 信息收集 → 漏洞检测 → 漏洞利用 → 内网转发 → 内网渗透 → 痕迹清除 → 撰写报告
准备阶段
获得授权、制定方案、目标确定、测试环境确定、测试范围和深度、测试时间确定、测试风险管理。
信息收集
信息收集两种方法
- 主动信息收集:对目标进行访问或扫描。
- 被动信息收集:通过第三方收集目标信息。
主要收集的信息
- 域名信息,IP,子域名,DNS 记录,是否存在 CDN。子域名收集可利用工具:Layer 子域名挖掘机,findomain 等。
- 公网信息。目标相关信息。员工信息,邮箱,注册人等;在 Github 等代码托管平台查找敏感信息。
- 网站指纹识别。服务器类型 (Windows/Linux),网站容器 (Apache/Nginx/Tomcat/IIS),脚本类型 (php/jsp/asp/aspx),数据库类型 (mysql/oracle/access/sqlserver/redis)。
- 服务器端口开放情况。可以使用 nmap、御剑等工具。
- ssh 弱口令 22
- mysql 弱口令 3306
- redis 未授权 6379
- weblogic 反序列化漏洞 7001
- web 中间件漏洞 80
- 敏感目录。可以使用御剑,wwwscan,dirmap 等扫描后台目录,默认路径。
- 旁站和 C 段。旁站指同一服务器上的其他网站。可利用旁站进行渗透。C 段指同一网段内的其他服务器。对同目标 C 段内的服务器进行渗透提权,再对目标进行渗透。 常见扫描工具:Nessus,X-SCAN,Nmap。
漏洞检测
主要根据 OWASP Top 10。
- 注入:SQL 注入,XXE 注入,LDAP 注入,系统命令注入,远程代码执行。
- 失效的身份认证和会话管理:弱口令暴力破解,cookie 伪造和 cookie 绕过,逻辑绕过登录,会话劫持。
- 跨站脚本攻击 XSS。
- 失效的访问控制:未授权访问,越权访问(水平越权和垂直越权),文件操作(文件上传,文件包含,任意文件下载)。
- 安全配置错误:高危端口(22,445,3389,6379),数据库,web 中间件,CORS 跨域资源共享漏洞,目录漏洞。
- 敏感信息泄露:弱文件(phpinfo,备份文件,安装文件),源代码,配置文件,数据库文件。
- 攻击检测防范不足:WAF,RASP,虚拟/实际补丁。
- 跨站请求伪造 CSRF。
- 使用包含已知漏洞的组件:Struts2 代码执行,Spring 代码执行,JAVA 反序列化,心脏滴血漏洞。
- 未受保护的 APIs:Web services,Login API,APP API,DB API,Pay API。
漏洞探测思路
- 注入型漏洞。
- 文件型漏洞。
- 跨站型漏洞。
- 配置型漏洞(SSRF 漏洞,CORS 漏洞,JSONP,XSS,CSRF)。


